[AMD] Add MiniMax-M3-FP4 MI355X ATOMMESH#1856
Conversation
|
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
|
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 联系核心维护者。 |
functionstackx
left a comment
There was a problem hiding this comment.
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
|
see unofficial run visualizer at https://inferencex.semianalysis.com/inference?unofficialRun=27834600324 |
1 similar comment
|
see unofficial run visualizer at https://inferencex.semianalysis.com/inference?unofficialRun=27834600324 |
|
see unofficial run visualizer at https://inferencex.semianalysis.com/inference?unofficialRun=27853077483 |
1 similar comment
|
see unofficial run visualizer at https://inferencex.semianalysis.com/inference?unofficialRun=27853077483 |
|
see unofficial run visualizer at https://inferencex.semianalysis.com/inference?unofficialRun=27853680451 |
|
see unofficial run visualizer at https://inferencex.semianalysis.com/inference?unofficialRun=27854245106 |
|
see unofficial run visualizer at https://inferencex.semianalysis.com/inference?unofficialRun=27854465067 |
|
see unofficial run visualizer at https://inferencex.semianalysis.com/inference?unofficialRun=27854622366 |
|
see unofficial run visualizer at https://inferencex.semianalysis.com/inference?unofficialRun=27857373443 |
1 similar comment
|
see unofficial run visualizer at https://inferencex.semianalysis.com/inference?unofficialRun=27857373443 |
|
see unofficial run visualizer at https://inferencex.semianalysis.com/inference?unofficialRun=27945430099 |
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>
|
see unofficial run visualizer at https://inferencex.semianalysis.com/inference?unofficialRun=27956325179 |
- 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>
|
see unofficial run visualizer at https://inferencex.semianalysis.com/inference?unofficialRun=27992408762 |
|
see unofficial run visualizer at https://inferencex.semianalysis.com/inference?unofficialRun=27992760383 |
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
see unofficial run visualizer at https://inferencex.semianalysis.com/inference?unofficialRun=27995429049 |
1 similar comment
|
see unofficial run visualizer at https://inferencex.semianalysis.com/inference?unofficialRun=27995429049 |
|
/reuse-sweep-run |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 5f0310c. Configure here.
chunfangamd
left a comment
There was a problem hiding this comment.
LGTM
Thanks for the work, @seungrokj !
|
@chunfangamd can u properly review the PR & follow the checklist? codeowners r entrusted to properly review the PR following the checklist https://github.com/SemiAnalysisAI/InferenceX/blob/main/docs/PR_REVIEW_CHECKLIST.md |

Summary
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=32768server_atom.sh: make--kv_cache_dtypeconditional (skipped when empty orauto); addMAX_MODEL_LEN,MAX_NUM_BATCHED_TOKENS,CUDAGRAPH_OPTsupport; fix"${ARRAY[@]}"broken-quote array splice inside eval'd CMD strings; extract--hf-overridesintoHF_OVERRIDES_ARG(DeepSeek-V4-Pro only); addOpt argsline to INFO blockjob.slurm: passMAX_MODEL_LEN,MAX_NUM_BATCHED_TOKENS,CUDAGRAPH_OPTthrough Docker env foratom-disaggenginebench.sh: use--dsv4flag for DeepSeek-V4-Pro MTP runs (instead of--use-chat-template)SPEC_DECODING,DECODE_MTP_SIZE,BENCH_REQUEST_RATE,IS_MTPTest plan
minimaxm3-fp4-mi355x-atom-disaggsweep launches correctly on MI355X--kv_cache_dtypeis absent from MiniMax-M3 server launch logs--kv_cache_dtype fp8is present for DSv4 server launch logsMAX_MODEL_LEN/MAX_NUM_BATCHED_TOKENSappear in server args when set🤖 Generated with Claude Code
Note
Medium Risk
Touches shared
server_atom.shlaunch and env plumbing used by all atom-disagg jobs, so regressions could affect DSv4 disagg sweeps; scope is benchmark/CI infrastructure rather than production APIs.Overview
Adds MiniMax-M3 MXFP4 multi-node prefill/decode benchmarking on MI355X via ATOM/atomesh (
minimaxm3-fp4-mi355x-atom-disaggin CI config plusminimaxm3_fp4_mi355x_atom-disagg.sh), using 1P1D TP4, native KV (KV_CACHE_DTYPE=auto), block size 128, andMAX_MODEL_LEN/MAX_NUM_BATCHED_TOKENSof 32768 with no MTP.server_atom.shis generalized for this recipe and existing DSv4 disagg runs: renamesMEM_FRACTION→MEM_FRAC_STATIC, omits--kv_cache_dtypewhen unset orauto, threads optional length/batch caps and MTP flags into launch commands, fixes broken"${ARRAY[@]}"expansion insideeval'd server CMD strings, and gates DSv4-only options (TBO, HF overrides, MoE env) vs other models (e.g.AITER_QUICK_REDUCE_QUANTIZATION=INT4for MiniMax). Slurm/docker wiring passesBENCH_REQUEST_RATE,MAX_MODEL_LEN, andMAX_NUM_BATCHED_TOKENS;env_atom.shapplies DSv4-only MoE tuning;bench.shuses--dsv4for DSv4 MTP serving benchmarks.Reviewed by Cursor Bugbot for commit 1280704. Bugbot is set up for automated code reviews on this repo. Configure here.