Skip to content

[NV] minimax-m3-B300-dynamo: use vLLM nightly image / [NV] minimax-m3-B300-dynamo:使用 vLLM nightly 镜像 - #2338

Merged
Ankur-singh merged 4 commits into
mainfrom
minimaxm3-fp8-b300-dynamo-nightly
Jul 29, 2026
Merged

[NV] minimax-m3-B300-dynamo: use vLLM nightly image / [NV] minimax-m3-B300-dynamo:使用 vLLM nightly 镜像#2338
Ankur-singh merged 4 commits into
mainfrom
minimaxm3-fp8-b300-dynamo-nightly

Conversation

@xinli-sw

@xinli-sw xinli-sw commented Jul 26, 2026

Copy link
Copy Markdown
Collaborator

Summary

B300 disaggregated (minimaxm3-fp8-b300-dynamo-vllm):

  • Bump image to vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9 and dynamo to 1.3.0.dev20260710
  • Drop the minimax-m3-vllm-fixes.sh setup patch and its launcher wiring — the fix ships in the nightly image
  • conc 4096 rework: drop the 4p2d-dep2-tep4-8k1k.yaml arm; add a new 3p2d-dep2-dep8-8k1k.yaml arm for conc [1024, 2048] (prefill 3×DEP2, decode 2×DEP8)

中文说明

B300 分离式推理配置(minimaxm3-fp8-b300-dynamo-vllm):

  • 将镜像升级到 vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9,并将 Dynamo 升级到 1.3.0.dev20260710
  • 移除 minimax-m3-vllm-fixes.sh 设置补丁及其启动器接入逻辑,因为该修复已包含在 nightly 镜像中
  • **调整并发 4096 配置:**移除 4p2d-dep2-tep4-8k1k.yaml 分支;新增 3p2d-dep2-dep8-8k1k.yaml 分支,用于并发 [1024, 2048](预填充侧使用 3 个 DEP2 worker,解码侧使用 2 个 DEP8 worker)

…96 tep4 arm for 3p2d-dep2-dep8

minimaxm3-fp8-b300-dynamo-vllm:
- image -> vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9
- dynamo -> 1.3.0.dev20260710 (recipe files)
- drop minimax-m3-vllm-fixes.sh setup patch + launcher wiring (shipped in the nightly image)
- conc 4096: drop 4p2d-dep2-tep4 arm; add 3p2d-dep2-dep8 for conc [1024, 2048]
  (prefill 3xDEP2, decode 2xDEP8)
@github-actions

Copy link
Copy Markdown
Contributor

Thanks for the contribution! Please reach out to respective companies' CODEOWNER to fill in the latest PR_REVIEW_CHECKLIST.md before pinging core maintainer on Slack for review. In order for the signoff PR check bot to trigger, you must follow the PR_REVIEW_CHECKLIST.md template correctly, including the phrase As a PR reviewer and CODEOWNER, I have reviewed this and have.

For PR verification, add the full-sweep-fail-fast label (strongly recommended) to this PR — the benchmark sweep only runs on labeled PRs. Use full-sweep-enabled only if you need matrix jobs to keep running past a failure.

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. See GitHub's docs on re-running failed jobs


感谢你的贡献!请联系相应公司的 CODEOWNER 填写最新的 PR_REVIEW_CHECKLIST.md,然后再在 Slack 上联系核心维护者进行审阅。为了触发 signoff PR 检查机器人,你必须正确遵循 PR_REVIEW_CHECKLIST.md 模板,包括保留英文语句 As a PR reviewer and CODEOWNER, I have reviewed this and have

如需进行 PR 验证,请为此 PR 添加 full-sweep-fail-fast 标签(强烈推荐)— 基准测试 sweep 仅在带有标签的 PR 上运行。仅当需要矩阵任务在失败后继续运行时才使用 full-sweep-enabled

PR 作者有责任确保合并后所有 GitHub Action 任务完全通过。 很多时候失败只是偶发抖动(flake),重新运行失败的任务即可解决。参见 GitHub 关于重新运行失败任务的文档

@claude claude Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM — this is a mechanical nightly image/dynamo version bump plus a topology arm swap for the minimax-m3 B300 disaggregated sweep, consistent with the established recipe/master-config pattern. The two inline nits (stale router.version metadata and missing bilingual PR title/description) are process/provenance-only and don't affect what actually gets deployed or benchmarked, so they shouldn't block merge.

Extended reasoning...

Overview

