Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -31,15 +31,15 @@ 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"]}')

# Start GPU monitoring (power, temperature, clocks every second)
start_gpu_monitor
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
Expand All @@ -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 \
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,15 +31,15 @@ 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"]}')

# Start GPU monitoring (power, temperature, clocks every second)
start_gpu_monitor
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
Expand All @@ -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 \
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,15 +31,15 @@ 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"]}')

# Start GPU monitoring (power, temperature, clocks every second)
start_gpu_monitor
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
Expand All @@ -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 \
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,15 +31,15 @@ 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"]}')

# Start GPU monitoring (power, temperature, clocks every second)
start_gpu_monitor
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
Expand All @@ -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 \
Expand Down
8 changes: 4 additions & 4 deletions configs/amd-master.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2645,7 +2645,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:nightly_202607011530

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🔴 This PR bumps the ATOM image, swaps env vars, and adds a new --online_quant_config flag across all four minimaxm3-*-mi355x-atom recipes, but does not append a perf-changelog.yaml entry. AGENTS.md's "Updating Docker images" section (line 126) explicitly states an entry is required — triggers benchmarks, and without it the four sweeps listed in this PR's own test-plan checklist will not run automatically in CI. Please append a changelog block listing the four affected config-keys (minimaxm3-fp4-mi355x-atom, minimaxm3-fp4-mi355x-atom-mtp, minimaxm3-fp8-mi355x-atom, minimaxm3-fp8-mi355x-atom-mtp), mirroring the pattern used in PRs #1978 and #1990 at the tail of the file.

Extended reasoning...

What is missing. The PR touches five files (configs/amd-master.yaml and the four benchmarks/single_node/fixed_seq_len/minimaxm3_*_mi355x_atom*.sh scripts) but does not modify perf-changelog.yaml. The changes made across those five files are exactly the kind that AGENTS.md flags as changelog-triggering:

  1. Image tag bump on all four ATOM recipes: rocm/atom-dev:MiniMax-M3-20260623rocm/atom-dev:nightly_202607011530 (configs/amd-master.yaml:2648, 2667, 2686, 2705).
  2. Env var swap in all four .sh scripts: removes AITER_QUICK_REDUCE_CAST_BF16_TO_FP16=0 and ATOM_M3_SPARSE_USE_ASM_PA=1, adds ATOM_FORCE_ATTN_TRITON=1.
  3. New serving flag in all four .sh scripts: adds --online_quant_config (ptpc_fp8 with MoE exclusion list) via the new OPT_ARGS array.

Why this is required, not optional. AGENTS.md is unambiguous. Line 15: perf-changelog.yaml - benchmark trigger log; append-only. Line 58: Changes to perf-changelog.yaml trigger benchmark runs. And lines 124–126 (§ Updating Docker images): Update the image tag in the relevant configs/*-master.yaml and/or benchmarks/*.sh, update any related env vars / config params, and append a perf-changelog.yaml entry (required - triggers benchmarks).

Concrete consequence for this PR. The PR test-plan lists four sweeps that must be validated before merge: minimaxm3-fp4-mi355x-atom, minimaxm3-fp4-mi355x-atom-mtp, minimaxm3-fp8-mi355x-atom, minimaxm3-fp8-mi355x-atom-mtp. Because perf-changelog.yaml is the mechanism that tells the sweep runner which configs to benchmark for this PR, and no entry was added, none of those four sweeps will fire automatically. The PR ships an image + env/flag change that has never been validated in this repo's CI.

Step-by-step proof.

  1. Look at PR [AMD] MiniMax-M3 FP4/FP8 MI355X ATOM: refactor config & add MTP recipes #2001's changed-file list (in the PR metadata): 5 files, none of which is perf-changelog.yaml.
  2. Look at AGENTS.md:124–126 — the exact scenario in this PR (image tag bump + env var swap + new server flag on ATOM recipes in configs/amd-master.yaml and benchmarks/single_node/fixed_seq_len/*.sh) is what that section describes.
  3. Look at the tail of perf-changelog.yaml at HEAD: PR Update Minimax M3 FP4 vllm #1978 (minimaxm3-fp4-b200-vllm image bump) and [NV] perf: update MiniMax-M3 FP4 B300 vLLM #1990 (minimaxm3-fp4-b300-vllm image bump) each appended a block with config-keys, a description, and a pr-link. This is the pattern to follow.
  4. Because no entry was appended for PR [AMD] MiniMax-M3 FP4/FP8 MI355X ATOM: refactor config & add MTP recipes #2001, the sweep-selection filter (which reads perf-changelog.yaml chronologically to determine which config-keys this PR modified) sees zero new keys and skips all four MiniMax-M3 ATOM sweeps.

How to fix. Append a block to the end of perf-changelog.yaml (preserving its append-only whitespace convention — see AGENTS.md:150) along the lines of:

- config-keys:
    - minimaxm3-fp4-mi355x-atom
    - minimaxm3-fp4-mi355x-atom-mtp
    - minimaxm3-fp8-mi355x-atom
    - minimaxm3-fp8-mi355x-atom-mtp
  description:
    - "Bump ATOM image to rocm/atom-dev:nightly_202607011530 for all four MiniMax-M3 single-node MI355X ATOM recipes."
    - "Replace AITER_QUICK_REDUCE_CAST_BF16_TO_FP16=0 and ATOM_M3_SPARSE_USE_ASM_PA=1 env vars with ATOM_FORCE_ATTN_TRITON=1."
    - "Add --online_quant_config (ptpc_fp8, with MoE layer exclusions) to all four serving scripts."
  pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/2001

That single append unblocks the four sweeps in the PR's own test plan.

model: amd/MiniMax-M3-MXFP4
model-prefix: minimaxm3
runner: mi355x
Expand All @@ -2664,7 +2664,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:nightly_202607011530
model: amd/MiniMax-M3-MXFP4
model-prefix: minimaxm3
runner: mi355x
Expand All @@ -2683,7 +2683,7 @@ minimaxm3-fp4-mi355x-atom-mtp:
- { tp: 4, conc-start: 1, conc-end: 256, spec-decoding: mtp }

minimaxm3-fp8-mi355x-atom:
image: rocm/atom-dev:MiniMax-M3-20260623
image: rocm/atom-dev:nightly_202607011530
model: MiniMaxAI/MiniMax-M3-MXFP8
model-prefix: minimaxm3
runner: mi355x
Expand All @@ -2702,7 +2702,7 @@ minimaxm3-fp8-mi355x-atom:
- { tp: 4, conc-start: 1, conc-end: 256 }

minimaxm3-fp8-mi355x-atom-mtp:
image: rocm/atom-dev:MiniMax-M3-20260623
image: rocm/atom-dev:nightly_202607011530
model: MiniMaxAI/MiniMax-M3-MXFP8
model-prefix: minimaxm3
runner: mi355x
Expand Down
11 changes: 11 additions & 0 deletions perf-changelog.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4422,3 +4422,14 @@
- "Update Minimax M3 b200 vllm image tag"
- "Update search space to cover more configs"
pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/1978

- config-keys:
- minimaxm3-fp4-mi355x-atom
- minimaxm3-fp4-mi355x-atom-mtp
- minimaxm3-fp8-mi355x-atom
- minimaxm3-fp8-mi355x-atom-mtp
description:
- "Bump ATOM image from rocm/atom-dev:MiniMax-M3-20260623 to rocm/atom-dev:nightly_202607011530 for all single-node MiniMax-M3 ATOM recipes."
- "Add --online_quant_config with ptpc_fp8 and MoE layer exclusions (*block_sparse_moe) to all scripts."
- "Replace deprecated 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/2001