Skip to content

[CI][ROCm][ATOMesh] Add MiniMax-M3-FP8 2P1D TP8 to ATOMesh catalog - #1

Closed
avininjamay8 wants to merge 3 commits into
mainfrom
minimax-m3-fp8-2p1d-tp8-catalog
Closed

avininjamay8 wants to merge 3 commits into
mainfrom
minimax-m3-fp8-2p1d-tp8-catalog

Conversation

@avininjamay8

@avininjamay8 avininjamay8 commented Sep 17, 2026 •

Copy link
Copy Markdown
Owner

Purpose

Add MiniMax-M3-MXFP8 to the ATOMesh disaggregated CI model catalog for 2P+1D TP8 and 2P+1D DPA TP8 Mooncake PD runs.

Changes

  • .github/benchmark/models_atomesh.yaml — add minimax-m3-fp8-2p1d-tp8 and minimax-m3-fp8-2p1d-dpa-tp8 nightly entries (2P+1D TP8; DPA/TBO on prefill for DPA case; GSM8K run_eval: true, eval_concurrency: [128, 768])
  • .github/workflows/atomesh-benchmark.yaml — add both case names to manual dispatch MiniMax list

Test Plan

ATOMesh 2P+1D, Mooncake KV, rocm/atom-dev:latest.

MiniMax-M3-MXFP8 — 2P+1D TP8

export AITER_QUICK_REDUCE_QUANTIZATION=INT4
export ATOM_FORCE_ATTN_TRITON=1

# PREFILL — TP8 (each of 2 prefill nodes)
python3 -m atom.entrypoints.openai_server \
    --model ${ATOMESH_MODEL_ROOT}/MiniMax-M3-MXFP8 \
    --host 0.0.0.0 --server-port 8010 \
    --trust-remote-code \
    --tensor-parallel-size 8 \
    --kv_cache_dtype fp8 \
    --block-size 128 \
    --gpu-memory-utilization 0.8 \
    --max-model-len 32768 \
    --max-num-seqs 256 \
    --max-num-batched-tokens 32768 \
    --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"]}' \
    --kv-transfer-config '{"kv_role":"kv_producer","kv_connector":"mooncake","handshake_port":6301}' \
    --no-enable_prefix_caching \
    --hf-overrides '{"use_index_cache": true, "index_topk_freq": 4}'

# DECODE — TP8
python3 -m atom.entrypoints.openai_server \
    --model ${ATOMESH_MODEL_ROOT}/MiniMax-M3-MXFP8 \
    --host 0.0.0.0 --server-port 8020 \
    --trust-remote-code \
    --tensor-parallel-size 8 \
    --kv_cache_dtype fp8 \
    --block-size 128 \
    --gpu-memory-utilization 0.8 \
    --max-model-len 32768 \
    --max-num-seqs 1024 \
    --max-num-batched-tokens 32768 \
    --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"]}' \
    --kv-transfer-config '{"kv_role":"kv_consumer","kv_connector":"mooncake","handshake_port":6301}' \
    --no-enable_prefix_caching \
    --hf-overrides '{"use_index_cache": true, "index_topk_freq": 4}'
# ROUTER
atomesh launch \
    --host 0.0.0.0 --port 8000 \
    --pd-disaggregation \
    --prefill "http://${PREFILL_IP_1}:8010" \
    --prefill "http://${PREFILL_IP_2}:8010" \
    --decode  "http://${DECODE_IP}:8020" \
    --policy random \
    --backend atom \
    --log-level info \
    --disable-circuit-breaker \
    --prometheus-port 29100

MiniMax-M3-MXFP8 — 2P+1D DPA TP8

Same as above, plus on prefill: --enable-dp-attention --enable-tbo prefill; on decode: --enable-dp-attention; and DPA MXFP8 online_quant_config exclude list (*.gate.*, *.block_sparse_moe.experts*) on both roles.

GSM8K evaluation

lm_eval --model local-chat-completions \
    --tasks gsm8k \
    --model_args "model=${ATOMESH_MODEL_ROOT}/MiniMax-M3-MXFP8,base_url=http://127.0.0.1:8000/v1/chat/completions,num_concurrent=128,max_retries=3,max_gen_toks=16384" \
    --num_fewshot 5 \
    --batch_size 65 \
    --apply_chat_template \
    --fewshot_as_multiturn

Report exact_match,flexible-extract.

Test Result

Spur MI350X ATOMesh nightly cells, rocm/atom-dev:latest, GSM8K flexible-extract @ num_concurrent=128.

Model / config GSM8K exact_match
MiniMax-M3-MXFP8 2P+1D TP8 0.951
MiniMax-M3-MXFP8 2P+1D DPA TP8 0.949

@github-actions

Copy link
Copy Markdown

🏷️ CI Guide

Runs automatically on every eligible PR before approval:

  • ✅ Pre Checkin: Black, Ruff, catalog schema validation, non-GPU unit tests

Heavy model tests:

  • ✅ Run after the PR is approved and Pre Checkin passes
  • ✅ Run immediately when an approval review is submitted
  • ✅ Can be requested before approval with labels
Label Tests
ci:full Run all heavy PR model tests: native ATOM, vLLM, and SGLang
ci:atom Run native ATOM model accuracy tests
ci:vllm Run ATOM vLLM OOT model accuracy tests
ci:sglang Run ATOM SGLang model accuracy tests

Heavy jobs are skipped when the PR is not approved and no matching ci:* label is present.
Add labels via the sidebar or gh pr edit 1 --add-label <label>

Add minimax-m3-fp8-2p1d-tp8 and minimax-m3-fp8-2p1d-dpa-tp8 to models_atomesh.yaml and workflow dispatch.
@avininjamay8
avininjamay8 force-pushed the minimax-m3-fp8-2p1d-tp8-catalog branch from 9d080bb to a431117 Compare September 17, 2026 10:56
avininjamay8 and others added 2 commits September 17, 2026 10:59
Inherit service minimax_decode_cudagraph_256 on decode like 2p1d-dpa-tp4; list both TP8 cases on workflow MiniMax fp8 line.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant