From 027f08a9ded3847d41e21405f235598450ce248b Mon Sep 17 00:00:00 2001 From: seungrokj Date: Wed, 1 Jul 2026 11:08:40 +0900 Subject: [PATCH 1/3] [AMD] Update MiniMax-M3 FP4 MI355X ATOM image and serving args MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Bump image rocm/atom-dev:MiniMax-M3-20260623 → MiniMax-M3-20260630 - Add OPT_ARGS: --online_quant_config (ptpc_fp8, exclude non-MoE layers) and --hf-overrides (use_index_cache, index_topk_freq=4) - Replace AITER_QUICK_REDUCE_CAST_BF16_TO_FP16=0 + ATOM_M3_SPARSE_USE_ASM_PA=1 with ATOM_FORCE_ATTN_TRITON=1 - Apply to both STP (atom.sh) and MTP/EAGLE3 (atom_mtp.sh) scripts Co-Authored-By: Claude Sonnet 4.6 --- .github/configs/amd-master.yaml | 4 ++-- .../fixed_seq_len/minimaxm3_fp4_mi355x_atom.sh | 5 +++-- .../fixed_seq_len/minimaxm3_fp4_mi355x_atom_mtp.sh | 5 +++-- perf-changelog.yaml | 9 +++++++++ 4 files changed, 17 insertions(+), 6 deletions(-) diff --git a/.github/configs/amd-master.yaml b/.github/configs/amd-master.yaml index a437f4ecd..285677442 100644 --- a/.github/configs/amd-master.yaml +++ b/.github/configs/amd-master.yaml @@ -2695,7 +2695,7 @@ minimaxm3-fp4-mi355x-vllm-mtp: # https://github.com/ROCm/ATOM/blob/5d42d49f9e4292e5b61475917e92e7ec1b1dacb7/recipes/MiniMax-M3.md # block size 128 is mandatory for MSA. TP4 on a single gfx950 node, per the recipe. minimaxm3-fp4-mi355x-atom: - image: rocm/atom-dev:MiniMax-M3-20260623 + image: rocm/atom-dev:MiniMax-M3-20260630 model: amd/MiniMax-M3-MXFP4 model-prefix: minimaxm3 runner: mi355x @@ -2714,7 +2714,7 @@ minimaxm3-fp4-mi355x-atom: - { tp: 4, conc-start: 1, conc-end: 256 } minimaxm3-fp4-mi355x-atom-mtp: - image: rocm/atom-dev:MiniMax-M3-20260623 + image: rocm/atom-dev:MiniMax-M3-20260630 model: amd/MiniMax-M3-MXFP4 model-prefix: minimaxm3 runner: mi355x diff --git a/benchmarks/single_node/fixed_seq_len/minimaxm3_fp4_mi355x_atom.sh b/benchmarks/single_node/fixed_seq_len/minimaxm3_fp4_mi355x_atom.sh index a0907f18c..3cfce7937 100644 --- a/benchmarks/single_node/fixed_seq_len/minimaxm3_fp4_mi355x_atom.sh +++ b/benchmarks/single_node/fixed_seq_len/minimaxm3_fp4_mi355x_atom.sh @@ -31,6 +31,7 @@ if [ "$DP_ATTENTION" = "true" ]; then fi SPEC_ARGS=() +OPT_ARGS=(--online_quant_config '{"global_quant_config": "ptpc_fp8", "exclude_layer": ["lm_head", "model.embed_tokens", "vision_tower", "multi_modal_projector", "patch_merge_mlp", "*block_sparse_moe"]}' --hf-overrides '{"use_index_cache": true, "index_topk_freq": 4}') # Start GPU monitoring (power, temperature, clocks every second) start_gpu_monitor @@ -38,8 +39,7 @@ MEM_FRAC_STATIC=0.8 set -x export AITER_QUICK_REDUCE_QUANTIZATION=INT4 -export AITER_QUICK_REDUCE_CAST_BF16_TO_FP16=0 -export ATOM_M3_SPARSE_USE_ASM_PA=1 +export ATOM_FORCE_ATTN_TRITON=1 export MAX_MODEL_LEN=32768 export MAX_NUM_BATCHED_TOKENS=32768 export MAX_NUM_SEQS=256 @@ -48,6 +48,7 @@ python3 -m atom.entrypoints.openai_server \ --server-port $PORT \ "${PARALLEL_ARGS[@]}" \ "${SPEC_ARGS[@]}" \ + "${OPT_ARGS[@]}" \ --block-size 128 \ --gpu-memory-utilization $MEM_FRAC_STATIC \ --max-model-len $MAX_MODEL_LEN \ diff --git a/benchmarks/single_node/fixed_seq_len/minimaxm3_fp4_mi355x_atom_mtp.sh b/benchmarks/single_node/fixed_seq_len/minimaxm3_fp4_mi355x_atom_mtp.sh index fe71c47a0..47de985be 100644 --- a/benchmarks/single_node/fixed_seq_len/minimaxm3_fp4_mi355x_atom_mtp.sh +++ b/benchmarks/single_node/fixed_seq_len/minimaxm3_fp4_mi355x_atom_mtp.sh @@ -31,6 +31,7 @@ if [ "$DP_ATTENTION" = "true" ]; then fi SPEC_ARGS=(--method eagle3 --draft-model Inferact/MiniMax-M3-EAGLE3 --num-speculative-tokens 3 ) +OPT_ARGS=(--online_quant_config '{"global_quant_config": "ptpc_fp8", "exclude_layer": ["lm_head", "model.embed_tokens", "vision_tower", "multi_modal_projector", "patch_merge_mlp", "*block_sparse_moe"]}' --hf-overrides '{"use_index_cache": true, "index_topk_freq": 4}') # Start GPU monitoring (power, temperature, clocks every second) start_gpu_monitor @@ -38,8 +39,7 @@ MEM_FRAC_STATIC=0.8 set -x export AITER_QUICK_REDUCE_QUANTIZATION=INT4 -export AITER_QUICK_REDUCE_CAST_BF16_TO_FP16=0 -export ATOM_M3_SPARSE_USE_ASM_PA=1 +export ATOM_FORCE_ATTN_TRITON=1 export MAX_MODEL_LEN=32768 export MAX_NUM_BATCHED_TOKENS=32768 export MAX_NUM_SEQS=256 @@ -48,6 +48,7 @@ python3 -m atom.entrypoints.openai_server \ --server-port $PORT \ "${PARALLEL_ARGS[@]}" \ "${SPEC_ARGS[@]}" \ + "${OPT_ARGS[@]}" \ --block-size 128 \ --gpu-memory-utilization $MEM_FRAC_STATIC \ --max-model-len $MAX_MODEL_LEN \ diff --git a/perf-changelog.yaml b/perf-changelog.yaml index b776a5d1d..b1882857e 100644 --- a/perf-changelog.yaml +++ b/perf-changelog.yaml @@ -4351,3 +4351,12 @@ - "Use nvidia/MiniMax-M3-NVFP4 from /scratch/models/MiniMax-M3-NVFP4 with vllm/vllm-openai:vllm-minimax-m3-perf-x86_64-13.0.1-8b00f41, which includes vllm-project/vllm PR #46380; no runtime patch needed" - "Reuse the existing MXFP8 B300 topology and concurrency matrix across 15 srt-slurm recipes, while dropping the FP8-only Marlin override from TP4 decode" pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/1966 + +- config-keys: + - minimaxm3-fp4-mi355x-atom + - minimaxm3-fp4-mi355x-atom-mtp + description: + - "Bump image to rocm/atom-dev:MiniMax-M3-20260630 for both fp4 atom entries" + - "Add OPT_ARGS: pass --online_quant_config '{\"global_quant_config\": \"ptpc_fp8\", \"exclude_layer\": [\"lm_head\", \"model.embed_tokens\", \"vision_tower\", \"multi_modal_projector\", \"patch_merge_mlp\", \"*block_sparse_moe\"]}' and --hf-overrides '{\"use_index_cache\": true, \"index_topk_freq\": 4}' to both scripts" + - "Replace AITER_QUICK_REDUCE_CAST_BF16_TO_FP16=0 and ATOM_M3_SPARSE_USE_ASM_PA=1 with ATOM_FORCE_ATTN_TRITON=1" + pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/PLACEHOLDER From 064cba8729574ff0b05fb442cc5e7bace6c9e905 Mon Sep 17 00:00:00 2001 From: seungrokj Date: Wed, 1 Jul 2026 11:09:30 +0900 Subject: [PATCH 2/3] perf-changelog: update PR link for #1967 Co-Authored-By: Claude Sonnet 4.6 --- perf-changelog.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/perf-changelog.yaml b/perf-changelog.yaml index b1882857e..66a2df067 100644 --- a/perf-changelog.yaml +++ b/perf-changelog.yaml @@ -4359,4 +4359,4 @@ - "Bump image to rocm/atom-dev:MiniMax-M3-20260630 for both fp4 atom entries" - "Add OPT_ARGS: pass --online_quant_config '{\"global_quant_config\": \"ptpc_fp8\", \"exclude_layer\": [\"lm_head\", \"model.embed_tokens\", \"vision_tower\", \"multi_modal_projector\", \"patch_merge_mlp\", \"*block_sparse_moe\"]}' and --hf-overrides '{\"use_index_cache\": true, \"index_topk_freq\": 4}' to both scripts" - "Replace AITER_QUICK_REDUCE_CAST_BF16_TO_FP16=0 and ATOM_M3_SPARSE_USE_ASM_PA=1 with ATOM_FORCE_ATTN_TRITON=1" - pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/PLACEHOLDER + pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/1967 From 009b63dcf07b650afc5c87a2a2a89044148da1d0 Mon Sep 17 00:00:00 2001 From: Bryan Shan <58582368+Oseltamivir@users.noreply.github.com> Date: Wed, 1 Jul 2026 07:01:38 -0700 Subject: [PATCH 3/3] cleanup perfchangelog --- perf-changelog.yaml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/perf-changelog.yaml b/perf-changelog.yaml index 9c9edb8f7..06586a614 100644 --- a/perf-changelog.yaml +++ b/perf-changelog.yaml @@ -4353,7 +4353,6 @@ pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/1966 - config-keys: -<<<<<<< amd/m3_atom_pd_fp4_0630 - minimaxm3-fp4-mi355x-atom - minimaxm3-fp4-mi355x-atom-mtp description: @@ -4361,7 +4360,8 @@ - "Add OPT_ARGS: pass --online_quant_config '{\"global_quant_config\": \"ptpc_fp8\", \"exclude_layer\": [\"lm_head\", \"model.embed_tokens\", \"vision_tower\", \"multi_modal_projector\", \"patch_merge_mlp\", \"*block_sparse_moe\"]}' and --hf-overrides '{\"use_index_cache\": true, \"index_topk_freq\": 4}' to both scripts" - "Replace AITER_QUICK_REDUCE_CAST_BF16_TO_FP16=0 and ATOM_M3_SPARSE_USE_ASM_PA=1 with ATOM_FORCE_ATTN_TRITON=1" pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/1967 -======= + +- config-keys: - minimaxm3-fp8-mi355x-atom - minimaxm3-fp8-mi355x-atom-mtp description: @@ -4369,4 +4369,3 @@ - "Add OPT_ARGS: pass --online_quant_config '{\"global_quant_config\": \"ptpc_fp8\", \"exclude_layer\": [\"lm_head\", \"model.embed_tokens\", \"vision_tower\", \"multi_modal_projector\", \"patch_merge_mlp\", \"*block_sparse_moe\"]}' and --hf-overrides '{\"use_index_cache\": true, \"index_topk_freq\": 4}' to both scripts" - "Replace AITER_QUICK_REDUCE_CAST_BF16_TO_FP16=0 and ATOM_M3_SPARSE_USE_ASM_PA=1 with ATOM_FORCE_ATTN_TRITON=1" pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/1968 ->>>>>>> main