[AMD] Add MiniMax-M3-FP8 MI355X ATOM EAGLE3 only#1867
Conversation
… benchmark scripts and CI configs Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
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 联系核心维护者。 |
…tom-mtp Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…atom scripts Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
see unofficial run visualizer at https://inferencex.semianalysis.com/inference?unofficialRun=27860917145 |
…-atom-mtp Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…m-mtp Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
see unofficial run visualizer at https://inferencex.semianalysis.com/inference?unofficialRun=27862137852 |
…-only configs 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=27862752989 |
|
see unofficial run visualizer at https://inferencex.semianalysis.com/inference?unofficialRun=27862873087 |
|
/merge-prs |
/merge-prs isnt an github comment fyi, it is an claude code command u type into claude code CLI https://code.claude.com/docs/en/commands @seungrokj |
…-20260622 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
see unofficial run visualizer at https://inferencex.semianalysis.com/inference?unofficialRun=27996766982 |
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
see unofficial run visualizer at https://inferencex.semianalysis.com/inference?unofficialRun=27999248579 |
- Add AITER_QUICK_REDUCE_QUANTIZATION=INT4, MAX_MODEL_LEN=32768, MAX_NUM_BATCHED_TOKENS=32768, MAX_NUM_SEQS=128 - Pass --max-model-len, --max-num-batched-tokens, --max-num-seqs to server - Conditional --use-chat-template based on SPEC_ARGS - Add trailing newline Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
see unofficial run visualizer at https://inferencex.semianalysis.com/inference?unofficialRun=28000404764 |
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
see unofficial run visualizer at https://inferencex.semianalysis.com/inference?unofficialRun=28004827939 |
1 similar comment
|
see unofficial run visualizer at https://inferencex.semianalysis.com/inference?unofficialRun=28004827939 |
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…log entry Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
see unofficial run visualizer at https://inferencex.semianalysis.com/inference?unofficialRun=28011998988 |
| "${SPEC_ARGS[@]}" \ | ||
| --block-size 128 \ | ||
| --gpu-memory-utilization $MEM_FRAC_STATIC \ | ||
| --max-model-len $MAX_MODEL_LEN \ |
There was a problem hiding this comment.
Hardcoded max model length
High Severity
The benchmark script sets MAX_MODEL_LEN to 32768 and passes it to the atom server, overwriting the matrix value (isl + osl + 256, e.g. 9472 for 8k/1k). Sibling atom recipes use the supplied scenario length. Extra KV reservation can prevent the server from starting or waste GPU time under high concurrency with EAGLE3.
Reviewed by Cursor Bugbot for commit 0d1ed51. Configure here.
|
see unofficial run visualizer at https://inferencex.semianalysis.com/inference?unofficialRun=28012203541 |
|
/reuse-sweep-run |
chunfangamd
left a comment
There was a problem hiding this comment.
[x] Verified that the general code quality meets the InferenceX standard and does not make the code quality any worse.
[x] Verified that this PR has passed PR validation.
[x] Verified that this PR passes evals.
[x] Verified that speculative decoding PRs uses chat templates to align the AL distribution to real world
[x] minimaxm3-fp8-mi355x-vllm-mtp already merged into the InferenceX repo
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
There are 2 total unresolved issues (including 1 from previous review).
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 3ac8eeb. Configure here.
| - { tp: 8, conc-start: 1, conc-end: 2 } | ||
|
|
||
| minimaxm3-fp8-mi355x-atom-mtp: | ||
| image: rocm/atom-dev:MiniMax-M3-20260622 |
There was a problem hiding this comment.
Container image tag mismatch
Medium Severity
The new minimaxm3-fp8-mi355x-atom-mtp entry pins rocm/atom-dev:MiniMax-M3-20260622, while the perf-changelog line added in the same change documents MiniMax-M3-20260619. CI pulls the yaml image tag, so one of these is wrong and can fail the job or run an unintended build.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit 3ac8eeb. Configure here.


Summary
minimaxm3-fp8-mi355x-atomCI recipe: single-node ATOM benchmark for MiniMax-M3-MXFP8 on MI355Xminimaxm3-fp8-mi355x-atom-mtpCI recipe: same with EAGLE3 speculative decoding (3 draft tokens)rocm/atom-dev:MiniMax-M3-20260619image, search space mirrors the FP4 atom variants (ISL=1024,8192 OSL=1024 TP2/TP4/TP8)Test plan
mi355xrunner for both configs🤖 Generated with Claude Code
Note
Low Risk
Benchmark and CI config only; no changes to auth, data paths, or production serving logic.
Overview
Adds
minimaxm3-fp8-mi355x-atom-mtpto AMD CI so MiniMax-M3 MXFP8 on MI355X can be swept under ATOM with EAGLE3 (spec-decoding: mtp, 3 draft tokens). The recipe pinsrocm/atom-dev:MiniMax-M3-20260622,MiniMaxAI/MiniMax-M3-MXFP8, fixed-seq-len at ISL 1024/8192 and OSL 1024, and TP4 concurrency 1–256.Introduces
benchmarks/single_node/fixed_seq_len/minimaxm3_fp8_mi355x_atom_mtp.sh, which startsatom.entrypoints.openai_serverwith EAGLE3 (Inferact/MiniMax-M3-EAGLE3), block size 128, and the usual serving limits, then runs the standard throughput benchmark (optional lm-eval whenRUN_EVAL=true).Documents the new config key in
perf-changelog.yaml.Reviewed by Cursor Bugbot for commit 3ac8eeb. Bugbot is set up for automated code reviews on this repo. Configure here.