[AMD] Add MiniMax-M3-FP4 MI355X ATOMESH update 0623#1940
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 联系核心维护者。 |
…nd server_atom.sh refactor (PR #1940) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
see unofficial run visualizer at https://inferencex.semianalysis.com/inference?unofficialRun=28211509856 |
|
@seungrokj plz rebase this PR now that 9f02343 is merged to master such that we can avoid delay of resolving conflicts after u do an full perf sweep |
…nd server_atom.sh refactor (PR #1940) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
baaf92b to
21e9281
Compare
|
see unofficial run visualizer at https://inferencex.semianalysis.com/inference?unofficialRun=28213636410 |
|
see unofficial run visualizer at https://inferencex.semianalysis.com/inference?unofficialRun=28214515407 |
|
see unofficial run visualizer at https://inferencex.semianalysis.com/inference?unofficialRun=28214688792 |
|
see unofficial run visualizer at https://inferencex.semianalysis.com/inference?unofficialRun=28214844378 |
|
see unofficial run visualizer at https://inferencex.semianalysis.com/inference?unofficialRun=28214881569 |
|
see unofficial run visualizer at https://inferencex.semianalysis.com/inference?unofficialRun=28215040536 |
… ATOM config; add minimaxm3-fp4-mi355x-atom-disagg Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…nd server_atom.sh refactor (PR #1940) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…sagg launch script Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…, SPEC_DECODING guard - Replace fragile eval "$(python3 -c "...")" with heredoc + source tempfile to avoid nested quote escaping issues that caused MODEL_ENVS to be empty at runtime - Fix PREFILL/DECODE_ENABLE_EP comparison from numeric -gt 1 to string = "true" to match the "true"/"false" values set by launch scripts - Fix SPEC_DECODING guard from hardcoded "mtp" to any non-none/non-empty value so EAGLE3 and future methods also activate SPEC_ARGS from models_atom.yaml Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ewline in models_atom.yaml Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…niMax-M3 ATOM recipes Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ages to 20260623 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…agg image to 20260622 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
ee301d0 to
1aa7ace
Compare
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…efaults to YAML - Split MODEL_TP_DP_FLAGS and MODEL_EP_DP_FLAGS into prefill/decode variants - Move BLOCK_SIZE, MEM_FRAC_STATIC, MAX_MODEL_LEN, MAX_NUM_SEQS, MAX_NUM_BATCHED_TOKENS from launch scripts into models_atom.yaml - Add hf_overrides and online_quant_config (with DPA variant) to YAML - Remove SPEC_DECODING gate; use MODEL_MTP_FLAGS + DECODE_MTP_SIZE > 0 - Add minimaxm3-fp4/fp8-mi355x-atom-disagg-mtp recipes to amd-master.yaml Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
replaced by #2000 |
…fig (#2000) * [AMD] refactor server_atom.sh and models_atom.yaml for model-specific ATOM config; add minimaxm3-fp4-mi355x-atom-disagg Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * [AMD] add perf-changelog entry for minimaxm3-fp4-mi355x-atom-disagg and server_atom.sh refactor (PR #1940) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * [AMD] add env dump in server_atom.sh and minimaxm3-fp4-mi355x-atom-disagg launch script Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * [AMD] fix server_atom.sh YAML loading: safe source, EP string compare, SPEC_DECODING guard - Replace fragile eval "$(python3 -c "...")" with heredoc + source tempfile to avoid nested quote escaping issues that caused MODEL_ENVS to be empty at runtime - Fix PREFILL/DECODE_ENABLE_EP comparison from numeric -gt 1 to string = "true" to match the "true"/"false" values set by launch scripts - Fix SPEC_DECODING guard from hardcoded "mtp" to any non-none/non-empty value so EAGLE3 and future methods also activate SPEC_ARGS from models_atom.yaml Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * [AMD] cap minimaxm3-fp8-mi355x-atom-disagg conc to 256; fix missing newline in models_atom.yaml Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * [AMD] update amd-master.yaml: image bumps, search space tweaks for MiniMax-M3 ATOM recipes Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * [AMD] restore minimaxm3-fp4/fp8-mi355x-atom recipes; bump all ATOM images to 20260623 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * [AMD] clean up minimaxm3-fp4-mi355x-atom search space; revert fp8-disagg image to 20260622 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * [AMD] add amd-master.yaml config Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * [AMD] remove amd-master.yaml config Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * [AMD] refactor ATOM disagg config: split per-role flags, move model defaults to YAML - Split MODEL_TP_DP_FLAGS and MODEL_EP_DP_FLAGS into prefill/decode variants - Move BLOCK_SIZE, MEM_FRAC_STATIC, MAX_MODEL_LEN, MAX_NUM_SEQS, MAX_NUM_BATCHED_TOKENS from launch scripts into models_atom.yaml - Add hf_overrides and online_quant_config (with DPA variant) to YAML - Remove SPEC_DECODING gate; use MODEL_MTP_FLAGS + DECODE_MTP_SIZE > 0 - Add minimaxm3-fp4/fp8-mi355x-atom-disagg-mtp recipes to amd-master.yaml Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * [AMD] fix YAML server-tuning defaults never taking effect Shell defaults (BLOCK_SIZE=16, MEM_FRAC_STATIC=0.85) were set before YAML loading, so the YAML values (128, 0.8) were never substituted. Use three-tier fallback: env var > YAML > shell default. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * [AMD] add perf-changelog entry for MiniMax-M3 ATOM disagg refactor (PR #2000) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * [AMD] remove hf_overrides from models_atom.yaml and server_atom.sh Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * [AMD] fix server-tuning: YAML values must override job.slurm Docker defaults job.slurm injects BLOCK_SIZE=16, MEM_FRAC_STATIC=0.85, MAX_NUM_SEQS=256 as Docker env vars with hardcoded defaults. The previous env-first fallback (env > YAML > default) meant YAML values were always shadowed. Flip all five server-tuning vars to YAML > env > default so models_atom.yaml entries (e.g. block_size=128 for MiniMax-M3-MXFP4) actually take effect. Also add set -x before YAML parsing for CI debuggability. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * [AMD] fix MiniMax-M3 ATOM disagg: TBO prefill flag, cudagraph step-8, add spec-decoding keys - models_atom.yaml: change MiniMax-M3-MXFP4 prefill_tp_dp_flags from "--enable-tbo" to "--enable-tbo prefill" to match Slurm reference - server_atom.sh: switch decode cudagraph-capture-sizes from step-4 (65 entries) to step-8 (33 entries) to match Slurm reference - amd-master.yaml: add missing spec-decoding: "mtp" to all MiniMax M3 fp8/fp4 atom-disagg-mtp search-space entries Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * [AMD] raise ulimit, drop MTP recipes, fix changelog for MiniMax-M3 ATOM disagg - Raise file descriptor limit (ulimit -n 65536) in server_atom.sh to prevent lm-eval "Too many open files" crashes with high num_concurrent - Remove minimaxm3-fp4/fp8-mi355x-atom-disagg-mtp recipes from master config - Update perf-changelog to reflect removed MTP entries Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> Co-authored-by: Chun Fang <chun.fang@amd.com>
Summary
minimaxm3-fp4-mi355x-atom-disaggCI recipe: multi-node disaggregated PD on MI355X via ATOM for MiniMax-M3-MXFP4server_atom.shto eliminate all hardcodedMODEL_NAME == "DeepSeek-V4-Pro"/ per-model checks — all model-specific config (env vars, parallel flags, MTP flags, KV cache flags, HF overrides) now driven frommodels_atom.yaml, matching theserver_vllm.shpatternmodels_atom.yamlschema with new fields forenv,tp_dp_flags,tp_dp_env,ep_dp_flags,ep_dp_env,mtp_flags,kv_cache_flags,hf_overrides; add entries forMiniMax-M3-MXFP4andMiniMax-M3-MXFP8with EAGLE3 MTP flagsamd/MiniMax-M3-MXFP8→MiniMaxAI/MiniMax-M3-MXFP8inminimaxm3-fp8-mi355x-atom-disaggrocm/atom-dev:MiniMax-M3-20260623Fields added to
models_atom.yamlenvKEY=VALUEpairs exported unconditionallytp_dp_flagstp_dp_envep_dp_flagsep_dp_envmtp_flagsSPEC_ARGSbefore$DECODE_MTP_SIZEkv_cache_flags--kv_cache_dtypeflag stringhf_overrides--hf-overridesminimaxm3-fp4-mi355x-atom-disaggRecipe Detailsrocm/atom-dev:MiniMax-M3-20260623amd/MiniMax-M3-MXFP4atom-disagg, multi-node disaggregated PDPR Review Checklist
🤖 Generated with Claude Code