Skip to content

[AMD] Add MiniMax-M3-FP4 MI355X ATOMMESH#1856

Open
seungrokj wants to merge 42 commits into
mainfrom
amd/atom_mesh_0619_m3
Open

[AMD] Add MiniMax-M3-FP4 MI355X ATOMMESH#1856
seungrokj wants to merge 42 commits into
mainfrom
amd/atom_mesh_0619_m3

Conversation

@seungrokj

@seungrokj seungrokj commented Jun 19, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Add minimaxm3_fp4_mi355x_atom-disagg.sh: new CI entry point for MiniMax-M3-MXFP4 multi-node disaggregated PD on MI355X via ATOM, mirroring the dsv4 disagg script. No MTP, KV_CACHE_DTYPE=auto (MXFP4 format, no fp8 override), MAX_MODEL_LEN/MAX_NUM_BATCHED_TOKENS=32768
  • server_atom.sh: make --kv_cache_dtype conditional (skipped when empty or auto); add MAX_MODEL_LEN, MAX_NUM_BATCHED_TOKENS, CUDAGRAPH_OPT support; fix "${ARRAY[@]}" broken-quote array splice inside eval'd CMD strings; extract --hf-overrides into HF_OVERRIDES_ARG (DeepSeek-V4-Pro only); add Opt args line to INFO block
  • job.slurm: pass MAX_MODEL_LEN, MAX_NUM_BATCHED_TOKENS, CUDAGRAPH_OPT through Docker env for atom-disagg engine
  • bench.sh: use --dsv4 flag for DeepSeek-V4-Pro MTP runs (instead of --use-chat-template)
  • Various propagation fixes for SPEC_DECODING, DECODE_MTP_SIZE, BENCH_REQUEST_RATE, IS_MTP

Test plan

  • Verify minimaxm3-fp4-mi355x-atom-disagg sweep launches correctly on MI355X
  • Confirm --kv_cache_dtype is absent from MiniMax-M3 server launch logs
  • Confirm --kv_cache_dtype fp8 is present for DSv4 server launch logs
  • Verify MAX_MODEL_LEN/MAX_NUM_BATCHED_TOKENS appear in server args when set

🤖 Generated with Claude Code


Note

Medium Risk
Touches shared server_atom.sh and Slurm/docker env for all atom-disagg jobs (including DSv4), so regressions in server flags or eval command construction could break existing disagg sweeps—not production serving, but high-impact for CI benchmarks.

Overview
Adds MiniMax-M3-MXFP4 multi-node prefill/decode on MI355X via ATOM/atommesh (minimaxm3-fp4-mi355x-atom-disagg in amd-master.yaml plus minimaxm3_fp4_mi355x_atom-disagg.sh), with 1P1D TP4 sweeps at 1k/1k and 8k/1k, no MTP, native MXFP4 KV (KV_CACHE_DTYPE=auto), block size 128, and MAX_MODEL_LEN / MAX_NUM_BATCHED_TOKENS at 32768.

Shared ATOM disagg plumbing is extended so MiniMax can run without breaking DeepSeek-V4-Pro: server_atom.sh renames MEM_FRACTIONMEM_FRAC_STATIC, omits --kv_cache_dtype when dtype is empty/auto, threads optional length/batch caps and MTP flags into prefill/decode eval commands (fixing broken "${ARRAY[@]}" inside eval strings), gates DSv4-only --hf-overrides, TBO, and env tweaks vs AITER_QUICK_REDUCE_QUANTIZATION=INT4 for other models, and sets IS_MTP for benchmarking. job.slurm passes BENCH_REQUEST_RATE and the new atom env vars; env_atom.sh applies MoE interleave/bound overrides only for DeepSeek-V4-Pro; bench.sh uses --dsv4 for DSv4 MTP runs; models_atom.yaml registers MiniMax-M3 MXFP4/MXFP8 stubs.

Reviewed by Cursor Bugbot for commit 3a7ab53. Bugbot is set up for automated code reviews on this repo. Configure here.

@github-actions

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.


感谢你的贡献!对于 vLLM 与 SGLang,请确保你的 recipe 与官方 vLLM recipes 和/或 SGLang cookbook 保持一致

如果不一致,请先创建一个 PR,之后我们才能将你的单节点 PR 合并到 master 分支。让我们确保文档保持一流水准,使整个 ML 社区都能从你的辛勤工作中受益!谢谢

PR 作者有责任确保合并后所有 GitHub Action 任务完全通过。 很多时候失败只是偶发抖动(flake),重新运行失败的任务即可解决。如果选择重新运行失败的任务,PR 作者有责任确保其最终通过。参见 GitHub 关于重新运行失败任务的文档:https://docs.github.com/en/actions/how-tos/manage-workflow-runs/re-run-workflows-and-jobs#re-running-failed-jobs-in-a-workflow

一般而言,PR 作者应先向相应公司的 CODEOWNERS 请求审阅并获得 PR 批准,然后再请求核心维护者审阅。

如需更多帮助,PR 作者可通过 Slack 联系核心维护者。

1 similar comment
@github-actions

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.


感谢你的贡献!对于 vLLM 与 SGLang,请确保你的 recipe 与官方 vLLM recipes 和/或 SGLang cookbook 保持一致

