You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ROAD-V1-C3's recorded tail is "DSpark (SPEC-DSPARK) + heterogeneous-vocabulary
TLI (SPEC-TLI) unspiked — overlaps ROAD-V1-D3"
(.agents/specs/roadmap-v1-completion.md:40, punch-list item 17 at :216).
Every clause of that sentence is wrong, and it is wrong in two different
directions.
DSpark is not unspiked — it is implemented, gated and measured cross-engine
Spike spec committed 2026-08-09 (2b342620e), now 1595 lines with
W1–W8 and §§6a–6aa of measurement: .agents/specs/dspark-spec-decode.md.
Engine matrix SPEC-DSPARK has been ACTIVE, owner CLAIM-SPEC-DSPARK,
since that spike.
Shipped code: qwen3_dspark.{h,cpp} + _weights.cpp, v1/worker/gpu/spec_decode/dspark/speculator.{h,cpp}, five test files, and
the Speculators-format config translation.
Measured against the pinned graphed oracle under pinned clocks: 35B-A3B MoE 0.975x code cell / 1.012x prose cell, residual attributed to a 12.9%
effective-DRAM-bandwidth gap inside marlin_moe_wna16::Marlin on byte-equivalent machine code. docs/BENCHMARKS.md already carries that row.
TLI is untouched, and it is not a DSpark tail at all
Upstream TLI is use_heterogeneous_vocab (config/speculative.py:150) plus VocabMapping (v1/spec_decode/vocab_mapping.py:68). Both are consumed only
by v1/spec_decode/llm_base_proposer.py (SpecDecodeBaseProposer) and v1/spec_decode/draft_model.py:19. The V2-runner speculators our DFlash/DSpark
port mirrors (v1/worker/gpu/spec_decode/{dflash,dspark}/) have no
heterogeneous-vocab path at all. So TLI's host row is SPEC-DRAFT-MODEL, whose
local state is a CPU propose brick with no runner construction — TLI is
prerequisite-blocked, not merely unspiked. DSpark's d2t does not cover it: d2t is an offset table inside one tokenizer's vocab, TLI builds a string-level
intersection across tokenizer families (BPE Ġ vs SentencePiece ▁).
D3 covers none of it
.agents/specs/spec-decode-breadth-d3.md:22 puts DSpark and TLI explicitly out ofROAD-V1-D3's scope. D3 (DONE 2026-07-27) landed ngram +
EAGLE3-blocked and covers no part of C3's tail.
Surfaces that disagree with the tree
Surface
Says
.agents/specs/roadmap-v1-completion.md:40,216
DSpark + TLI "unspiked", overlaps D3
.agents/roadmap_v1.md:196,263
"DFlash Part C + DSpark/TLI remain"; "their dedicated spikes are not written" — SPEC-DFLASH is DONE
.agents/roadmap_v1.md:397
"SPEC-DSPARK (engine matrix, INVENTORIED)"
.agents/specs/spec-decode-inventory.md:45,72
SPEC-DSPARKINVENTORIED; "no speculators-format adapter"
docs/STATUS.md:167
dspark listed among the INVENTORIED methods, contradicting the same file's own DSpark paragraph
ROAD-V1-C3's recorded tail is "DSpark (SPEC-DSPARK) + heterogeneous-vocabularyTLI (
SPEC-TLI) unspiked — overlapsROAD-V1-D3"(
.agents/specs/roadmap-v1-completion.md:40, punch-list item 17 at:216).Every clause of that sentence is wrong, and it is wrong in two different
directions.
DSpark is not unspiked — it is implemented, gated and measured cross-engine
2b342620e), now 1595 lines withW1–W8 and §§6a–6aa of measurement:
.agents/specs/dspark-spec-decode.md.SPEC-DSPARKhas beenACTIVE, ownerCLAIM-SPEC-DSPARK,since that spike.
qwen3_dspark.{h,cpp}+_weights.cpp,v1/worker/gpu/spec_decode/dspark/speculator.{h,cpp}, five test files, andthe Speculators-format config translation.
the T=1+k verify by mirroring vLLM's
uniform_decode_query_len = 1 + num_speculative_tokens.0.975x code cell / 1.012x prose cell, residual attributed to a 12.9%
effective-DRAM-bandwidth gap inside
marlin_moe_wna16::Marlinonbyte-equivalent machine code.
docs/BENCHMARKS.mdalready carries that row.TLI is untouched, and it is not a DSpark tail at all
Upstream TLI is
use_heterogeneous_vocab(config/speculative.py:150) plusVocabMapping(v1/spec_decode/vocab_mapping.py:68). Both are consumed onlyby
v1/spec_decode/llm_base_proposer.py(SpecDecodeBaseProposer) andv1/spec_decode/draft_model.py:19. The V2-runner speculators our DFlash/DSparkport mirrors (
v1/worker/gpu/spec_decode/{dflash,dspark}/) have noheterogeneous-vocab path at all. So TLI's host row is
SPEC-DRAFT-MODEL, whoselocal state is a CPU propose brick with no runner construction — TLI is
prerequisite-blocked, not merely unspiked. DSpark's
d2tdoes not cover it:d2tis an offset table inside one tokenizer's vocab, TLI builds a string-levelintersection across tokenizer families (BPE
Ġvs SentencePiece▁).D3 covers none of it
.agents/specs/spec-decode-breadth-d3.md:22puts DSpark and TLI explicitlyout of
ROAD-V1-D3's scope. D3 (DONE2026-07-27) landed ngram +EAGLE3-blocked and covers no part of C3's tail.
Surfaces that disagree with the tree
.agents/specs/roadmap-v1-completion.md:40,216.agents/roadmap_v1.md:196,263SPEC-DFLASHisDONE.agents/roadmap_v1.md:397SPEC-DSPARK(engine matrix,INVENTORIED)".agents/specs/spec-decode-inventory.md:45,72SPEC-DSPARKINVENTORIED; "nospeculators-format adapter"docs/STATUS.md:167dsparklisted among the INVENTORIED methods, contradicting the same file's own DSpark paragraph.agents/specs/dspark-spec-decode.mdStatusfield.agents/roadmap_v1.mdOpen issues tableThis issue tracks reconciling those surfaces. It changes no
src/,include/or
tests/file and asserts no new measurement.