Matrix A - minicpm5_2b - run 38017266164

tkv advantage over each engine's own bf16 KV

Same engine, same workload, KV cache swapped: bf16 → tkv. Higher is better on every bar.

arbi-servevLLMSGLang
Decode tok/s per stream: tkv vs bf16
0%20%40%60%80%% vs bf16arbi-serve c1: tkv vs bf16 +56.9%+57%vLLM c1: tkv vs bf16 +57.6%+58%SGLang c1: tkv vs bf16 +56.2%+56%c1@126karbi-serve c8: tkv vs bf16 +35.9%+36%vLLM c8: tkv vs bf16 +30.4%+30%SGLang c8: tkv vs bf16 +33.9%+34%c8@14karbi-serve c64: tkv vs bf16 +33.5%+34%SGLang c64: tkv vs bf16 +41.1%+41%c64@1.6kvLLM c256: tkv vs bf16 +21.3%+21%SGLang c256: tkv vs bf16 +29.8%+30%c256@0.8kconcurrency @ median prompt length
Prefill tok/s: tkv vs bf16
0%20%40%60%80%% vs bf16arbi-serve c1: tkv vs bf16 +69.0%+69%vLLM c1: tkv vs bf16 +63.3%+63%SGLang c1: tkv vs bf16 +64.3%+64%c1@126karbi-serve c8: tkv vs bf16 +26.4%+26%vLLM c8: tkv vs bf16 +15.4%+15%SGLang c8: tkv vs bf16 +29.7%+30%c8@14karbi-serve c64: tkv vs bf16 +3.1%+3%SGLang c64: tkv vs bf16 +8.8%+9%c64@1.6kvLLM c256: tkv vs bf16 +1.1%+1%SGLang c256: tkv vs bf16 +4.2%+4%c256@0.8kconcurrency @ median prompt length
TTFT reduction: tkv vs bf16
0%10%20%30%40%50%% lower TTFTarbi-serve c1: tkv vs bf16 +40.8%+41%vLLM c1: tkv vs bf16 +38.7%+39%SGLang c1: tkv vs bf16 +39.1%+39%c1@126karbi-serve c8: tkv vs bf16 +24.4%+24%vLLM c8: tkv vs bf16 +12.4%+12%SGLang c8: tkv vs bf16 +22.3%+22%c8@14karbi-serve c64: tkv vs bf16 +2.9%+3%SGLang c64: tkv vs bf16 +8.8%+9%c64@1.6kvLLM c256: tkv vs bf16 +0.4%+0.4%SGLang c256: tkv vs bf16 +4.2%+4%c256@0.8kconcurrency @ median prompt length

Engine parity

One colour per engine: the engines track each other, with the tkv lines (solid) above the bf16 lines (dashed).

arbi-servevLLMSGLangtkv KVbf16 KV
Decode tok/s per stream
050100150tok/s per streamc1@126kc8@14kc64@1.6kc256@0.8kconcurrency (log scale) @ median prompt lengtharbi-serve bf16 c1: 80.6 tok/s per streamarbi-serve bf16 c8: 61.5 tok/s per streamarbi-serve bf16 c64: 55.8 tok/s per streamvLLM bf16 c1: 85.0 tok/s per streamvLLM bf16 c8: 70.7 tok/s per streamvLLM bf16 c64: 67.7 tok/s per streamvLLM bf16 c256: 27.0 tok/s per streamSGLang bf16 c1: 84.5 tok/s per streamSGLang bf16 c8: 69.2 tok/s per streamSGLang bf16 c64: 67.0 tok/s per streamSGLang bf16 c256: 23.5 tok/s per streamarbi-serve tkv c1: 126 tok/s per streamarbi-serve tkv c8: 83.5 tok/s per streamarbi-serve tkv c64: 74.5 tok/s per streamvLLM tkv c1: 134 tok/s per streamvLLM tkv c8: 92.3 tok/s per streamvLLM tkv c256: 32.7 tok/s per streamSGLang tkv c1: 132 tok/s per streamSGLang tkv c8: 92.7 tok/s per streamSGLang tkv c64: 94.5 tok/s per streamSGLang tkv c256: 30.5 tok/s per stream
Prefill tok/s
02.5k5k7.5k10k12.5kprefill tok/sc1@126kc8@14kc64@1.6kc256@0.8kconcurrency (log scale) @ median prompt lengtharbi-serve bf16 c1: 5773 prefill tok/sarbi-serve bf16 c8: 4697 prefill tok/sarbi-serve bf16 c64: 885 prefill tok/svLLM bf16 c1: 5857 prefill tok/svLLM bf16 c8: 4278 prefill tok/svLLM bf16 c64: 806 prefill tok/svLLM bf16 c256: 210 prefill tok/sSGLang bf16 c1: 5738 prefill tok/sSGLang bf16 c8: 4473 prefill tok/sSGLang bf16 c64: 869 prefill tok/sSGLang bf16 c256: 234 prefill tok/sarbi-serve tkv c1: 9757 prefill tok/sarbi-serve tkv c8: 5935 prefill tok/sarbi-serve tkv c64: 912 prefill tok/svLLM tkv c1: 9562 prefill tok/svLLM tkv c8: 4936 prefill tok/svLLM tkv c256: 212 prefill tok/sSGLang tkv c1: 9428 prefill tok/sSGLang tkv c8: 5804 prefill tok/sSGLang tkv c64: 945 prefill tok/sSGLang tkv c256: 244 prefill tok/s

