Add MiniMax-M3 Nightly Perf & Accuracy Regression Testing on MI355X with EAGLE3 spec decode#25
Open
functionstackx wants to merge 2 commits into
Open
Conversation
77271b9 to
1998371
Compare
3bfe3e3 to
f425adf
Compare
8 tasks
Adds workloads/minimax_m3_mi355x.yaml: MiniMax-M3-MXFP8 on MI355X (CDNA4), TP=8 (no expert parallelism), EAGLE3 speculative decode (drafter Inferact/MiniMax-M3-EAGLE3, 3 speculative tokens), env VLLM_USE_BREAKABLE_CUDAGRAPH=0. gsm8k as the spec-decode correctness gate; vllm_bench 8k-in/1k-out at conc-128 (MI355X-family baseline). KV cache left at default (bf16): MiniMax-M3-MXFP8 ships no calibrated KV scales, so --kv-cache-dtype fp8 silently corrupts output (vllm-project/vllm#45562). nightly: true, but blocked on vllm-project/vllm#45381 (M3 support, which carries the ROCm/AMD EAGLE3 enablement #45546) landing on main; it will fail at server bring-up until then. AI-assisted (Claude Code). Co-Authored-By: Claude <noreply@anthropic.com> Signed-off-by: functionstackx <47992694+functionstackx@users.noreply.github.com>
f425adf to
81e92d5
Compare
Author
|
chatted with kevin and got buidlkite perms to test this PR on buildkite before merging it |
With EAGLE3 spec decode on this backend, the default KV-manager block size (16) has no compatible attention-kernel block size, so server bring-up dies in select_common_block_size with "No common block size for 16." Pin --block-size 128, which every kernel in the spec-decode path supports. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds
workloads/minimax_m3_mi355x.yaml— a new recipe running MiniMax-M3-MXFP8 on MI355X (CDNA4) with EAGLE3 speculative decode.+viz @hongxiayang @andyluo7 @chunfangamd @micah-wil
Serving config
MiniMaxAI/MiniMax-M3-MXFP8(MXFP8 runs natively on CDNA4 — OCP fp8 + MX matrix cores),num_gpus: 8.--tensor-parallel-size 8, no expert parallelism (EP's all-to-all overhead hurts the low-latency decode path that speculation targets).--max-model-len— uses the model default, consistent with the other MI355X recipes.minimax_m3tool-call + reasoning parsers with--enable-auto-tool-choice,--trust-remote-code.VLLM_USE_BREAKABLE_CUDAGRAPH=0per @hongxiayang MiniMax-M3: set VLLM_USE_BREAKABLE_CUDAGRAPH=0 on AMD MI300X/MI325X/MI355X recipes#539EAGLE3 speculative decode
--speculative-config.method eagle3, drafter--speculative-config.model Inferact/MiniMax-M3-EAGLE3,--speculative-config.num_speculative_tokens 3.Evals
lm_evalgsm8k (5-shot) as the spec-decode correctness gate: speculative decoding is output-equivalent to non-spec greedy, so the score must match the no-spec MiniMax-M3 baseline.vllm_bench— a single8k-in/1k-outconfig at conc-128 (MI355X-family baseline) for the decode-throughput uplift, usingrandom+backend: openai(notspeed_benchper Switch vllm_bench from speed_bench to random + ignore_eos #20).⛔ Blocked — draft / do not merge yet
nightly: true(runs in the nightly schedule), but this is blocked on vllm-project/vllm#45381 (MiniMax-M3 support) landing onmain, which carries the ROCm/AMD EAGLE3 enablement (#45546). Until that merges, thevllm-openai-rocmimage cannot serve M3 + AMD EAGLE3, so the nightly run will fail at server bring-up until #45381 is on main (red nights are expected). Kept as a GitHub draft until it goes green.Green checklist
main(includes [Bug Fix] [MiniMax-M3] Implement EAGLE3 support on the AMD MiniMax M3 vllm#45546 ROCm EAGLE3)Notes
MiniMax-M3-MXFP8ships no calibrated KV scales, so--kv-cache-dtype fp8silently falls back to scale 1.0 and corrupts output ([Bug]: ROCm MI300X FP8 KV cache MiniMax-M3-MXFP8 accuracy issues vllm#45562). Don't enable fp8 KV here without a calibrated checkpoint or a self-calibrating dtype.random+openai, notspeed_bench.speed_benchrequires--skip-tokenizer-init, which caps every request at 1 output token so throughput reads ~0; this recipe follows Switch vllm_bench from speed_bench to random + ignore_eos #20 (and drops the now-vestigialspeed_bench_*fields the other MI355X recipes still carry).workloads/*.yaml.Validation
CLAUDE.md, stubbedlm_evalregistry) passes: name/image/model/serve_args/env and thelm_eval+vllm_benchTSVs all resolve correctly. Device=mi355x, TP=8, precision=fp8.AI assistance
This PR was authored with assistance from Claude Code (AI-assisted). The commit carries a
Co-Authored-By: Claudetrailer.