Quality estimate 7.0/10

D3D: Decoupled Diffusion Drafting for Asynchronous Speculative Decoding

Baoyou Chen, Ruiqiao Mei, Guancong Lin, Tao Song, Weihao Yuan, Qun Liu, Siyu Zhu · November 04, 2026

Reviewed paper version: v1.

📌 Highlights

D3D trains a standalone diffusion drafter to predict token blocks from the prompt and response prefix, without consuming target hidden states. Its blockwise denoising objective is paired with autoregressive supervision on target-generated responses. At inference, the drafter prepares successor blocks for possible rejection outcomes and full acceptance while the target verifies the current block.

Across seven benchmarks, the authors report mean speedups of 5.00× for Qwen3-8B and 5.71× for Qwen3-32B targets, with mean acceptance lengths τ of 7.88 and 7.73, respectively. Pruning the Qwen3-8B-initialized drafter from 36 to 31 layers retains over 99% of mean τ across MATH-500, HumanEval, and MT-Bench, and raises mean speedup from 4.44× to 4.69× on those three benchmarks.

The engineering case is conditional: cache misses require synchronous drafting, the main comparison assigns separate GPUs to target and drafter for asynchronous methods, and the reported implementation uses Transformers. Production-framework throughput and memory tradeoffs remain open.

🎯 Introduction

Autoregressive language models generate one token at a time, limiting token-level parallelism and hardware utilization. Speculative decoding uses a lighter drafter to propose several tokens for parallel verification by the target; with an appropriate acceptance rule, it preserves the target model’s output distribution. The speedup depends on accepted tokens, draft latency, and verification cost, so a drafter that improves acceptance can still disappoint if generating its candidates takes too long.

Parallel and diffusion drafters reduce sequential candidate generation, but target-conditioned approaches such as DFlash need updated target representations before drafting the next block. That dependency makes drafting and verification sequential across rounds. D3D’s objective is to remove this inter-round dependency by training a standalone diffusion drafter that makes its own prefix representations, then preparing likely successor blocks during current target verification. The paper combines this decoupling with acceptance-guided layer pruning to reduce the cost of the additional packed drafting work.

🔬 Methodology

D3D starts from pretrained autoregressive weights. For each prompt, the target model generates a response, and the drafter is trained on that response. The method samples anchor positions, places each visible anchor token at the start of a block, masks the following positions, and predicts the next response tokens in parallel. Multiple blocks are packed into a sequence: the prompt and response prefix share causal computation, while each block sees the relevant prefix and has bidirectional attention within itself. Position weights decay exponentially with distance from the anchor, reflecting that a rejection truncates the accepted prefix.

The loss combines weighted block denoising with an auxiliary next-token objective on the unmasked response prefix. This second conditioning pattern encourages the drafter to retain autoregressive prediction capability while learning parallel block prediction. During pruning, each remaining layer is separately evaluated for its effect on validation acceptance length. The least damaging layer is removed, recovery training distills from the fixed unpruned drafter, and layer importance is measured again on the recovered model. The teacher distribution is adjusted toward the supervised token before forward KL distillation.

At inference, the target verifies a proposed block with rejection sampling. In parallel, a packed drafter pass prepares blocks for selected rejection positions and the full-acceptance case. The position coverage C and token fan-out F determine the number of branches; for block size B, the packed budget is Nasync = B [(C − 1)F + 2]. A matching verified prefix yields a cache hit and reuses its branch. When no branch matches, the target must wait for a new synchronous draft.

equation 5

Formula:
\[\mathcal{L}_{\mathrm{diff}} =\frac{1}{Z_{\mathrm{diff}}} \sum_{k=1}^{K}\sum_{j=1}^{b_k}w_j\ell^{\mathrm{diff}}_{k,j}, \quad \text{where}\quad Z_{\mathrm{diff}} =\sum_{k=1}^{K}\sum_{j=1}^{b_k}w_j.\]

Meaning: The normalized, position-weighted denoising objective over sampled anchors and supervised masked positions.

equation 6

Formula:
\[\mathcal{L}_{\mathrm{AR}}=-\frac{1}{T}\sum_{i=1}^{T}\log P_{M_{\mathrm{d}}}(r_i\mid p, r_{<i}).\]

Meaning: The autoregressive next-token loss on the target-generated response, conditioned on the prompt and preceding response tokens.

equation 7