Scaling with batch

Total decode throughput over all concurrent streams.

arbi-servevLLMSGLangtkv KVbf16 KV
Total decode tok/s (all streams)
02k4k6k8k10ktok/s, all streamsc1@126kc8@14kc64@1.6kc256@0.8kconcurrency (log scale) @ median prompt lengtharbi-serve bf16 c1: 81 tok/s, all streamsarbi-serve bf16 c8: 627 tok/s, all streamsarbi-serve bf16 c64: 3960 tok/s, all streamsvLLM bf16 c1: 85 tok/s, all streamsvLLM bf16 c8: 721 tok/s, all streamsvLLM bf16 c64: 4685 tok/s, all streamsvLLM bf16 c256: 7984 tok/s, all streamsSGLang bf16 c1: 84 tok/s, all streamsSGLang bf16 c8: 709 tok/s, all streamsSGLang bf16 c64: 4644 tok/s, all streamsSGLang bf16 c256: 6806 tok/s, all streamsarbi-serve tkv c1: 126 tok/s, all streamsarbi-serve tkv c8: 800 tok/s, all streamsarbi-serve tkv c64: 5186 tok/s, all streamsvLLM tkv c1: 134 tok/s, all streamsvLLM tkv c8: 886 tok/s, all streamsvLLM tkv c256: 9350 tok/s, all streamsSGLang tkv c1: 132 tok/s, all streamsSGLang tkv c8: 885 tok/s, all streamsSGLang tkv c64: 6226 tok/s, all streamsSGLang tkv c256: 8505 tok/s, all streams

Canonical table

Matrix A - minicpm5_2b - run 38017266164
       │                                     c1@126k                                      │                                      c8@14k                                      │                                     c64@1.6k                                     │                                    c256@0.8k                                     
engine │ prefill tok/s decode/stream  decode total          TTFT          TPOT agg@900 tok/s │ prefill tok/s decode/stream  decode total          TTFT          TPOT agg@900 tok/s │ prefill tok/s decode/stream  decode total          TTFT          TPOT agg@900 tok/s │ prefill tok/s decode/stream  decode total          TTFT          TPOT agg@900 tok/s 
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
arbi   │     9757/5773      126/80.6        126/81   13223/22349      7.9/12.4         44/27 │     5935/4697     83.5/61.5       800/627     2443/3230     12.0/16.3       489/374 │       912/885     74.5/55.8     5186/3960     2381/2452     13.4/17.9     3935/3117 │           —/—           —/—           —/—           —/—           —/—           —/— 
vllm   │     9562/5857      134/85.0        134/85   13494/22030      7.5/11.8         45/28 │     4936/4278     92.3/70.7       886/721     3408/3892     10.8/14.1       500/402 │         —/806        —/67.7        —/4685        —/3065        —/14.8        —/3545 │       212/210     32.7/27.0     9350/7984     4806/4826     30.6/37.1     6258/5577 
sglang │     9428/5738      132/84.5        132/84   13685/22486      7.6/11.8         44/27 │     5804/4473     92.7/69.2       885/709     2772/3568     10.8/14.4       529/399 │       945/869     94.5/67.0     6226/4644     2207/2421     10.6/14.9     4717/3590 │       244/234     30.5/23.5     8505/6806     4111/4293     32.8/42.6     5618/4650 
cells: tkv/bf16 · TTFT,TPOT=ms median · prefill=prompt tok / TTFT · decode/stream=1000/TPOT · decode total=all streams over their decode spans · agg=all streams @ 900 tok, prefill INCLUDED · best / worst>20% / worst-close / plain mid