Skip to content

config(minimaxm3): update GB200 Dynamo vLLM AgentX recipes / 更新 GB200 Dynamo vLLM AgentX 配方 - #3424

Open
RohitNagraj wants to merge 2 commits into
mainfrom
minimaxm3-fp4-gb200-vllm-agentic-mid-curve
Open

RohitNagraj wants to merge 2 commits into
mainfrom
minimaxm3-fp4-gb200-vllm-agentic-mid-curve

Conversation

@RohitNagraj

Copy link
Copy Markdown
Collaborator

Summary

  • Update the MiniMax-M3 GB200 aggregate matrix with TP4 SimpleCPU recipe variants that use separate scheduler caps.
  • Replace the disaggregated matrix with DEP4 prefill and TP2 decode pools for the submitted concurrency points.
  • Add five multi-node recipes and pin each recipe to its declared vLLM, Dynamo, and Mooncake runtime.
  • Keep AgentX evaluation on real target verification while using the EAGLE3 draft model at its shipped precision.

Validation

  • Parsed the changed YAML files successfully.
  • Generated the two exact config keys and the affected GB200 family: 9 configurations total.
  • Ran srtctl dry-run -f successfully for all 5 new recipes with the repository-pinned srt-slurm version.
  • Passed 370 focused matrix, changelog-gate, and SRT cluster tests.
  • Verified the EAGLE3 draft artifacts are BF16 and the vLLM configuration does not request draft-weight quantization.
  • Passed git diff --check.

Review notes

  • This is exclusively a multi-node configuration change, so no separate single-node serving recipe is applicable.
  • The disaggregated matrix contains four submitted points and therefore needs core-maintainer review under the current Pareto-coverage guidance.
  • No sweep-triggering label has been added.

AI assistance

OpenAI GPT-5 (Codex; exact runtime version not exposed) prepared the configuration translation, validation, and pull request text. The submitter reviewed the resulting files and metadata before publication.

简体中文

概要

  • 更新 MiniMax-M3 GB200 聚合部署矩阵,新增使用不同调度上限的 TP4 SimpleCPU 配方变体。
  • 将分离部署矩阵调整为 DEP4 prefill 与 TP2 decode 池,并覆盖本次提交的并发点。
  • 新增 5 个多节点配方,并将每个配方固定到其声明的 vLLM、Dynamo 与 Mooncake 运行时。
  • AgentX 评测继续使用目标模型进行真实验证,同时按 EAGLE3 草稿模型随附精度加载权重。

验证

  • 已成功解析本次修改的 YAML 文件。
  • 已生成两个精确配置键及受影响的 GB200 配置族,共 9 个配置。
  • 使用仓库固定的 srt-slurm 版本,对 5 个新增配方执行 srtctl dry-run -f,全部通过。
  • 通过 370 项针对矩阵、变更日志门禁和 SRT 集群配置的测试。
  • 已确认 EAGLE3 草稿模型工件为 BF16,且 vLLM 配置未请求对草稿权重进行量化。
  • git diff --check 通过。

审阅说明

  • 本次仅修改多节点配置,因此不适用单独的单节点服务配方。
  • 分离部署矩阵包含 4 个提交点,依据当前 Pareto 覆盖指引,需要核心维护者审阅。
  • 未添加任何触发 sweep 的标签。

AI 协助

OpenAI GPT-5(Codex;运行环境未公开更精确的版本标识)协助完成配置整理、验证与拉取请求文本。提交者会在发布前审阅最终文件和元数据。

更新 MiniMax-M3 GB200 聚合与分离部署的 Dynamo vLLM AgentX 配方,并同步主配置和性能变更日志。
@github-actions

Copy link
Copy Markdown
Contributor

Thanks for the contribution!

  • Review: If this PR changes files owned by someone other than a repository admin or @SemiAnalysisAI/core, ask one eligible CODEOWNER to complete the latest PR_REVIEW_CHECKLIST.md before contacting a core maintainer on Slack. Follow the template exactly, including As a PR reviewer and CODEOWNER, I have reviewed this and have, so sign-off verification triggers.
  • PR verification: Sweeps only run on labeled PRs. Add full-sweep-fail-fast (strongly recommended); use full-sweep-enabled only when matrix jobs should continue after a failure.
  • After merging: PR authors must ensure all GitHub Actions jobs pass. Transient failures often pass on rerun; see how to rerun failed jobs.
中文

