|
|
@@ -30,3 +30,26 @@ see how much of the gap is speculation and how much is the engine.
|
|
|
loader.
|
|
|
- `--engram-config '{"cpu_offload":false,"table_memory":"disk"}'` is accepted
|
|
|
and the engine starts with the tables streamed from the checkpoint.
|
|
|
+
|
|
|
+## With DSpark K5 (2026-10-23) — decode reaches production, prefill does not
|
|
|
+
|
|
|
+`--speculative-config '{"method":"dspark","num_speculative_tokens":5}'` (MTP
|
|
|
+heads in-checkpoint, no drafter repo). KV pool drops 8.73M → 7.07M tokens.
|
|
|
+
|
|
|
+| measure | **stock vLLM + DSpark k5** | stock vLLM, no spec | production SGLang EP2 4x |
|
|
|
+|---|---|---|---|
|
|
|
+| decode c1 | **52.9 t/s** (25.5 cold) | 29.7 | 47.8–50.7 |
|
|
|
+| decode c2 (agg) | **66.4 t/s** | 45.6 | 64.2–68.3 |
|
|
|
+| prefill (~4K) | **605 t/s** | ~750 | 2,800–3,127 |
|
|
|
+| acceptance | 4.79 of 5 | — | — |
|
|
|
+
|
|
|
+So on the same checkpoint and the same four Sparks, **upstream vLLM main plus
|
|
|
+DSpark matches and slightly beats the production lane's decode** (52.9 vs
|
|
|
+47.8–50.7, 66.4 vs 64.2–68.3) — while its **prefill is 4–5× slower** (605 vs
|
|
|
+2,800–3,127 t/s), which is the whole remaining gap for agentic traffic where
|
|
|
+TTFT dominates.
|
|
|
+
|
|
|
+Next levers for the prefill side, in order of cheapness: `--max-num-batched-tokens`
|
|
|
+(4096 now — SGLang chunks larger), the lab fork's `--prefill-compute-share`, and
|
|
|
+the b12x A4-prefill patch (todo #23) if `B12X_W4A16_MXFP4_PREFILL_MIN_TOKENS`
|
|
|
+exists in this image.
|