One drafter, two engines
The same speculative decoder landed in vLLM and llama.cpp in the same week. When two engines that agree on almost nothing both merge it, I read the PRs.
DFlash2 (Inco AI and Z Lab, August 18) drafts a whole block of tokens in parallel with a small block-diffusion model, then fixes the part that made parallel drafting weak: a grouped depthwise convolution lets late positions in the block see earlier ones, and a candidate selector walks the best path through each slot's top-K instead of taking independent argmaxes. Cost, per the PRs: about 18M extra parameters and under 1% of each serving step.
PR-stated numbers, benchmark your own. vLLM, Qwen3.8-27B on one H200: 64 to 225 output tok/s single stream, still 2.2x at concurrency 32, acceptance 5.3 tokens per step against 4.3 for DSpark. llama.cpp, same model at Q4_K_M on an Apple M5 Pro: 10.4 to 18.9 tok/s.
Before you upgrade llama.cpp, read the merged PR: vision requests still break with the drafter attached, tensor-parallel crashes went to a follow-up PR, the maintainer marked every Vulkan benchmark in the thread invalid, and GGUFs converted before August 27 need reconverting.
The trap: the draft head is trained per target model, and the training recipe is unpublished. Official heads exist for two models today, and the open reimplementation labels itself experimental.
Check z-lab and RedHatAI on Hugging Face for a head for your model before you plan capacity around these numbers.
- DFlash 2: Keep Drafting Parallel, Inco AI blog Aug 18, 2026
- vLLM engine implementation, local convolution + candidate selector Aug 21, 2026
- llama.cpp implementation and benchmarks Aug 27, 2026
- Speculators training support (experimental) Aug 27, 2026