Skip to content

[NV] minimax-m3-b200/b300: update fp8 STP to vLLM nightly - #2336

Merged
Oseltamivir merged 4 commits into
mainfrom
minimaxm3-fp8-b200-b300-vllm-nightly
Jul 27, 2026
Merged

[NV] minimax-m3-b200/b300: update fp8 STP to vLLM nightly#2336
Oseltamivir merged 4 commits into
mainfrom
minimaxm3-fp8-b200-b300-vllm-nightly

Conversation

@xinli-sw

Copy link
Copy Markdown
Collaborator

Summary

Single-node STP (non-MTP) MiniMax-M3 MXFP8 on B200/B300 (minimaxm3-fp8-b200-vllm, minimaxm3-fp8-b300-vllm):

  • Bump image to vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9
  • Set --stream-interval 32
  • Drop the inline sparse_attention_msa contiguity patch — the fix ships in the nightly image
  • Sweep space kept as-is (clear wins)

…op MSA patch

Single-node STP (minimaxm3-fp8-b200-vllm, minimaxm3-fp8-b300-vllm):
- image -> vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9
- --stream-interval 32
- drop the sparse_attention_msa contiguity patch (shipped in the nightly image)
- sweep space unchanged
@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 关于重新运行失败任务的文档

1 similar comment
@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 — approving despite the two nits already flagged inline (stale comment provenance text, missing bilingual title/description); neither affects correctness of the recipe change.

Extended reasoning...

Overview

This PR touches only benchmark recipe files for MiniMax-M3 MXFP8 STP on B200/B300: two shell scripts (minimaxm3_fp8_b200.sh, minimaxm3_fp8_b300.sh), configs/nvidia-master.yaml, and perf-changelog.yaml. The change bumps the vLLM image to a nightly build, raises --stream-interval from 20 to 32, and removes an inline Python monkey-patch that materialized a non-contiguous tensor slice in vLLM'''s MiniMax-M3 sparse-attention MSA path — a workaround the PR description says is now fixed upstream in the nightly image. The removed patch block is identical in both scripts and its removal is clean (no dangling references elsewhere in the scripts). The perf-changelog.yaml entry accurately describes all three changes and links back to this PR.

Security risks

None. No auth, crypto, permissions, network-facing, or user-input-handling code is touched. The removed code was a local file patch applied to the container'''s installed vllm package at container-start time, not anything user-reachable.

Level of scrutiny

Low-to-moderate. This is a benchmark-recipe change in a config-driven sweep system, not production-critical application code. The image bump and flag change are mechanical, and the patch removal is a straightforward revert of a previously-added workaround now claimed to be fixed upstream — consistent with the stated rationale in both the comment being removed and the PR description. The two issues found (stale rationale comment left in nvidia-master.yaml describing the old 0618 image/m3_release branch, and a missing bilingual PR title/description per AGENTS.md) are documentation/process nits with zero runtime or CI impact.

Other factors

