Scope note. This study ran on the lab’s DGX Spark pair with the repository’s own benchmark suite — apples-to-apples throughput as
completion_tokens / wall_time, non-streaming (streamed SSE event counts undercount real tokens badly, which is exactly why the method is pinned). It is not part of the claim registry behind our tested-configuration cards: the numbers below are quoted from the published repository, where the raw checkpoints sit next to them.
Two recipes, honestly attributed
DeepSeek’s DSpark speculative decoding serves DeepSeek-V4-Flash across two DGX Spark (GB10, sm_121) nodes, TP=2 over 200G RoCE, at a configured million-token window. The repository carries two lines and is explicit about which is whose: the fp8 DSpark bring-up is ours — the draft head and proposer wired into vLLM as patches, plus the numerical fixes that took the draft from predicting noise to matching the reference. The faster NVFP4-KV line is tonyd2wild’s recipe: we reproduced it byte-identically on our own cluster and measured it; we did not author it, and we claim no speed win over it — our reproduction of his concurrency benchmark lands inside his own run-to-run variance.
The depth curve nobody had published
The community had single-depth numbers; what was missing was the curve. On the NVFP4 build, single-stream decode runs 42.7 tok/s at 16K context, 17.6 at 512K, and 17.2 at a real 1,032,953-token prompt — the curve flattens past 512K instead of collapsing. At full depth, a cold prefill takes about 642 seconds; with the prefix cache warm, the same request starts in about 4 seconds. A configured million-token window on consumer silicon is real — if you plan around the prefill bill and know the decode floor you will live on.
Why the speed behaves this way
The mechanism is acceptance, not bandwidth: with speculation disabled both KV builds decode at an essentially identical ~26.6 tok/s — the NVFP4 line wins by keeping more speculative tokens accepted per step, and per-position acceptance decay is what drives the depth curve down. Concurrency is where the box earns its keep: our fp8 line sustains ~99 tok/s aggregate at 8 streams and 141–146 tok/s at 12, and single-stream speculation is worth +21–24% over no-spec.
Two negative results, published as results
- No sampler configuration reliably fixes long-context coherence on
this build: the collapse is not a fixed depth threshold, and
min_pis outright blocked under spec-decode — the probe is in the repository as a first-class benchmark file, not a footnote. - Our attempted improvements over the reproduced build did not win: the honest summary in the repository says so in those words, with the tie shown against the author’s own variance.
Why this belongs in the lab’s record
This is the posture the lab sells, applied to ourselves: reproduce someone else’s result before comparing to it, publish the curve with its raw checkpoints, credit the lineage, and file the failures next to the wins. The DGX Spark lane still has no methodology-v1 cells — that stays the planned next step — but the depth curve, the acceptance mechanism and both negatives are quotable today from the repository.
Evidence
Recipes, patches, benchmark checkpoints and raw outputs: DeepSeek-V4-Flash-DSpark-GB10-2x-DGX-Spark-1m-fp4-fp8. Upstream NVFP4-KV recipe: tonyd2wild (credited in the repo). Related lab material: the MoE-kernel finding on the same pair and the earlier 1M serving study. Russian long-reads: part 5 and the 0731 study on Habr.