The PR bumps the vLLM nightly image and dynamo version across all 8 minimaxm3-fp8-b300-dynamo-vllm recipe YAMLs, drops the now-unneeded minimax-m3-vllm-fixes.sh runtime patch (and its launcher wiring in runners/launch_b300-nv.sh) since the fix is now shipped in the nightly image, and reworks the conc-4096 arm of the topology search space in configs/nvidia-master.yaml — replacing 4p2d-dep2-tep4 with a new 3p2d-dep2-dep8 arm covering conc [1024, 2048]. A matching perf-changelog.yaml entry documents the change. All edits follow the same mechanical pattern already established elsewhere in the repo (image bump + dynamo version bump + resources/vllm_config rework for a new topology arm).

Security risks

None. This only touches benchmark recipe YAML, a Slurm launcher shell script, and changelog/master-config metadata — no auth, crypto, secrets, or user-facing code paths are involved. The image reference is a pinned nightly tag (not a mutable/latest tag), and the dropped setup script removes a Python monkey-patch rather than adding one, which reduces attack surface if anything.

Level of scrutiny

Low-to-moderate. This is a routine recipe maintenance PR of a kind that's merged frequently in this repo (nightly bumps, topology arm swaps). It doesn't touch CODEOWNER-restricted core infra logic, and the changes are self-contained to one model's benchmark configuration. The two findings from the bug-hunting pass are both metadata/process nits (stale router.version string in the master config, and the repo-wide bilingual PR title/description convention) rather than functional bugs — they don't affect what gets deployed, installed, or benchmarked at runtime.

Other factors

The renamed/reworked 3p2d-dep2-dep8-8k1k.yaml arm's resource fields (prefill_workers: 3, decode_workers: 2, gpus_per_decode: 8) and vllm_config (decode data-parallel-size: 8) are internally consistent with the nvidia-master.yaml search-space entry (num-worker: 3/tp: 2/ep: 2 prefill, num-worker: 2/tp: 8/ep: 8/dp-attn: true decode), and mirror the pattern used by the sibling 4p2d-dep2-dep8 arm added previously. No CI/test coverage gaps stand out beyond the existing full-sweep validation gate, which is the mechanism this repo already relies on to catch functional recipe issues.

Comment thread perf-changelog.yaml
Comment thread configs/nvidia-master.yaml
@xinli-sw xinli-sw changed the title [NV] minimax-m3-b300-dynamo: nightly image + conc-4096 topology swap + conc-4096 topology swap Jul 26, 2026
@xinli-sw xinli-sw changed the title + conc-4096 topology swap [NV] minimax-m3-B300-dynamo: use vLLM nightly image Jul 26, 2026
@github-actions

Copy link
Copy Markdown
Contributor

@xinli-sw

Copy link
Copy Markdown
Collaborator Author

/reuse-sweep-run

@Ankur-singh Ankur-singh changed the title [NV] minimax-m3-B300-dynamo: use vLLM nightly image [NV] minimax-m3-B300-dynamo: use vLLM nightly image / [NV] minimax-m3-B300-dynamo:使用 vLLM nightly 镜像 Jul 27, 2026
@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. Run Sweep #30208342156
  • Verified that this PR passes evals. Run Sweep #30208342156
  • 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:

  • Validation and eval evidence: Run Sweep #30208342156, attempt 1, exact head 666f505239e914b98432d3b535145ebeff7346ad; 8/8 applicable multi-node throughput jobs and 7/7 applicable multi-node eval jobs passed. GSM8K scores were 0.95375–0.95982 against the 0.90 threshold, using vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9.
  • Scope: this is a fixed-sequence, non-speculative, disaggregated/multi-node submission. The single-node upstream-recipe merge requirement is not applicable; the nested merged-recipe attestation is intentionally left unchecked.
  • Open upstream recipe PR (informational; not required for this disaggregated/multi-node submission): vllm-project/recipes #687. It is currently open and directly references this PR.
  • Accepted router-metadata caveat: the top-level router.version remains 1.3.0.dev20260614 while the checked-in recipes install Dynamo 1.3.0.dev20260710. This affects provenance metadata, not the runtime selected by the recipe. The general-code-quality attestation is intentionally left unchecked; the requester explicitly accepted this caveat.
  • The PR removes minimax-m3-vllm-fixes.sh and its launcher wiring, so the pinned upstream vLLM image runs without that serving-stack patch.
  • Accepted mergeability caveat: GitHub reports CONFLICTING / DIRTY; against current main bd123427ad05f05088aec191046932f1597816bb, the conflict is limited to perf-changelog.yaml. Approval does not resolve mergeability.
  • An authorized bare /reuse-sweep-run command is already on the PR.

Signed: Ankur-singh

@Klaud-Cold

Copy link
Copy Markdown
Collaborator

✅✅✅ Verdict: PASS ✅✅✅