The bug-hunting pass also checked for and ruled out a duplicate framing of the same stale-comment issue, so there'''s nothing additional beyond what'''s already inline. No outstanding reviewer comments block this PR — the only timeline activity is the standard automated recipe-reminder comment. Given the narrow, mechanical scope and absence of any functional defect, I'''m comfortable approving with the two nits left as inline notes for the author to clean up.

Comment on lines 7328 to 7334
# sparse/index cache alignment). Weights are NOT SRE-staged; b300 falls back
# to writable /data/models (see launch_b300-nv.sh MODEL_PATH split).
minimaxm3-fp8-b300-vllm:
image: vllm/vllm-openai:minimax-m3-0618-x86_64-cu130
image: vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9
model: MiniMaxAI/MiniMax-M3-MXFP8
model-prefix: minimaxm3
runner: b300

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 block comments above both minimaxm3-fp8-b300-vllm and minimaxm3-fp8-b200-vllm still say the image is a dedicated build from the m3_release branch (vllm-project/vllm#45381) because M3 hasn't shipped in a stable vLLM release, but this PR changes both image: fields to a nightly build. The rationale/provenance sentence is now stale in both places and should be updated (or removed) to reflect that a nightly image is used instead.

Extended reasoning...

This PR bumps the image: field for both the B300 and B200 MiniMax-M3 FP8 STP configs in configs/nvidia-master.yaml from vllm/vllm-openai:minimax-m3-0618-x86_64-cu130 to vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9, but it leaves the explanatory block comments directly above each entry untouched. Both comments read (identically, word for word): "M3 support has not shipped in a stable vLLM release; the dedicated vllm/vllm-openai:minimax-m3-0618-x86_64-cu130 image is built from the m3_release branch (vllm-project/vllm#45381)." That sentence now names a container tag the config no longer references and asserts a provenance story ("dedicated ... image ... built from the m3_release branch") that no longer applies to a generic nightly build.

The two locations are:

  • Lines ~7322-7329 (comment) / line 7331 (image:) above minimaxm3-fp8-b300-vllm
  • Lines ~7402-7410 (comment) / line 7412 (image:) above minimaxm3-fp8-b200-vllm

Nothing in the PR or the surrounding YAML would catch this: comments are not validated against the fields they describe, there is no schema or lint rule tying image: values to comment text, and the diff hunk for the image-line change does not include the comment block above it, so a reviewer skimming the diff would only see the new image: value, not the stale sentence sitting just outside the hunk context.

The impact is documentation-only — nothing breaks at runtime, CI, or in the benchmark sweep, since the comment is never parsed or executed. The risk is purely that a future engineer reading this config (e.g., to decide whether to bump the image again, or to understand why a "dedicated" image was pinned) will be misled into thinking the current nightly image is still the special m3_release-branch build tied to vllm-project/vllm#45381, when it is actually an unrelated nightly snapshot.

Step-by-step proof:

  1. Before this PR: image: vllm/vllm-openai:minimax-m3-0618-x86_64-cu130 on both entries, matching the comment's claim of "the dedicated ... image ... built from the m3_release branch."
  2. This PR's diff changes only the image: line to vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9 for both minimaxm3-fp8-b300-vllm and minimaxm3-fp8-b200-vllm.
  3. The comment block immediately above each entry is untouched by the diff and still names the old minimax-m3-0618-x86_64-cu130 tag and the m3_release-branch rationale.
  4. Reading the file post-merge, a reader sees image: vllm/vllm-openai:nightly-... directly under a comment that describes a completely different image and its provenance — a direct contradiction between comment and code.

Fix: update (or trim) the comment in both places to reflect that a nightly vLLM build is now used, e.g., replace the "dedicated ... m3_release branch" sentence with something like "a nightly vLLM build is used until M3 support lands in a stable release," or simply drop the specific tag/PR reference since it no longer applies.

Comment thread perf-changelog.yaml
Comment on lines +5069 to +5075

- config-keys:
- minimaxm3-fp8-b200-vllm
- minimaxm3-fp8-b300-vllm
description:
- "Bump image to vllm/vllm-openai:nightly-4080263bb2c5d10deac17aaeb88e0823bc35bca9; set --stream-interval 32; drop the sparse_attention_msa contiguity patch (shipped in the nightly image)"
pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/2336

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.

🟡 This PR's title and description are English-only, but AGENTS.md mandates bilingual PR titles/descriptions (title format <English> / <中文标题>, plus a ## 中文说明 section in the body). Please add the Chinese title suffix and a Chinese summary section to comply with the repo's contribution guidelines.

Extended reasoning...

What the rule requires: AGENTS.md line 7 states explicitly:

PR and GitHub-issue titles & descriptions must be bilingual — include a Simplified Chinese version in addition to English. Title format: <English title> / <中文标题>. In the PR/issue body, follow the English content with its Chinese translation (e.g. a ## 中文说明 section mirroring the summary...). This applies to every PR and every issue.

The only carve-outs are the CODEOWNER sign-off template (which must stay English-verbatim so the verifier bot can match its exact trigger phrase) and bot-generated comments. Neither exception covers the PR author's own title or Summary section.

How this PR violates it: The PR title is [NV] minimax-m3-b200/b300: update fp8 STP to vLLM nightly — English only, with no / <中文标题> suffix. The description consists solely of an English ## Summary section (image bump, --stream-interval 32, dropping the MSA contiguity patch); there is no ## 中文说明 section mirroring it.

Why this isn't caught automatically: Nothing in this PR's diff (the benchmark scripts, configs/nvidia-master.yaml, or perf-changelog.yaml) enforces or validates the bilingual title/description requirement — it's a human/PR-metadata convention rather than something checked by the changelog validator or the sign-off bot. The sign-off bot only checks for the literal English phrase As a PR reviewer and CODEOWNER, I have reviewed this and have in a reviewer comment; it has no logic inspecting the PR title or Summary body for Chinese content. So a purely English title/description sails through CI untouched, and the requirement can only be caught by review (human or otherwise) against AGENTS.md.

Step-by-step proof:

  1. Open AGENTS.md and read line 7 — the bilingual title/description mandate applies to "every PR and every issue," with the title format <English title> / <中文标题>.
  2. Look at the PR metadata: title = [NV] minimax-m3-b200/b300: update fp8 STP to vLLM nightly. Split on / — the only / present is part of minimax-m3-b200/b300, a hardware pairing, not a <中文标题> suffix. There is no Chinese text anywhere in the title.
  3. Look at the PR body: it contains only ## Summary with English bullet points. Search for 中文 or any CJK characters in the body — none are present, so there's no ## 中文说明 section as required.
  4. Confirm no exception applies: this is not the CODEOWNER sign-off template (those are the two github-actions[bot] timeline comments, not the PR title/description) and not a bot-generated comment — it's the author's own title and Summary.
  5. Conclusion: the PR violates the explicit, repo-mandated bilingual requirement.

Impact and fix: This is a process/documentation-convention gap, not a functional defect — nothing in the benchmark scripts, config, or changelog entry is incorrect, and no CI job or benchmark run will fail because of it. The fix is straightforward: rename the title to [NV] minimax-m3-b200/b300: update fp8 STP to vLLM nightly / <中文标题> and append a ## 中文说明 section to the body mirroring the English Summary (bump image, set --stream-interval 32, drop the MSA patch since it's fixed upstream), following the translation quality bar described elsewhere in AGENTS.md (natural technical Chinese, keeping model names/flags/SKUs in English).

@github-actions

Copy link
Copy Markdown
Contributor

2 similar comments
@github-actions

Copy link
Copy Markdown
Contributor

@github-actions

Copy link
Copy Markdown
Contributor

@xinli-sw

Copy link
Copy Markdown
Collaborator Author

/reuse-sweep-run

@Oseltamivir Oseltamivir left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

lgtm

@Oseltamivir
Oseltamivir merged commit e2dcfa9 into main Jul 27, 2026
26 checks passed
@Oseltamivir
Oseltamivir deleted the minimaxm3-fp8-b200-b300-vllm-nightly branch July 27, 2026 11:58
zufayu added a commit that referenced this pull request Jul 27, 2026
Resolve perf-changelog.yaml conflict: keep both #2327 (dsv4-atom) and
#2336 (minimaxm3-vllm) entries. #2327 sweep already green. [skip-sweep]

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
zufayu added a commit that referenced this pull request Jul 27, 2026
Resolve perf-changelog.yaml conflict: keep both #2345 (dsv4-atom-mtp) and
#2336 (minimaxm3-vllm) entries. Needed for run-sweep to trigger (CONFLICTING
PRs don't fire pull_request events).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.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.

2 participants