如果不一致,请先创建一个 PR,之后我们才能将你的单节点 PR 合并到 master 分支。让我们确保文档保持一流水准,使整个 ML 社区都能从你的辛勤工作中受益!谢谢

PR 作者有责任确保合并后所有 GitHub Action 任务完全通过。 很多时候失败只是偶发抖动(flake),重新运行失败的任务即可解决。如果选择重新运行失败的任务,PR 作者有责任确保其最终通过。参见 GitHub 关于重新运行失败任务的文档:https://docs.github.com/en/actions/how-tos/manage-workflow-runs/re-run-workflows-and-jobs#re-running-failed-jobs-in-a-workflow

一般而言,PR 作者应先向相应公司的 CODEOWNERS 请求审阅并获得 PR 批准,然后再请求核心维护者审阅。

如需更多帮助,PR 作者可通过 Slack 联系核心维护者。

@seungrokj seungrokj changed the title [AMD] Add MiniMax-M3-FP4 MI355X ATOM disagg CI script and server fixes [AMD] Add MiniMax-M3-FP4 MI355X ATOMMESH Jun 19, 2026
Comment thread benchmarks/multi_node/amd_utils/server_atom.sh
Comment thread benchmarks/multi_node/amd_utils/server_atom.sh
Comment thread benchmarks/multi_node/amd_utils/server_atom.sh
Comment thread benchmarks/multi_node/minimaxm3_fp4_mi355x_atom-disagg.sh
Comment thread benchmarks/multi_node/minimaxm3_fp4_mi355x_atom-disagg.sh Outdated
Comment thread benchmarks/multi_node/minimaxm3_fp4_mi355x_atom-disagg.sh
Comment thread benchmarks/multi_node/minimaxm3_fp4_mi355x_atom-disagg.sh Outdated
Comment thread .github/configs/amd-master.yaml

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

m3 vllm disagg seems a bit more ready and doesnt break the other vllm disagg models. so prob ship that first before this one?

also left some comments, plz test that it doesnt break dsv4

Comment thread benchmarks/multi_node/amd_utils/server_atom.sh
Comment thread .github/configs/amd-master.yaml Outdated
@github-actions

Copy link
Copy Markdown
Contributor

1 similar comment
@github-actions

Copy link
Copy Markdown
Contributor

@github-actions

Copy link
Copy Markdown
Contributor

1 similar comment
@github-actions

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

@github-actions

Copy link
Copy Markdown
Contributor

Comment thread benchmarks/multi_node/minimaxm3_fp4_mi355x_atom-disagg.sh Outdated
@github-actions

Copy link
Copy Markdown
Contributor

1 similar comment
@github-actions

Copy link
Copy Markdown
Contributor

@functionstackx functionstackx force-pushed the amd/atom_mesh_0619_m3 branch from e4f54e4 to 190b055 Compare June 21, 2026 20:46
Comment thread benchmarks/multi_node/amd_utils/server_atom.sh
Comment thread benchmarks/multi_node/amd_utils/server_atom.sh
seungrokj and others added 2 commits June 22, 2026 17:43
… disagg

- server_atom.sh: temp patch custom_all_reduce.py from Jasen/fix_custom_allreduce
  branch on all nodes before server launch
- minimaxm3_fp4_mi355x_atom-disagg.sh: unconditionally set MAX_MODEL_LEN=32768
  so CI-computed isl+osl+256 does not override the recipe default

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 90d526d. Configure here.

Comment thread benchmarks/multi_node/amd_utils/server_atom.sh Outdated
@seungrokj seungrokj added all-evals Expand eval selection to every fixed-sequence config evals-only Suppress throughput and run only eval jobs; combine with all-evals to expand selection full-sweep-enabled and removed all-evals Expand eval selection to every fixed-sequence config evals-only Suppress throughput and run only eval jobs; combine with all-evals to expand selection labels Jun 22, 2026
@github-actions

Copy link
Copy Markdown
Contributor

@seungrokj seungrokj removed the evals-only Suppress throughput and run only eval jobs; combine with all-evals to expand selection label Jun 22, 2026
@github-actions

Copy link
Copy Markdown
Contributor

seungrokj and others added 2 commits June 22, 2026 22:17
Replace curl with git init+fetch to pull a specific commit
(6af67c273d774198e9f5815dbaa93991ffc69602) from ROCm/aiter main,
using sparse-checkout to fetch only the target file.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

@seungrokj seungrokj requested a review from functionstackx June 22, 2026 15:19
@seungrokj seungrokj changed the title [DNM][AMD] Add MiniMax-M3-FP4 MI355X ATOMMESH [AMD] Add MiniMax-M3-FP4 MI355X ATOMMESH Jun 22, 2026
seungrokj and others added 3 commits June 23, 2026 08:59
- amd-master.yaml: bump minimaxm3-fp4-mi355x-atom-disagg image to
  rocm/atom-dev:vllm-v0.22.0-nightly_20260622
- server_atom.sh: remove temp custom_all_reduce.py patch (fixed in new image),
  minor comment cleanup

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

@github-actions

Copy link
Copy Markdown
Contributor

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

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

Labels

all-evals Expand eval selection to every fixed-sequence config AMD full-sweep-enabled

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

3 participants