Formula:
\[\mathcal{L}_{\mathrm{train}}= \mathcal{L}_{\mathrm{diff}} + \lambda\mathcal{L}_{\mathrm{AR}},\]

Meaning: The drafter training objective combining parallel block denoising and auxiliary autoregressive supervision; λ sets the auxiliary loss weight.

equation 9

Formula:
\[\mathcal{L}_{\mathrm{KL}} =\mathbb{E}_{\rho}\!\left[D_{\mathrm{KL}}\!\left(\tilde q^{(0)}\Vert q\right)\right].\]

Meaning: The position-weighted forward KL recovery loss from the adjusted, fixed teacher distribution to the pruned drafter distribution.

📊 Experiments

The authors evaluate Qwen3-8B and Qwen3-32B targets on GSM8K, MATH-500, and AIME25 for mathematical reasoning; HumanEval, MBPP, and LiveCodeBench-v6 for code generation; and MT-Bench for dialogue. They report decoding speedup relative to autoregressive decoding and mean output tokens per verification round, τ, including the target-generated token. The main D3D configuration uses block size 16, coverage C = 12, and fan-out F = 2. Evaluation uses the Transformers backend with greedy decoding in non-thinking mode. Asynchronous D3D, SSD, and PARD-2 use two H800 GPUs; synchronous DFlash, DSpark, and EAGLE-3 use one.

In Table 1, D3D’s average speedup is 5.00× for Qwen3-8B and 5.71× for Qwen3-32B, compared with DFlash’s 4.03× and 3.67× and DSpark’s 4.44× and 3.92×. D3D’s average τ is 7.88 and 7.73, respectively. The highest listed per-benchmark speedup is 7.48× on GSM8K with Qwen3-32B. The authors state D3D is fastest on five of seven benchmarks for Qwen3-8B and all seven for Qwen3-32B; Table 1 also shows that its MT-Bench speedup with Qwen3-8B is 2.68×, below DSpark’s 3.17×.

Concurrent serving measurements use a D3D-1.7B drafter with a Qwen3-32B target and Transformers with SDPA. Across MATH-500, HumanEval, and MT-Bench, aggregate throughput rises as requests increase from 1 to 16, while the listed speedup ratios fall. At 16 requests, the reported values are 864 tokens/s (2.7×), 748 tokens/s (2.6×), and 386 tokens/s (1.5×), respectively.

Ablations report that auxiliary AR weight λ = 1 improves τ over λ = 0 on each of four listed benchmarks after one training epoch; λ = 1.5 does not improve further. For drafter scale, D3D-1.7B has higher τ than DFlash on MATH-500, HumanEval, and MT-Bench despite the reported parameter counts of 2.0B and 2.3B. MATH-500 τ rises from 8.16 for D3D-1.7B to 9.45 for D3D-4B and 9.89 for D3D-8B, indicating smaller gains at the larger scale increment. Pruning 36 to 31 layers retains over 99% of mean τ across MATH-500, HumanEval, and MT-Bench and yields 4.69× mean speedup there. On AIME25, the budget sweep peaks at approximately 5.0× for C = 12 and F = 2; more coverage or fan-out raises cache-hit rate but lowers speedup from that setting.

Table 1

Caption: Speedup and average acceptance length τ across mathematical reasoning, code generation, and chat benchmarks. LCB denotes LiveCodeBench. Numbers in parentheses indicate block sizes.

Content:
TargetMethod (block size)GSM8K speedupGSM8K τMATH-500 speedupMATH-500 τAIME25 speedupAIME25 τHumanEval speedupHumanEval τMBPP speedupMBPP τLCB-v6 speedupLCB-v6 τMT-Bench speedupMT-Bench τAvg. speedupAvg. τ
Qwen3-8BDFlash (16)4.59×7.935.00×7.444.34×6.294.34×6.024.03×5.293.48×5.322.46×3.484.03×5.96
Qwen3-8BDSpark (8)4.93×6.474.86×6.404.79×5.754.70×5.844.19×5.484.44×5.403.17×3.824.44×5.59
Qwen3-8BD3D (16)6.71×9.876.21×9.845.11×7.985.19×7.794.70×7.314.44×6.682.68×5.715.00×7.88
Qwen3-32BDFlash (16)4.46×5.724.37×5.573.99×5.283.75×4.713.48×4.502.66×4.043.00×3.893.67×4.82
Qwen3-32BDSpark (8)4.59×6.414.40×6.343.98×5.794.25×5.664.33×5.393.58×5.072.35×3.663.92×5.48
Qwen3-32BD3D (16)7.48×9.587.46×9.685.85×8.186.22×7.665.71×7.204.25×6.133.01×5.655.71×7.73

