DSpark vs Domino: Same DFlash Backbone, Different Correction Heads#
- Author:
Model Optimizer Team
- Date:
July 13, 2026
- Tags:
speculative-decoding, dflash, dspark, domino, architecture
DSpark (DeepSpec) and Domino both build on block-parallel DFlash draft generation but diverge in their token-level correction heads. DSpark’s default head is a stateless first-order Markov transition; Domino’s is a GRU that conditions on the draft prefix. Both must unroll sequentially at inference, so the tradeoff is per-step cost against how much prefix context the correction can use. During teacher-forced training, DSpark’s Markov transition can also be parallelized over positions. See the DSpark and Domino papers in References for the original method descriptions.
Highlights#
Both systems share the DFlash block-parallel backbone, so their parallel draft throughput starts from a similar foundation.
In ModelOpt, DSpark defaults to
markov_head_type="vanilla": statelessW1andW2embedding lookups with no hidden state to thread through.Domino uses
nn.GRUand carries recurrent state across draft positions.Both correction heads are sequential at inference because
x_{k-1}must be sampled before stepk.
Where They Diverge: The Correction Head#
DSpark uses a first-order Markov transition. For each draft position k:
e_{k-1} = W1[x_{k-1}]
bias_k = W2 * e_{k-1}
p_k = softmax(U_k + bias_k)
x_k ~ p_k
The correction at position k depends only on x_{k-1}; no RNN hidden state threads across steps. The dominant work is a table lookup and projection rather than a recurrent rollout.
Domino uses a GRU correction head. A recurrent hidden state accumulates information about the draft prefix and is concatenated at readout:
gru_h_k = GRU(input_k, gru_h_{k-1})
p_k = softmax(U_k + W * [h_k; gru_h_k])
x_k ~ p_k
These descriptions compare the underlying architectures. ModelOpt’s Domino support is currently training-only, so it does not apply the correction head in serving.
Correction Head Comparison#
System |
Per-step compute |
State carried |
|---|---|---|
DSpark |
|
None |
Domino GRU |
Full GRU cell over a high-dimensional input |
Recurrent hidden state |
Both heads must unroll left-to-right at inference. The practical distinction is qualitative: the vanilla Markov head uses only the prior sampled token, while the GRU carries a prefix-dependent recurrent state.
Takeaways#
DFlash draft generation is shared; the correction head is the main differentiator.
Both default correction heads are sequential at inference; their tradeoff is local transition structure versus prefix-dependent state.
ModelOpt exposes the DSpark variants through
markov_head_type:vanilla(the default),gated, andrnn. Thernnoption is the closest analogue to Domino’s GRU.Architectural comparisons do not establish a universal quality or throughput ranking; evaluate the chosen head on the target model and serving configuration.
References#
Xin Cheng et al., DSpark: Confidence-Scheduled Speculative Decoding with Semi-Autoregressive Generation, arXiv:2607.05147, 2026.
Jianuo Huang et al., Domino: Decoupling Causal Modeling from Autoregressive Drafting in Speculative Decoding, arXiv:2605.29707, 2026.