Skip to content

[NV] add dsv4-fp4-gb300-dynamo-sglang-mtp-1k1k / 新增 DeepSeek-V4-Pro FP4 GB300 Dynamo SGLang MTP 1k1k 基准测试配置 - #1697

Closed
hshrivastava-droid wants to merge 32 commits into
mainfrom
nv/dsv4-gb300-v2
Closed

[NV] add dsv4-fp4-gb300-dynamo-sglang-mtp-1k1k / 新增 DeepSeek-V4-Pro FP4 GB300 Dynamo SGLang MTP 1k1k 基准测试配置#1697
hshrivastava-droid wants to merge 32 commits into
mainfrom
nv/dsv4-gb300-v2

Conversation

@hshrivastava-droid

@hshrivastava-droid hshrivastava-droid commented Jun 9, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Extends the existing dsv4-fp4-gb300-dynamo-sglang-mtp entry with eleven fixed-sequence 1k/1k scenarios for DeepSeek-V4-Pro on GB300 using FP4, multi-node disaggregated SGLang, and MTP/EAGLE speculative decoding.
  • Adds three high-throughput topologies at concurrency 8192: 1P1D with DEP8 decode, 1P1D with DEP16 decode, and 2P1D with DEP16 decode.
  • Adds eight low-latency topologies: DEP4 or TP4 prefill with 1, 2, 4, or 6 TP4 decode workers. The DEP4 variants run at concurrency 64; the TP4 variants run at concurrency 2.
  • All eleven new recipes use EAGLE with 3 speculative steps, top-k 1, 4 draft tokens, and use_chat_template: true.
  • Pins the master config and all 19 affected recipe containers (11 new 1k/1k plus 8 existing 8k/1k) to lmsysorg/sglang:nightly-dev-cu13-20260710-cfc66e05.
  • Updates runners/launch_gb300-nv.sh to use NVIDIA/srt-slurm@v1.0.17 for DeepSeek-V4 Dynamo-SGLang and overlay the checked-in DeepSeek-V4 recipe tree.
  • Appends the matching perf-changelog.yaml entry.

Validation

Run Sweep 29540585164, attempt 4 completed successfully on in-PR commit 6d4c42c2606d62f1e222f500f6bea7441bdf66c9. It executed all 11 new 1k/1k benchmark jobs, all 8 affected 8k/1k benchmark jobs, 7 multi-node eval jobs, and the result/eval collection and comparison jobs. The DeepSeek-V4-Pro GSM8K results were 0.9613–0.9659 em_strict (1,319 samples each), above the configured 0.91 threshold, using the pinned July 10 SGLang image.

Current disposition

This PR predates PR #2263, which merged on July 18, 2026 and deprecated fixed-sequence 1k/1k scenarios from the active NVIDIA and AMD master configs. The current diff reintroduces active 1k/1k coverage, so it should not merge unchanged. The shortest disposition is to close/retire this PR; if the image, launcher, or 8k/1k recipe updates are still wanted, they should be resubmitted as a freshly validated 8k/1k-only change.

中文说明

  • 在现有 dsv4-fp4-gb300-dynamo-sglang-mtp 配置中新增 11 个固定序列长度 1k/1k 场景,用于 DeepSeek-V4-Pro 在 GB300 上通过 FP4、多节点 SGLang 分离式推理和 MTP/EAGLE 投机解码进行基准测试。
  • 新增 3 个并发度为 8192 的高吞吐拓扑:1P1D + DEP8 解码、1P1D + DEP16 解码,以及 2P1D + DEP16 解码。
  • 新增 8 个低延迟拓扑:预填充侧采用 DEP4 或 TP4,解码侧采用 1、2、4 或 6 个 TP4 worker。DEP4 组合的并发度为 64,TP4 组合的并发度为 2。
  • 11 个新配方均启用 EAGLE,配置为 3 个投机步、top-k 1、4 个 draft token,并设置 use_chat_template: true
  • 将主配置及全部 19 个受影响的配方容器(11 个新增 1k/1k 配方和 8 个现有 8k/1k 配方)统一固定为 lmsysorg/sglang:nightly-dev-cu13-20260710-cfc66e05
  • 更新 runners/launch_gb300-nv.sh:DeepSeek-V4 Dynamo-SGLang 路径固定使用 NVIDIA/srt-slurm@v1.0.17,并在运行时覆盖仓库内的 DeepSeek-V4 配方目录。
  • perf-changelog.yaml 末尾追加对应记录。

验证结果

Run Sweep 29540585164,第 4 次运行 已在当前 PR 内的提交 6d4c42c2606d62f1e222f500f6bea7441bdf66c9 上成功完成。该运行执行了全部 11 个新增 1k/1k 基准测试任务、全部 8 个受影响的 8k/1k 基准测试任务、7 个多节点评估任务,以及结果/评估汇总与对比任务。DeepSeek-V4-Pro 的 GSM8K em_strict 得分为 0.9613–0.9659(每项 1,319 个样本),高于配置中的 0.91 阈值,并使用了固定的 7 月 10 日 SGLang 镜像。

当前处置建议

本 PR 早于 PR #2263 创建;后者已于 2026 年 7 月 18 日合并,并将固定序列长度 1k/1k 场景从 NVIDIA 和 AMD 的活动主配置中弃用。当前差异会重新引入活动的 1k/1k 配置,因此不应按现状合并。最短路径是关闭/退役本 PR;如果仍需保留镜像、启动器或 8k/1k 配方更新,应另行提交仅包含 8k/1k 范围的变更并重新完成验证。

@github-actions

github-actions Bot commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

Thanks for the contribution! For vLLM & SGLang, please ensure that your recipes is similar to the official vLLM recipes and/or the SGLang cookbook

If it is not, please create a PR first before we can merge your single node PR into the master branch. Let's ensure that the documentation is first class such that the entire ML community can benefit from your hard work! Thank you

PR authors are responsible for ensuring that after merging, all GitHub Action jobs fully pass. A lot of the time, failures are just flakes and simply re-running the failed jobs will fix it. If re-running failed jobs is attempted, PR authors are responsible for ensuring it passes. See GitHub's docs on re-running failed jobs: https://docs.github.com/en/actions/how-tos/manage-workflow-runs/re-run-workflows-and-jobs#re-running-failed-jobs-in-a-workflow

As a rule of thumb, generally, PR authors should request a review & get a PR approval from the respective companies' CODEOWNERS before requesting a review from core maintainers.

If additional help is needed, PR authors can reach out to core maintainers over Slack.


model:
path: "dsv4-pro"
container: "lmsysorg/sglang:nightly-dev-cu13-20260510-2473659e"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Low-latency recipe container missing

High Severity

The two low-latency recipes still pin model.container to lmsysorg/sglang:nightly-dev-cu13-20260510-2473659e, while dsv4-fp4-gb300-dynamo-sglang-mtp-1k1k imports squash only for lmsysorg/sglang:nightly-dev-cu13-20260603-83bc7766. Workers resolve the recipe tag, which is not mapped in srtslurm.yaml and is documented as absent from Docker Hub, so those matrix points can fail at enroot import.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 2aeafb4. Configure here.

Comment thread .github/configs/nvidia-master.yaml Outdated
@github-actions

github-actions Bot commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

@github-actions

Copy link
Copy Markdown
Contributor

@github-actions

Copy link
Copy Markdown
Contributor

@github-actions

Copy link
Copy Markdown
Contributor

2 similar comments
@github-actions

Copy link
Copy Markdown
Contributor

@github-actions

Copy link
Copy Markdown
Contributor

Comment thread .github/configs/nvidia-master.yaml Outdated
image: lmsysorg/sglang:nightly-dev-cu13-20260603-83bc7766
model: deepseek-ai/DeepSeek-V4-Pro
model-prefix: dsv4
runner: gb300-nv

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wrong runner for SGLang recipes

High Severity

The new dsv4-fp4-gb300-dynamo-sglang-mtp-1k1k entry uses runner: gb300-nv, while sibling DeepSeek-V4 GB300 dynamo-sglang configs use gb300-cw. launch_gb300-nv.sh never copies staged recipes/sglang/deepseek-v4 into srt-slurm (only glm5 gets that path), and its srtslurm.yaml omits the dsv4-pro alias many new recipes use—so srtctl apply is likely to fail on missing recipes or model preflight.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 47460ef. Configure here.

@github-actions

Copy link
Copy Markdown
Contributor

@github-actions

Copy link
Copy Markdown
Contributor

@github-actions

Copy link
Copy Markdown
Contributor

1 similar comment
@github-actions

Copy link
Copy Markdown
Contributor

@Oseltamivir

Copy link
Copy Markdown
Collaborator

@hshrivastava-droid The GB300 CW are back

Resolve conflicts:
- perf-changelog.yaml: take main's version and append the PR 1697 entry
  (dsv4-fp4-gb300-dynamo-sglang-mtp) at the end
- runners/launch_gb300-nv.sh: keep both concurrent dynamo-sglang elif
  branches (our dsv4 + main's qwen3.5)
@SemiAnalysisAI SemiAnalysisAI deleted a comment from Ankur-singh Jul 2, 2026
@github-actions

github-actions Bot commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

@functionstackx functionstackx changed the title [WIP][NV] add dsv4-fp4-gb300-dynamo-sglang-mtp-1k1k [WIP][NV] add dsv4-fp4-gb300-dynamo-sglang-mtp-1k1k / 新增 DeepSeek-V4-Pro FP4 GB300 Dynamo SGLang MTP 1k1k 基准测试配置 Jul 4, 2026
hshrivastava-droid and others added 2 commits July 6, 2026 11:44
Previous tag lmsysorg/sglang:nightly-dev-20260527-14f81a67 expired on
Docker Hub (404), causing every job in run 28613151268 (PR #1697) to
fail at enroot import. Bump the 8 MTP recipes and the nvidia-master
entry to lmsysorg/sglang:nightly-dev-cu13-20260706-8673e85e (verified
live). Update the PR's perf-changelog entry to reflect the bump.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
# Conflicts:
#	perf-changelog.yaml
#	runners/launch_gb300-nv.sh
@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

1 similar comment
@github-actions

github-actions Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

hshrivastava-droid added a commit that referenced this pull request Jul 10, 2026
…26) for dsv4+dynamo-sglang

The new 1k/1k STP recipes use benchmark: {type: custom, command: ...},
a schema feature that only exists on NVIDIA/srt-slurm main. Pinning
sa-submission-q2-2026 caused srtctl to reject the recipe with
"Invalid config ... {'benchmark': {'command': ['Unknown field.']}}"
before any benchmark could run (see failing sweep run 28977862941).

Same launcher fix PR #1697 already carries; applying it here so the
dynamo-sglang + dsv4 elif clones NVIDIA/srt-slurm@main.
Pin master image: and all 19 (11 x 1k1k + 8 x 8k1k) recipe model.container
values to lmsysorg/sglang:nightly-dev-cu13-20260710-cfc66e05, aligning the
whole config on the newer nightly and clearing the prior split between
1k1k (v0.5.13.post1-cu130) and 8k1k (07-06 nightly).
The runners/launch_gb300-nv.sh dynamo-sglang + dsv4 branch clones
NVIDIA/srt-slurm and previously ran 'git checkout main', so every sweep
picked up whatever srtctl 'main' happened to be at that moment.
Between the last green run (2026-06-16) and the current failing head
(2026-07-06), main advanced meaningfully, which is a plausible driver of
the recent 'decode worker exit 137 / Server did not become healthy'
failures on the byte-identical 1k1k recipes. Pin to v1.0.17 so all
future sweeps in this PR run against a fixed srtctl SHA and drift can
be ruled in or out cleanly.
Resolve the PR #1697 merge conflicts by keeping main's changelog entries and appending the branch entry, while preserving both launcher paths. Also remove recipe-level 3h Slurm limits from the new 1k1k disagg recipes so GitHub Actions' 8h cap governs the sweep.

中文:将 main 同步到 dsv4 GB300 配置分支。通过保留 main 的 changelog 条目并在末尾追加本分支条目来解决 PR #1697 的合并冲突,同时保留两个启动器路径;并移除新增 1k1k 分离式配方中的 3 小时 Slurm 限制,让 GitHub Actions 的 8 小时上限控制扫描运行。
@github-actions

Copy link
Copy Markdown
Contributor

2 similar comments
@github-actions

Copy link
Copy Markdown
Contributor

@github-actions

Copy link
Copy Markdown
Contributor

@github-actions

Copy link
Copy Markdown
Contributor

2 similar comments
@github-actions

Copy link
Copy Markdown
Contributor

@github-actions

Copy link
Copy Markdown
Contributor

@hshrivastava-droid

Copy link
Copy Markdown
Collaborator Author

/reuse-sweep-run

@hshrivastava-droid hshrivastava-droid changed the title [WIP][NV] add dsv4-fp4-gb300-dynamo-sglang-mtp-1k1k / 新增 DeepSeek-V4-Pro FP4 GB300 Dynamo SGLang MTP 1k1k 基准测试配置 [NV] add dsv4-fp4-gb300-dynamo-sglang-mtp-1k1k / 新增 DeepSeek-V4-Pro FP4 GB300 Dynamo SGLang MTP 1k1k 基准测试配置 Jul 20, 2026
@Ankur-singh

Copy link
Copy Markdown
Collaborator

/reuse-sweep-run 29540585164

@Ankur-singh

Copy link
Copy Markdown
Collaborator

As a PR reviewer and CODEOWNER, I have reviewed this and have:

  • Verified that as of the moment of typing this, this is the latest version of PR_REVIEW_CHECKLIST.md
  • Verified that the general code quality meets the InferenceX standard and does not make the code quality any worse.
  • Verified that this PR has passed PR validation. Please link to GitHub Action workflow that shows this. Run Sweep
  • Verified that this PR passes evals. Please link to GitHub Action workflow that shows this. Run Sweep
  • Verified that speculative decoding PRs uses chat templates to align the AL distribution to real world
  • For agentic workloads: verified that speculative-decoding configs (EAGLE / MTP / draft models) run with simulated synthetic acceptance, with the acceptance-length value taken from the committed golden AL curve in golden_al_distribution/ for that model, thinking mode, and draft length. A submission may choose any supported draft length, but it may not substitute a different acceptance target.
  • Verified that the model architecture isn't changed with benchmark hacks like using --hf-overrides to skipping indexer for every x layers on models that don't natively support this. As a general rule, we won't accept optimizations that reduces the number of model architecture FLOPs. Anything that makes that same computation run faster is fair game; FLOPs at lower precisions is fine, given that the config passes private evals. As an general north star princple, we should only use optimizations which is used in production by customers that care about accuracy
  • If an company claims that they support vLLM/SGLang as first class LLM inference engines on their hardware, I have verified that the respective vLLM submission made using upstream https://hub.docker.com/u/vllm docker repo, upstream SGLang https://hub.docker.com/u/lmsysorg docker repo. The only exceptions are for new hardware, such as MI455X UALoE72, Vera Rubin NVL72, Rubin NVL8, etc., and for new model architectures where there is an actual reason why vLLM/SGLang does not fundamentally support them yet as supported by vLLM/SGLang community maintainers
  • If an company claims that they support vLLM/SGLang as first class upstream in-tree LLM inference engines on their hardware, I have have verified that the respective vLLM/SGLang submission has been made before additional frameworks (TRT-LLM, ATOM, etc.). The only exceptions are for new hardware, such as MI455X UALoE72, Vera Rubin NVL72, Rubin NVL8, etc., and for new model architectures where there is an actual reason why vLLM/SGLang does not fundamentally support them yet.
  • Verified that every single-node vLLM/SGLang recipe in this PR is documented in the official vLLM recipes and/or the SGLang cookbook:
    • I linked the corresponding upstream PR in the vLLM recipe repo or SGLang repo and verified that it is MERGED before this InferenceX PR merges. An opened, draft, or closed-without-merge upstream PR does not satisfy this requirement. If the matching recipe was already published, I linked the published recipe/cookbook page in the additional detail section below.
  • Verified that this PR does not patch the inference engine or serving stack — the pinned image must run as shipped. This covers .patch files / git apply / patch, inline patches embedded in benchmark scripts (e.g. a python3/sed heredoc that rewrites installed engine sources before serving), in-place edits of site-packages, monkey-patching, overwriting container files, and installing forked/rebuilt engine wheels on top of the pinned image. The only exception is a patch covered by a filled-out waiver at docs/waiver/<PR_NUMBER>.md — named after the PR that introduces the patch and filed in that same PR, stating what is patched, why the unmodified upstream image cannot run this benchmark, the upstream PR/issue link, and the removal plan — which I have linked below in the additional detail section.
  • If any of the above criteria cannot reasonably be satisfied, I have provided additional reasoning below.

Additional detail section:

  • Run 29540585164 passed the applicable benchmarks and evals on 6d4c42c, which remains in this PR and is the immediate first parent of the current merge-only head.
  • This is a multi-node disaggregated SGLang MTP submission, so the agentic and single-node recipe requirements are not applicable. The recipes set use_chat_template: true.

Signed: Ankur-singh

@Klaud-Cold

Copy link
Copy Markdown
Collaborator

✅✅✅ Verdict: PASS ✅✅✅

✅ Check 0 (CODEOWNER): PASS — Ankur-singh is a named owner of configs/nvidia-master.yaml in .github/CODEOWNERS; all other changed paths carry only the * catch-all, which any recognized CODEOWNER satisfies.
✅ Check 1 (passing sweep on in-PR commit): PASS — commit 6d4c42c (in this PR) has green executed multi-node 1k1k /, multi-node 8k1k / and multi-node eval / check-runs from run 29540585164; the single-node */ and eval / lanes were skipped because this PR is multi-node-only.
✅ Check 2 (evals pass): PASS — the run's eval_results_all artifact shows 7 GSM8K evals at 0.961–0.966 em_strict (n=1319) for DeepSeek-V4-Pro FP4 dynamo-sglang on GB300, executed on lmsysorg/sglang:nightly-dev-cu13-20260710-cfc66e05 — the same image this PR pins in the master entry and all 19 recipe containers.
➖ Check 3 (recipe link): N/A — disaggregated/multi-node submission (srt-slurm-recipes/**, master entry multinode: true / disagg: true); the recipe-link requirement applies to single-node recipes only.
✅ Check 4 (reuse command): PASS — /reuse-sweep-run 29540585164 posted by Ankur-singh (COLLABORATOR); a bare /reuse-sweep-run from hshrivastava-droid (COLLABORATOR) is also on record.
✅ Check 5 (latest checklist template): PASS — every item in the current docs/PR_REVIEW_CHECKLIST.md template is present and checked in the sign-off.
✅ Check 6 (upstream image / engine-first): PASS — all images are upstream lmsysorg/sglang:*; the PR adds no new non-vLLM/SGLang framework entry, it extends the existing SGLang-engine dsv4-fp4-gb300-dynamo-sglang-mtp entry.
✅ Check 7 (no architecture hacks): PASS — no --hf-overrides/model-override args anywhere in the diff; changes are parallelism topology, EAGLE spec-decode, and serving/harness knobs only.
✅ Check 8 (spec-decode chat template): PASS — all 11 new EAGLE/MTP recipes set use_chat_template: true in their benchmark blocks.
✅ Check 9 (no engine patches): PASS — no .patch/git apply/heredoc rewrites or engine wheel installs; the launch_gb300-nv.sh change only clones the srt-slurm harness and overlays local recipe YAMLs.
➖ Check 10 (agentic golden AL): N/A — no agentic spec-decode changes; the non-agentic MTP recipes correctly run real (unsimulated) acceptance.

adibarra added a commit that referenced this pull request Aug 7, 2026
* Add DeepSeek-V4-Pro NVFP4 GB300 1k1k STP disagg scenarios

Appends 7 new fixed-seq-len entries (isl=1024, osl=1024) to the existing
dsv4-fp4-gb300-dynamo-sglang key: 1P1D DEP8/DEP16, 1P4D and 1P6D TP4,
2P1D DEP12/DEP16/DEP48. Recipes under
benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/1k1k/, container
aligned with the existing GB300 8k1k image
(lmsysorg/sglang:nightly-dev-cu13-20260520-425dffbd).

launch_gb300-nv.sh gains a dynamo-sglang + dsv4 overlay branch (srt-slurm
sa-submission-q2-2026 base, in-tree recipes overlaid on top).

* Update perf-changelog pr-link for #2099

* Bump sglang nightly to nightly-dev-cu13-20260707-b4155233

Previous tag nightly-dev-cu13-20260520-425dffbd was GC'd from Docker Hub;
every multi-node dyn-sgl job 404'd at enroot import. Also refresh dynamo
commit ref in stack comment and fix repo URL in dep8 config.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* Bump 8k1k recipes and master image to sglang nightly-dev-cu13-20260707-b4155233

The earlier bump (3c9ee2e) only updated the 1k1k recipes, leaving the
dsv4-fp4-gb300-dynamo-sglang master image: and all 8k1k recipes on the
missing 20260520-425dffbd tag. The launcher's enroot import 404s on the
master image tag and every matrix job dies before srt-slurm runs. This
pulls the whole entry (master + 14 referenced recipes) onto the same tag.

* launch_gb300-nv.sh: check out srt-slurm main (not sa-submission-q2-2026) for dsv4+dynamo-sglang

The new 1k/1k STP recipes use benchmark: {type: custom, command: ...},
a schema feature that only exists on NVIDIA/srt-slurm main. Pinning
sa-submission-q2-2026 caused srtctl to reject the recipe with
"Invalid config ... {'benchmark': {'command': ['Unknown field.']}}"
before any benchmark could run (see failing sweep run 28977862941).

Same launcher fix PR #1697 already carries; applying it here so the
dynamo-sglang + dsv4 elif clones NVIDIA/srt-slurm@main.

* launch_gb300-nv.sh: pin srt-slurm to v1.0.17 for dsv4+dynamo-sglang

Replace `git checkout main` with a pinned tag `git checkout v1.0.17`.
v1.0.17 already carries the BenchmarkType.CUSTOM enum + benchmark.command
schema field that the new 1k/1k STP recipes need, and pinning avoids
drift as NVIDIA/srt-slurm main moves forward.

* update result path in recipes

中文:更新配方中的结果路径

* Remove 1k1k STP disagg scenarios

* fix: bootstrap GB300 DeepSeek-V4 source build

Use srt-slurm v1.0.25 for hash-pinned Dynamo source builds so cargo and maturin are installed before compilation.

使用 srt-slurm v1.0.25 处理固定提交的 Dynamo 源码构建,确保编译前安装 cargo 和 maturin。

---------

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Co-authored-by: Rohit Pujar Nagraj <rpujarnagraj@nvidia.com>
Co-authored-by: adibarra <93070681+adibarra@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Development

Successfully merging this pull request may close these issues.

4 participants