Why It Matters: The selected rows compare D3D with DFlash and DSpark across all seven named benchmarks. The paper reports that D3D has the highest average speedup and acceptance length among the evaluated methods for both target sizes.

Table 2

Caption: Decoding throughput in tokens/s (speedup in parentheses) versus concurrency; D3D-1.7B drafter, Qwen3-32B target.

Content:
RequestsMATH-500HumanEvalMT-Bench
1154 (6.1×)135 (5.3×)75 (2.9×)
4470 (4.8×)407 (4.3×)202 (2.1×)
8745 (3.9×)655 (3.9×)327 (1.9×)
16864 (2.7×)748 (2.6×)386 (1.5×)

Why It Matters: This reports aggregate throughput as concurrency rises and shows that the listed speedup ratios decline with load.

Table 3

Caption: Effects of auxiliary AR weight (a) and drafter scale (b) on average acceptance length τ. We evaluate D3D variants after one epoch of training, with Qwen3-8B as the target and B = 16.

Content:
Auxiliary AR weight λGSM8K τMATH-500 τHumanEval τMBPP τ
07.897.865.865.53
0.58.057.986.025.64
1.08.298.166.255.77
1.58.258.136.195.75
DrafterParametersMATH-500 τHumanEval τMT-Bench τ
DFlash2.3B6.875.423.23
D3D-1.7B2.0B8.166.254.57
D3D-4B4.4B9.457.425.38
D3D-8B8.2B9.897.865.73

Why It Matters: The ablations show that auxiliary AR supervision improves acceptance over diffusion-only training in the reported settings, while larger drafters yield diminishing gains on MATH-500.

fig:d3d_overview

fig:d3d_overview

Caption: Overview of D3D. (a) Drafter training. Target-generated responses supervise blockwise denoising and auxiliary autoregressive prediction. Packed attention shares causal prefix computation while isolating diffusion blocks and allowing bidirectional attention within each block. (b) Progressive layer pruning. Each iteration removes the layer causing the smallest decrease in validation acceptance length, followed by recovery and reevaluation of layer importance. Recovery uses distillation from a fixed unpruned drafter whose output distribution is adjusted toward the supervised token. (c) Asynchronous inference. During target verification, one packed drafter pass prepares successor blocks for alt...

Why It Matters: The overview connects the training objectives, iterative pruning, and branch preparation used during asynchronous decoding.

fig:layer_pruning_ablation

fig:layer_pruning_ablation

Caption: Ablations of D3D-8B depth and initialization with Qwen3-8B as the target and $B=16$. Left: decoding speedup and acceptance length $ $, averaged over MATH-500, HumanEval, and MT-Bench. Right: GSM8K $ $ during training from pretrained or random initialization.

Why It Matters: The figure presents the reported depth and initialization ablations; the extracted caption has missing metric notation, so the prose and tables provide the verifiable numeric details.

fig:async_budget

fig:async_budget

Caption: Decoding speedup and cache hit rate versus asynchronous draft budget on AIME25, using the 31-layer D3D-8B drafter with Qwen3-8B and $B=16$. Left: varying position coverage $C$ at $F=2$. Right: varying token fan-out $F$ at $C=12$.

Why It Matters: It shows the measured tradeoff between preparing more possible branches, cache-hit rate, and decoding speedup.

🔮 Conclusion

The paper presents D3D as a standalone diffusion drafter for asynchronous lossless speculative decoding. Target-generated responses supervise both blockwise denoising and autoregressive prediction, while acceptance-guided pruning reduces drafter depth with limited reported loss in acceptance length. Across seven benchmarks, the authors report average speedups of 5.00× and 5.71× for Qwen3-8B and Qwen3-32B targets. Their results support the value of decoupling draft generation from target hidden states, although cache misses still require synchronous drafting.

For builders, the central result is a combination of target-independent block drafting and branch reuse during verification. The paper also identifies practical constraints: asynchronous methods use a separate drafter GPU in the reported setup, and the authors have not established how the approach performs in production serving frameworks or against alternative uses of the same hardware budget.