✅ Check 0 (CODEOWNER): PASS — Ankur-singh is a listed owner of configs/nvidia-master.yaml; all other changed paths carry only the catch-all owner.
✅ Check 1 (passing sweep on in-PR commit): PASS — PR head 666f505 has 8/8 multi-node 8k1k / and 7/7 multi-node eval / check-runs green (executed, not skipped) from run 30208342156; no single-node lanes apply to this PR.
✅ Check 2 (evals pass): PASS — 7/7 GSM8K scores 0.9538–0.9598 vs the 0.90 threshold (utils/evals/thresholds.yaml default), all run on vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9, the exact image this PR pins.
➖ Check 3 (recipe linked & merged): N/A — disaggregated/multi-node submission (multinode: true, disagg: true, all benchmark files under benchmarks/multi_node/**); the recipe-link requirement applies to single-node recipes only. The open vllm-project/recipes#687 is informational.
✅ Check 4 (reuse command): PASS — bare /reuse-sweep-run posted by xinli-sw (COLLABORATOR).
✅ Check 5 (latest checklist): PASS — all current-template items present; the two unchecked items (general code quality, nested merged-recipe link) are both explained in the additional detail section.
✅ Check 6 (upstream image / engine-first): PASS — image comes from the upstream vllm/ Docker Hub org, and vLLM-first is satisfied by the existing minimaxm3-fp8-b300-vllm entry for the same model and SKU.
✅ Check 7 (no architecture hacks): PASS — no --hf-overrides or FLOPs-reducing changes; the diff only bumps image/dynamo versions and reshapes P/D worker parallelism.
➖ Check 8 (spec-decode chat template): N/A — no speculative-decoding changes (spec_decoding: none).
✅ Check 9 (no engine patches): PASS — this PR removes the minimax-m3-vllm-fixes.sh inline engine patch and its launcher wiring; the remaining git apply in runners/launch_b300-nv.sh targets srt-slurm orchestration tooling (not the serving stack) and predates this PR.
➖ Check 10 (agentic spec-decode golden AL): N/A — no agentic speculative-decoding changes.

@Ankur-singh

Copy link
Copy Markdown
Collaborator

/reuse-sweep-run

@Klaud-Cold

Copy link
Copy Markdown
Collaborator

✅✅✅ Verdict: PASS ✅✅✅

✅ Check 0 (CODEOWNER): PASS — Ankur-singh is a listed owner of configs/nvidia-master.yaml; remaining paths carry only the catch-all, which a recognized CODEOWNER satisfies.
✅ Check 1 (sweep on in-PR commit): PASS — run 30208342156 ran on 666f5052, still in this PR (head 712f52c7 is a merge of main on top of it); all executed lanes green: 8/8 multi-node 8k1k / + 7/7 multi-node eval / succeeded (single-node lanes correctly skipped for this multi-node-only PR).
✅ Check 2 (evals pass): PASS — downloaded eval_results_all: GSM8K em_strict 0.9538–0.9598 across all 7 disagg configs vs the 0.90 bar, run on vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9 — the exact image this PR pins.
➖ Check 3 (recipe linked & merged): N/A — disaggregated/multi-node submission; the recipe-link requirement applies to single-node recipes only. (Open vllm-project/recipes#687 noted as informational.)
✅ Check 4 (reuse command): PASS — /reuse-sweep-run posted by xinli-sw and Ankur-singh, both COLLABORATOR.
✅ Check 5 (latest template): PASS — all current-template items present; the two unchecked items (code quality, nested merged-recipe link) are each explained in the additional detail section.
✅ Check 6 (upstream image & ordering): PASS — image is upstream vllm/vllm-openai:nightly-... on B300; single-node vLLM entry minimaxm3-fp8-b300-vllm already exists for this model+SKU, so engine-first ordering holds for the dynamo-vllm entry.
✅ Check 7 (no architecture hacks): PASS — no --hf-overrides / model-config edits / FLOP-reducing knobs in the diff.
➖ Check 8 (spec-decode chat template): N/A — no speculative-decoding changes.
✅ Check 9 (no engine patches): PASS — this PR removes the minimax-m3-vllm-fixes.sh inline engine patch and its launcher wiring; the pinned nightly image now runs as shipped.
➖ Check 10 (agentic golden AL): N/A — no agentic speculative-decoding changes; no synthetic-acceptance knobs introduced anywhere in the diff.

@Ankur-singh
Ankur-singh merged commit 4ea94c9 into main Jul 29, 2026
28 checks passed
@Ankur-singh
Ankur-singh deleted the minimaxm3-fp8-b300-dynamo-nightly branch July 29, 2026 20:57
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