feat: add DeepSeek-V4 Flash DSpark node perf recipe + required mods - #304
feat: add DeepSeek-V4 Flash DSpark node perf recipe + required mods#304vedcsolution wants to merge 2 commits into
Conversation
- fix-dspark-dsv4-d2t: guard speculator.py:86 against DeepSeek-V4 (no draft_id_to_target_id attribute; full-vocab Markov drafting) - add-dsv4-topk256: sparse-MLA sm120 topk=256 decode instantiation (flashinfer#3817); REMOVE once upstream merged + released - deepseek-v4-flash-dspark-node-perf.yaml: perf pass 1 recipe with safe generic flags, memory-conservative for GB10 121GB unified
|
Dependency correction: SM12x DeepSeek-V4 DSpark needs both FlashInfer TOPK=256 halves—decode #3817 and prefill #3834. Carrying only #3817 leaves the prefill instantiation missing. #3896 was superseded by #3834, so the carry and removal note should name #3817 + #3834 and remove both only after a pinned FlashInfer release contains them. |
Co-Authored-By: Claude <noreply@anthropic.com>
|
Thanks @ormandj — corrected in a2424eb. The carry is now split and paired explicitly:
The recipe and PR removal note now require the FlashInfer version pinned by the image to contain both changes before either mod is removed, and note that #3896 was superseded by #3834. I also validated the pair end-to-end on 2x DGX Spark GB10 (SM121), |
|
@vedcsolution think we'll be able to use this as a base for the 0731 release? EDIT: The answer is yes, you can :) I think this may have helped. Changed these based on the 0731 model card suggestions. |
|
@sqrlmstr5000 Yes — we put the official
Two sweep findings directly relevant to the config you posted:
Also measured: FWIW, the checkpoint also scales nicely past 2 nodes: on 4x Spark TP=4+EP we get ~47 t/s single-stream / ~101 at 4-concurrent, and with |
…aphs + profiler envs) T1 split proved non-viable: flashinfer-autotune workspace starves the KV pool (5.51 GiB available vs 262K-ctx need) unless VLLM_MEMORY_PROFILER_ESTIMATE_CUDAGRAPHS=0 rides along. The eugr#304 flags only work as a package.
…ugr#304's 0731 sweep validated 0.85 @ 262K)

Adds:
speculator.py:86against DeepSeek-V4 (nodraft_id_to_target_idattribute — full-vocab Markov drafting, no reduced-vocab scatter path). Upstream: [Bugfix][Spec Decode] Add missing draft_id_to_target_id to DSparkDeepseekV4ForCausalLM vllm-project/vllm#47429.SM12x DeepSeek-V4 DSpark requires both FlashInfer TOPK=256 halves. Carry and remove these two mods together, and remove them only after the FlashInfer version pinned by the image contains both #3817 and #3834.
See recipe YAML for full flag rationale.