Repository navigation
[AgentX] MiniMax-M3.1-Flash GB200 SGLang: store DSpark draft KV in FP8 / [AgentX] MiniMax-M3.1-Flash GB200 SGLang:DSpark draft KV 改用 FP8 - #4599
Conversation
Set speculative-draft-kv-cache-dtype fp8_e4m3, matching the vLLM DSpark drafter, so the bf16 draft KV no longer takes HBM and HiCache host pool space from target KV. The whole curve reruns. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Thanks for the contribution!
中文感谢你的贡献!
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
| # FP8 draft KV, as vLLM's DSpark drafter uses; bf16 costs ~10 GB of HBM per rank. | ||
| speculative-draft-kv-cache-dtype: fp8_e4m3 |
There was a problem hiding this comment.
🔴 After merge, every GB200 MiniMax-M3.1-Flash SGLang point serves the DSpark draft below its shipped precision, which CONTRIBUTING.md's draft-precision rule forbids. The draft-only speculative-draft-kv-cache-dtype: fp8_e4m3 lowers draft KV from the pinned image's bf16 default. Target KV stays at its own default, so the dtype is not applied to both models alike. Fix: remove the draft-only override and keep the framework default draft KV. If FP8 KV is wanted, use an upstream kv-cache-dtype that the pinned image applies to target and draft alike, then reword the changelog entry.
Why this was flagged
agentic.yaml:37 adds speculative-draft-kv-cache-dtype: fp8_e4m3 to the base args, so every override (tp4 c1-c32, tp4_dram c32-c64, tp4_ep4_dram c72/c80) inherits it. The PR's own description says the SGLang DSpark drafter defaults to bf16 KV. The recipe sets no target kv-cache-dtype, so this is a draft-only override that lowers precision. CONTRIBUTING.md:86-87 lists "Dtype or KV-cache dtype overrides aimed at the draft that lower its precision below the framework's default for that checkpoint" as forbidden. CONTRIBUTING.md:100-104 says passing evals does not exempt this, because draft-precision losses show up in acceptance rate, which target evals do not measure. So the PR's stated safeguard ("the sweep's eval is what checks this") does not hold. On base, the recipe served the draft at the framework default and was compliant. After merge, the whole rerun curve fails Check 13 (.github/codeowner-signoff-verify-prompt.md:600-606).
Verification: Every point of minimaxm31flash-fp4-gb200-sglang-agentic-dspark (nvidia-master.yaml:5814-5831) uses this recipe's base args. agentic.yaml:37 adds speculative-draft-kv-cache-dtype: fp8_e4m3 under base.roles.agg.args. The recipe sets no target kv-cache-dtype anywhere. CONTRIBUTING.md:86-87 forbids "Dtype or KV-cache dtype overrides aimed at the draft that lower its precision below the framework's default for that checkpoint."
|
View unofficial run (performance): https://inferencex.semianalysis.com/inference?unofficialRun=40739138596 View unofficial run (accuracy): https://inferencex.semianalysis.com/evaluation?unofficialRun=40739138596 |
There was a problem hiding this comment.
Code review found no new issues
No new issues were found in this update; 1 finding from earlier reviews is still open above.
Still open from earlier reviews (1):
- 🔴
inferencex-e2e/benchmarks/single_node/srt-slurm-recipes/minimaxm31flash/sglang/gb200-fp4-mtp/agentic.yaml:37—After merge, every GB200 MiniMax-M3.1-Flash SGLang point serves the DSpark draft below its shipped precision, which CON…
If you have decided not to act on one of these findings, resolve its thread (a reply alone leaves it open) and the next review stops counting it. To review this commit again now, use Re-run on its "Claude Code Review" check.
|
[by Claude Code] The SGLang cookbook integration of this PR's AgentX config ( This PR has no authorized |
|
[by Claude Code] sgl-project/sglang#47027 has been merged. This PR's AgentX config ( This PR has no authorized |
…-sglang-agentx-fp8-draft-kv # Conflicts: # inferencex-e2e/perf-changelog.yaml
|
/use 40739138596 |
|
@zijiexia staging run 40739138596. Existing staged runs will be preserved; a completion link will be posted here. |
…-sglang-agentx-fp8-draft-kv # Conflicts: # inferencex-e2e/perf-changelog.yaml
|
Ingest report — ✅ Results ingested into the Ingest workflow · Merge Ingest run · Benchmark source run
benchmarkFiles 13, rawBenchmarkRows 13, coveredByPerJobFiles 0, purgedPoints 0, failedRunRows 0, runStatsNew 0, runStatsDuplicate 0, evalSamplesNew 3957, gpuMetricSamplesNew 282204, powerPublicationPoints 13, changelogEntriesWritten 1 Counts cover only this run. Rows: benchmark_results, eval_results, agentic rows linked to a trace, gpu_metrics series. This comment updates if the ingest is rerun. 中文Ingest 报告 — ✅ 结果已写入 上表仅统计本次运行写入的数据,各行单位依次为 benchmark_results 行、eval_results 行、已关联 trace 的 agentic 行和 gpu_metrics 序列。重新运行 ingest 时本评论会原地更新。 |
Bring in #4599, #4641 and #4646. perf-changelog.yaml keeps main's MiniMax-M3.1-Flash GB200 SGLang entry ahead of the #2916 and #4243 video entries; the CollectiveX files and the GB200 agentic recipe merged cleanly. The sweep on 74bb681 (run 40873178356) stays the proof for this PR, so PR benchmark setup is skipped. 中文:合并 main(#4599、#4641、#4646)。perf-changelog.yaml 将 main 的 MiniMax-M3.1-Flash GB200 SGLang 条目放在 #2916 与 #4243 的视频条目之前; CollectiveX 文件与 GB200 agentic recipe 自动合并无冲突。74bb6816 上的 sweep(run 40873178356)仍是本 PR 的验证依据,因此跳过 PR 基准 setup。
The SGLang DSpark drafter stores its KV cache in bf16 by default. On B300 TP2 that took 21 GB of HBM and 71 GB of the 370 GB HiCache host pool per rank, leaving about 10% less GPU KV than vLLM, whose DSpark drafter uses FP8 KV. At high concurrency the smaller GPU cache lowered the GPU prefix hit rate and cost throughput against vLLM.
This PR sets
speculative-draft-kv-cache-dtype: fp8_e4m3in the base args of the GB200 MiniMax-M3.1-Flash SGLang AgentX recipe, so the freed HBM and host memory go to target KV. The changelog entry is not append-only, so the whole curve reruns on the new recipe. The same change for B300 is in #4524.Risk: FP8 draft KV can lower real DSpark acceptance. Throughput runs use the golden synthetic AL, so the sweep's eval is what checks this.
中文
SGLang 的 DSpark drafter 默认用 bf16 存 KV cache。在 B300 TP2 上,它每个 rank 占用 21 GB HBM 和 370 GB HiCache host 池中的 71 GB,GPU KV 容量比 vLLM 少约 10%(vLLM 的 DSpark drafter 用 FP8 KV)。高并发时 GPU cache 更小,GPU prefix 命中率下降,吞吐落后于 vLLM。
本 PR 在 GB200 MiniMax-M3.1-Flash SGLang AgentX recipe 的 base args 中设置
speculative-draft-kv-cache-dtype: fp8_e4m3,把省下的 HBM 和 host 内存留给 target KV。changelog 条目不是 append-only,整条曲线会用新 recipe 重跑。B300 的同样改动在 #4524。风险:FP8 draft KV 可能降低真实的 DSpark 接受率。吞吐测试使用 golden synthetic AL,因此需要由 sweep 中的 eval 来验证。
AI model disclosure
Prepared with Claude Code using
claude-opus-5-5. Reviewed by the human author before submission.🤖 Generated with Claude Code