感谢你的贡献!

  • **审阅:**如果 PR 修改的文件归属于仓库管理员及 @SemiAnalysisAI/core 之外的 CODEOWNER,请先联系一位有资格的 CODEOWNER 填写最新的 PR_REVIEW_CHECKLIST.md,再通过 Slack 联系核心维护者。必须严格遵循模板,并保留 As a PR reviewer and CODEOWNER, I have reviewed this and have,才能触发签核验证。
  • **PR 验证:**扫描仅在带有标签的 PR 上运行。强烈建议添加 full-sweep-fail-fast;仅当需要矩阵任务在失败后继续运行时才使用 full-sweep-enabled。
  • **合并后:**PR 作者必须确保所有 GitHub Actions 任务通过。临时性失败通常可以通过重新运行恢复;参见重新运行失败任务的说明。

补充 MiniMax-M3 GB200 配置提交的公开拉取请求链接。

@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.

Beyond the inline pr-link finding, I also checked whether the decode max-num-seqs cap being far below each recipe's benchmarked concurrency was a bug (e.g. disagg-1p5d-dep4-tp2-mns4-c50.yaml: max-num-seqs 4 x 5 workers = 20 cap vs c50). Ruled out as unintentional: the same undersized-cap-vs-concurrency pattern appears consistently across all three new disagg recipes, and each filename literally encodes the chosen mns (max-num-seqs) value alongside its concurrency point(s) (mns1-c15, mns2-c20-c30, mns4-c50), which reads as a deliberate queuing/backpressure scheduler-cap design rather than a mismatch.

Extended reasoning...

This is a config/recipe-only PR (5 new srt-slurm YAML recipes plus matching master-config and changelog entries for the MiniMax-M3 GB200 FP4 benchmark matrix); it touches no application code and no auth/crypto/permissions surface. A confirmed inline finding already flags that the new perf-changelog.yaml entry's pr-link: TBD is not in the tool's accepted placeholder set (only "XXX" and its full URL form), so it will fail validate_added_pr_link in infx/workflows/validate_perf_changelog.py and block the changelog gate rather than pass as the PR description claims. I additionally checked the decode scheduler-cap-vs-concurrency pattern across all three new disagg recipes and found it consistent and filename-encoded, so I ruled that out as an intentional design choice rather than a separate bug. Given the confirmed blocking finding, this should not be approved.

Comment thread perf-changelog.yaml Outdated
- "Pin each checked-in recipe to its declared vLLM, Dynamo, and Mooncake runtime, using the shipped EAGLE3 draft precision and real verification for evals."
- "新增 MiniMax-M3 GB200 聚合 TP4 SimpleCPU 配方变体,并分别设置调度上限;同时将分离部署搜索空间调整为 DEP4 prefill 与 TP2 decode 池。"
- "每个已检入配方固定其声明的 vLLM、Dynamo 与 Mooncake 运行时,使用 EAGLE3 草稿模型随附精度,并在评测中保留真实验证。"
pr-link: TBD

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.

🔴 The new changelog entry's pr-link: TBD will make the merge-automation bot reject this PR's own changelog entry instead of canonicalizing it, unlike every other entry in the file. validate_added_pr_link in infx/workflows/validate_perf_changelog.py:134-143 only accepts a real https://github.com/SemiAnalysisAI/InferenceX/pull/<n> link or a placeholder in PR_LINK_PLACEHOLDERS = {"XXX", ".../pull/XXX"}; TBD matches neither and raises ChangelogValidationError("new PR entry must use ... or an XXX placeholder; found 'TBD'") when compare_entries runs (invoked from infx/workflows/prepare_perf_changelog_merge.py at merge time). Fix: use the documented XXX (or full pull/XXX URL) placeholder per CONTRIBUTING.md's example, not a free-form string like TBD.

Why this was flagged

The new perf-changelog.yaml entry at line 8901 sets pr-link: TBD. When the repo's merge-prep tooling (infx/workflows/prepare_perf_changelog_merge.py, via compare_entries/validate_added_pr_link) processes this PR to canonicalize appended entries' pr-link into the real PR URL, it calls validate_added_pr_link('TBD', pr_number). Since 'TBD' is not in PR_LINK_PLACEHOLDERS = {'XXX', 'https://github.com/SemiAnalysisAI/InferenceX/pull/XXX'} and does not match CANONICAL_PR_LINK, this raises ChangelogValidationError. CONTRIBUTING.md:190 documents the required placeholder as the literal 'XXX' form; grep across perf-changelog.yaml and the changelog_gate_tests fixtures shows every other placeholder entry uses 'XXX', never 'TBD'. This blocks the automated pr-link canonicalization/merge step for this PR, requiring a manual fix, whereas on the base branch every appended entry's placeholder is recognized and processed automatically.

Verification: normal. The new changelog entry at perf-changelog.yaml:8901 sets pr-link: TBD. The supported merge path utils/merge_with_reuse.sh:169-170 runs python3 -m infx.workflows.prepare_perf_changelog_merge canonicalize, which calls canonicalize_appended_links (prepare_perf_changelog_merge.py:77), which calls compare_entries(base, head, pr_number) at line 86. compare_entries iterates additions and…

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

1 participant