- Tokens
- 0
- Elapsed
- 0.00 s
- Last 1 s
- 0 tok
Kernarc: at least 100 tokens per second at every context depth.
Qwen3.8-27B, faster than 100 tokens per second at every context length.
Watch one stream decode.
- Tokens
- 0
- Elapsed
- 0.00 s
- Last 1 s
- 0 tok
Detail B — One stream, replayed at measured speed
Replay at measured median TPOT. Fixed sample text, approximate token split.
Speed lives below the framework.
-
Draft + verify
Speculative decoding. MTP drafts 3 tokens each step. The full model checks every one before it is accepted.
-
Schedule
CUDA graphs per verify width. Each step replays a captured graph, which keeps host launch time off the critical path.
-
Attention
Split-KV verify attention. Long contexts split across all 108 SMs, so a verify step at 32K does not wait on a few busy SMs.
-
Linear attention
Fused Gated DeltaNet kernels. The model's linear-attention layers decode and verify in fused kernels.
-
GEMM
FP8 weights. Marlin GEMMs on sm_80, checked at the row counts a verify step uses.
-
Silicon
One NVIDIA A100-SXM4-80GB. sm_80, 108 SMs, 2.04 TB/s HBM. No multi-GPU tricks in these figures.
Section C–C — One decode step, top to silicon
Every figure has its conditions.
| Stock vLLM 0.31.0 Measured 2026-10-11 | Kernarc Measured 2026-10-14 | ||||
|---|---|---|---|---|---|
| Context | ms/token | Stock tok/s | ms/token | Kernarc tok/s | Speed-up Derived |
| 128 | 11.92 | 83.9 | 8.49 | 117.8 | ×1.40 |
| 8,192 | 11.93 | 83.8 | 7.15 | 139.9 | ×1.67 |
| 32,768 | 19.65 | 50.9 | 6.48 | 154.3 | ×3.03 |
| 65,536 | 28.69 | 34.9 | 8.85 | 113.0 | ×3.24 |
| Geomean | 16.83 | 59.4 | 7.68 | 130.2 | ×2.19 |
General notes
- Speed is decode tokens per second for one stream: 1000 ÷ median time per output token, or TPOT. TPOT is measured client side over the streamed response.
- Context depth is the prompt length before decoding: 128, 8,192, 32,768 and 65,536 tokens. Greedy decoding, batch 1.
- Model: Qwen3.8-27B with FP8 weights and MTP speculative decoding, 3 draft tokens per step.
- Hardware: one NVIDIA A100-SXM4-80GB for both columns.
- The two columns come from different sessions on the same GPU. Greedy text changes between sessions, and that moves ms/token by up to about 7 %. Speed-up is a ratio of the two columns, not a separate measurement.
- A change ships only after a paired gate: the same requests on both builds, a bootstrap 95 % confidence interval on the timing, and an output check against the reference model.