r/LocalLLaMA · · 1 min read

Benchmarked every spec-decode method on Qwen3.6-27B across vLLM and SGLang (single RTX PRO 6000 Max-Q)

Mirrored from r/LocalLLaMA for archival readability. Support the source by reading on the original site.

Benchmarked every spec-decode method on Qwen3.6-27B across vLLM and SGLang (single RTX PRO 6000 Max-Q)

https://preview.redd.it/wluwwp6s4heh1.png?width=1248&format=png&auto=webp&s=6e95d963645c5a0ef750bf81324a6d4dcbc0389e

Spent the last few days measuring speculative decoding on Qwen3.6-27B (dense, NVFP4) on one RTX PRO 6000 Max-Q, comparing vLLM and SGLang across MTP, DFlash, EAGLE3 and ngram. Same pinned client for every engine and 3 restart-samples per point, so the numbers should be comparable.

Spec-Bench, greedy, batch 1, averaged over the 6 categories. Speedup vs each engine's own no-spec baseline:

  • DFlash: best by a wide margin. ~3.3x on SGLang, ~2.5x on vLLM (and up to 4.6x on math_reasoning alone).
  • MTP / NEXTN: ~2.2 to 2.8x, and it keeps climbing as you raise the draft depth.
  • EAGLE3: ~1.9x, peaks at K=3 then goes flat. Exactly the opposite of NEXTN, which surprised me.
  • ngram: barely worth the trouble, ~1.1 to 1.3x.

Two things that ate a whole evening:

  1. EAGLE3 flat out won't load on vLLM for this model (the hf_hub head_dim validator rejects the head). SGLang only, and even there it needs a patched build.
  2. DFlash on SGLang crashed at first token until I noticed the DFlash sampler does a raw matmul on the lm_head, which the nvidia NVFP4 checkpoint quantizes, so the shapes blow up. A ~15 line patch to dequant the head once fixes it. Also had to cap max-running-requests or the mamba/GDN cache OOMs the pool.
submitted by /u/thavoc77
[link] [comments]

Discussion (0)

Sign in to join the discussion. Free account, 30 seconds — email code or GitHub.

Sign in →

No comments yet. Sign in and be the first to say something.

More from r/LocalLLaMA