🛠️ Future Research Improvements

The paper explicitly identifies production-framework evaluation as future work. A useful next study would implement D3D in serving systems such as SGLang or vLLM and measure whether batching and scheduling change draft overlap, cache reuse, tail latency, and aggregate throughput. The reported Transformers results do not settle these deployment questions.

The authors also note that they have not compared the two-GPU asynchronous setup with alternatives such as tensor-parallel target inference under the same GPU budget. A controlled comparison should account for target and drafter memory, compute, throughput, and workload concurrency, rather than reporting speedup alone. Cache-miss frequency and the synchronous fallback’s latency deserve separate measurement, since misses interrupt overlap.

Further experiments could test whether the reported layer-pruning and branch-budget choices transfer across target architectures, serving loads, and decoding settings. The evidence supplied here centers on Qwen3 targets, greedy decoding, and a specified benchmark set; broader claims would require corresponding main-body evaluations.

🏭 Potential Industry Use Scenarios

D3D could be relevant to inference services that generate long responses with autoregressive models and can reserve compute for a separate drafter. Its branch preparation is designed to overlap drafting with target verification, so workloads where verification time can cover the packed drafter pass may benefit. The paper’s results span mathematical reasoning, code generation, and dialogue benchmarks, indicating candidate workload types rather than proving deployment performance for any particular product.

Teams considering adoption should treat the reported throughput as a starting point for a deployment-specific benchmark. The concurrency table uses a D3D-1.7B drafter and Qwen3-32B target; its relative speedup falls as concurrency increases even while aggregate tokens per second rises. Memory for the drafter, speculative compute spent on unused branches, cache misses, and serving framework behavior all affect operational value. A practical pilot should compare end-to-end latency and throughput against the same hardware budget allocated to target inference alone.

💬 Critical Analysis

The method’s strongest design choice is that its drafter does not wait for target hidden states between rounds. The combination of parallel block denoising and autoregressive supervision is supported by an ablation in which λ = 1 improves reported acceptance length over λ = 0 across four benchmarks. The pruning study also measures the drafter’s relevant utility, acceptance length, and reevaluates layer importance after recovery rather than relying only on a proxy such as language-model loss.

The main speedup results are broad within the paper’s chosen evaluation: seven benchmarks and two Qwen3 target sizes, with reported acceptance and speedup metrics. However, baseline comparisons have a hardware allocation caveat: D3D and other asynchronous methods use two H800 GPUs, whereas synchronous baselines use one. This makes the raw speedup useful as a system result under the stated configurations, but it does not isolate algorithmic efficiency per GPU. The concurrent throughput table adds useful load evidence, yet its D3D-1.7B setup differs from the main D3D-8B configuration.

Operationally, asynchronous benefit depends on packed drafting finishing within target verification and on a prepared branch matching the verified prefix. The paper reports that increasing coverage or fan-out can raise cache-hit rates while lowering speedup, so cache hit rate alone is not an adequate optimization target. The authors also state that cache misses force synchronous drafting and that production serving systems remain unevaluated. Reproduction should therefore record cache-hit rate, fallback latency, memory use, throughput, and GPU allocation alongside acceptance length. The paper supports a promising architecture and measured benchmark gains, while evidence for cost-effective production deployment remains incomplete.

Original Abstract

Target-conditioned diffusion drafters predict candidate tokens in parallel, yet each new block must wait for updated target-model hidden states. This forces drafting and verification to run sequentially, limiting speedup even though each block is generated in one pass. We introduce D3D, a standalone diffusion drafter that removes this inter-round dependency. D3D combines blockwise denoising with auxiliary autoregressive supervision to achieve long accepted prefixes without target hidden states. This independence lets D3D draft successor blocks during verification in one packed pass, enabling asynchronous speculative decoding. We progressively prune layers according to their effect on acceptance length to reduce the cost of packed drafting. Removing five of 36 layers retains over 99\% of mean acceptance length across three benchmarks with Qwen3-8B as the target. Across seven benchmarks, D3D averages 5.00$\times$ and 5.71$\times$ decoding speedup with Qwen3-8B and Qwen3-32B targets, compared with 4.03$\times$ and 3.67$\times$ for DFlash. On GSM8K with Qwen3-32B, speedup reaches 7.48$\times$. Code is publicly available at https://github.com/fudan-generative-vision/D3D.