Skip to content

[AMD] MiniMax-M3 MXFP8 MI355X vLLM: gate AITER sparse PA to 8k1k high-conc + native linear default / MiniMax-M3 MXFP8 MI355X vLLM:AITER 稀疏分页注意力门控至 8k1k 高并发 + 默认原生 linear - #2187

Merged
adibarra merged 12 commits into
mainfrom
hy/mm3-sparse-pa
Jul 22, 2026

Conversation

@hongxiayang

@hongxiayang hongxiayang commented Jul 14, 2026

Copy link
Copy Markdown
Collaborator

Summary

Bumps minimaxm3-fp8-mi355x-vllm to vllm/vllm-openai-rocm:nightly-9e57de7197f234f9d9187715d96e07e007048c0f (carries the merged AITER page-16 sparse paged-attention path, vllm-project/vllm#47287) and re-tunes the serve command for that nightly:

Search space (TP4, conc 1-512 at 1k1k and 8k1k) is unchanged.

Performance vs #2003 (tput/GPU) — every concurrency is a win

e2e run (test-config, mi355x-amds): https://github.com/SemiAnalysisAI/InferenceX/actions/runs/29342987628

conc 1 2 4 8 16 32 64 128 256 512
1k1k +2.6% +3.5% +5.1% +3.1% +7.5% +11.6% +8.1% +6.3% +5.7% +8.5%
8k1k +1.8% +2.7% +2.8% +0.2% +6.9% +4.2% +2.4% +4.3% +7.3% +8.6%

No regression at any concurrency (gains +0.2% to +11.6%); peak throughput +8.5% (1k1k conc512) / +8.6% (8k1k conc512). Switching to INT4 quick all-reduce resolved the earlier 8k1k conc8 (-4.7% -> +0.2%) and conc64 (-0.9% -> +2.4%) dips seen with INT6.

Test plan

  • e2e test-config green on mi355x-amds (run 29342987628), all 20 throughput + 2 eval jobs
  • Local smoke: 8k1k conc1 (10/10) and conc512 (5120/5120), zero failures
  • Verified EP regresses at high conc (~-13%), kept plain TP4
  • vLLM recipe PR (vllm-project/recipes) reflecting sparse PA + gated linear-backend + INT4 for MXFP8 MI355X (for CODEOWNER sign-off)
  • CODEOWNER sign-off + sweep label

中文说明

minimaxm3-fp8-mi355x-vllm 镜像升级到 nightly-9e57de7197f234f9d9187715d96e07e007048c0f(已包含合并进主分支的 AITER page-16 稀疏分页注意力 vllm-project/vllm#47287),并针对该 nightly 重新调优 serve 命令:

搜索空间(TP4,1k1k 与 8k1k 并发 1-512)保持不变。相对 #2003 每个并发点均为正收益(+0.2% ~ +11.6%),峰值吞吐 +8.5%(1k1k)/+8.6%(8k1k);改用 INT4 quick all-reduce 后消除了此前 INT6 下 8k1k conc8(-4.7%->+0.2%)、conc64(-0.9%->+2.4%) 的回退。

hongxiayang and others added 3 commits July 13, 2026 22:06
…lation linear

Bump the minimaxm3-fp8-mi355x-vllm image to
nightly-9e57de7197f234f9d9187715d96e07e007048c0f, which carries the merged
AITER page-16 sparse paged-attention path (vllm-project/vllm#47287). Enable it
via VLLM_ROCM_SHUFFLE_KV_CACHE_LAYOUT=1 (with VLLM_ROCM_USE_AITER=1 and fp8 KV
cache on TP4, num_kv_heads == 1 per rank) plus the recipe's quick all-reduce
knobs VLLM_ROCM_QUICK_REDUCE_CAST_BF16_TO_FP16=0 and
VLLM_ROCM_QUICK_REDUCE_QUANTIZATION_MIN_SIZE_KB=256. Drop --linear-backend
emulation now that the Triton MXFP8 dense-linear GEMM is optimized. Deliberately
do NOT add the #47269 --hf-overrides use_index_cache/index_topk_freq indexer
skip: it reduces model-architecture FLOPs, disallowed by
docs/PR_REVIEW_CHECKLIST.md. Sparse PA is a kernel-level speedup only.

Verified locally on MI355X (gfx950) TP4 8k1k: conc1 10/10 and conc512 5120/5120
completed with zero failures (conc512 ~28.6k tok/s total, ~7.1k tok/s/GPU).

中文:将 minimaxm3-fp8-mi355x-vllm 镜像升级到
nightly-9e57de7197f234f9d9187715d96e07e007048c0f,该镜像已包含合并进主分支的
AITER page-16 稀疏分页注意力(sparse paged attention, vllm-project/vllm#47287)。
通过 VLLM_ROCM_SHUFFLE_KV_CACHE_LAYOUT=1(配合 VLLM_ROCM_USE_AITER=1、fp8 KV
cache 及 TP4,每个 rank num_kv_heads == 1)启用,并补上 recipe 的 quick
all-reduce 调优开关 VLLM_ROCM_QUICK_REDUCE_CAST_BF16_TO_FP16=0 与
VLLM_ROCM_QUICK_REDUCE_QUANTIZATION_MIN_SIZE_KB=256。由于 Triton MXFP8 稠密
linear GEMM 已优化,移除 --linear-backend emulation。刻意不添加 #47269 的
--hf-overrides use_index_cache/index_topk_freq indexer 跳层开关:它会减少模型
架构 FLOPs,违反 docs/PR_REVIEW_CHECKLIST.md。sparse PA 仅为 kernel 级加速。
已在 MI355X(gfx950) TP4 8k1k 本地验证:conc1 10/10、conc512 5120/5120 全部成功
(conc512 约 28.6k tok/s 总吞吐,约 7.1k tok/s/GPU)。

Co-authored-by: Cursor <cursoragent@cursor.com>
… for 8k1k high-conc

On the sparse-PA nightly the dense-linear backend crossover reversed vs #2003:
the native Triton MXFP8 GEMM now wins in the memory-bound low-concurrency
regime, while --linear-backend emulation (bf16 hipBLASLT) still wins in the
compute-bound high-concurrency regime. Measured on gfx950 MXFP8 + sparse PA:
emulation ~+3-5% at 8k1k conc 64-512 but ~-3% at conc 1-8. Gate emulation to
isl>=8192 && conc>=64; native everywhere else (all 1k1k, 8k1k conc<64).
Overridable via LINEAR_BACKEND.

中文:在 sparse-PA nightly 上,稠密 linear 后端的性能拐点相比 #2003 发生反转:
原生 Triton MXFP8 GEMM 现在在访存受限的低并发区间更快,而 --linear-backend
emulation(bf16 hipBLASLT)仍在计算受限的高并发区间更快。gfx950 MXFP8 + sparse
PA 实测:emulation 在 8k1k conc 64-512 约 +3-5%,在 conc 1-8 约 -3%。因此将
emulation 限定在 isl>=8192 且 conc>=64,其余(所有 1k1k、8k1k conc<64)使用原生
路径。可通过 LINEAR_BACKEND 覆盖。

Co-authored-by: Cursor <cursoragent@cursor.com>
…high-conc

AITER page-16 sparse PA is a long-context/high-batch optimization: it wins at
8k1k conc>=64 but adds overhead at short context (1k1k) and low concurrency.
Gate both VLLM_ROCM_SHUFFLE_KV_CACHE_LAYOUT (sparse PA) and --linear-backend
emulation behind a single MM3_HIGH_CONC_FASTPATH condition (isl>=8192 &&
conc>=64); everything else falls back to the #2003 path (non-shuffled Triton
attention + native linear) so there is no regression outside the target regime.
Net vs #2003: 8k1k tput/gpu conc128 +3.3%, conc256 +2.5%, conc512 +4.7% (peak),
neutral elsewhere. Overridable via MM3_HIGH_CONC_FASTPATH / LINEAR_BACKEND.

中文:AITER page-16 稀疏分页注意力(sparse PA)是长上下文/大批量优化:在 8k1k
conc>=64 有收益,但在短上下文(1k1k)和低并发下带来额外开销。将
VLLM_ROCM_SHUFFLE_KV_CACHE_LAYOUT(sparse PA)与 --linear-backend emulation 统一
用 MM3_HIGH_CONC_FASTPATH 条件(isl>=8192 且 conc>=64)门控;其余情况回退到 #2003
路径(非 shuffle 的 Triton 注意力 + 原生 linear),从而在目标区间之外不产生回退。
相对 #2003:8k1k tput/gpu conc128 +3.3%、conc256 +2.5%、conc512 +4.7%(峰值),
其余基本持平。可通过 MM3_HIGH_CONC_FASTPATH / LINEAR_BACKEND 覆盖。

Co-authored-by: Cursor <cursoragent@cursor.com>
@github-actions

Copy link
Copy Markdown
Contributor

Thanks for the contribution! Please reach out to respective companies' CODEOWNER to fill in the latest PR_REVIEW_CHECKLIST.md before pinging core maintainer on Slack for review. In order for the signoff PR check bot to trigger, you must follow the PR_REVIEW_CHECKLIST.md template correctly, including the phrase As a PR reviewer and CODEOWNER, I have reviewed this and have.

For PR verification, add the full-sweep-fail-fast label (strongly recommended) to this PR — the benchmark sweep only runs on labeled PRs. Use full-sweep-enabled only if you need matrix jobs to keep running past a failure.

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. See GitHub's docs on re-running failed jobs


感谢你的贡献!请联系相应公司的 CODEOWNER 填写最新的 PR_REVIEW_CHECKLIST.md,然后再在 Slack 上联系核心维护者进行审阅。为了触发 signoff PR 检查机器人,你必须正确遵循 PR_REVIEW_CHECKLIST.md 模板,包括保留英文语句 As a PR reviewer and CODEOWNER, I have reviewed this and have

如需进行 PR 验证,请为此 PR 添加 full-sweep-fail-fast 标签(强烈推荐)— 基准测试 sweep 仅在带有标签的 PR 上运行。仅当需要矩阵任务在失败后继续运行时才使用 full-sweep-enabled

PR 作者有责任确保合并后所有 GitHub Action 任务完全通过。 很多时候失败只是偶发抖动(flake),重新运行失败的任务即可解决。参见 GitHub 关于重新运行失败任务的文档

1 similar comment
@github-actions

Copy link
Copy Markdown
Contributor

Thanks for the contribution! Please reach out to respective companies' CODEOWNER to fill in the latest PR_REVIEW_CHECKLIST.md before pinging core maintainer on Slack for review. In order for the signoff PR check bot to trigger, you must follow the PR_REVIEW_CHECKLIST.md template correctly, including the phrase As a PR reviewer and CODEOWNER, I have reviewed this and have.

For PR verification, add the full-sweep-fail-fast label (strongly recommended) to this PR — the benchmark sweep only runs on labeled PRs. Use full-sweep-enabled only if you need matrix jobs to keep running past a failure.

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. See GitHub's docs on re-running failed jobs


感谢你的贡献!请联系相应公司的 CODEOWNER 填写最新的 PR_REVIEW_CHECKLIST.md,然后再在 Slack 上联系核心维护者进行审阅。为了触发 signoff PR 检查机器人,你必须正确遵循 PR_REVIEW_CHECKLIST.md 模板,包括保留英文语句 As a PR reviewer and CODEOWNER, I have reviewed this and have

如需进行 PR 验证,请为此 PR 添加 full-sweep-fail-fast 标签(强烈推荐)— 基准测试 sweep 仅在带有标签的 PR 上运行。仅当需要矩阵任务在失败后继续运行时才使用 full-sweep-enabled

PR 作者有责任确保合并后所有 GitHub Action 任务完全通过。 很多时候失败只是偶发抖动(flake),重新运行失败的任务即可解决。参见 GitHub 关于重新运行失败任务的文档

中文:将 perf-changelog 的 pr-link 设置为 #2187。

Co-authored-by: Cursor <cursoragent@cursor.com>

@claude claude Bot left a comment

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.

Beyond the inline finding, I also checked two other candidates and ruled them out: the perf-changelog pr-link field is correctly filled in (points to this PR, not a placeholder), and the MM3_HIGH_CONC_FASTPATH conc>=64 threshold's apparent regression at conc64 8k1k (-0.9%) is within the same run-to-run noise band as the PR's own flagged conc8 outlier, not a real gating-boundary bug.

Extended reasoning...

Checked the gating threshold (isl>=8192 && conc>=64) against the PR's own benchmark table for a boundary regression, and checked the perf-changelog pr-link field for an unfilled placeholder. Both were consistent with intended behavior/correctly filled, so no further findings beyond the inline nit.

Comment thread perf-changelog.yaml
hongxiayang and others added 2 commits July 14, 2026 14:52
… concurrencies

Switch VLLM_ROCM_QUICK_REDUCE_QUANTIZATION from INT6 to INT4 unconditionally
(#2003 used INT6); accuracy is guarded by the 8k1k evals. The AITER quick
all-reduce tuning knobs (CAST_BF16_TO_FP16=0, QUANTIZATION_MIN_SIZE_KB=256)
remain in the 8k1k high-conc fast path. Aimed at lifting the low/mid-conc points
(e.g. the 8k1k conc8 dip) via cheaper all-reduces.

中文:将 VLLM_ROCM_QUICK_REDUCE_QUANTIZATION 从 INT6 无条件改为 INT4(#2003 用的是
INT6),准确性由 8k1k evals 保障。AITER quick all-reduce 调优开关
(CAST_BF16_TO_FP16=0、QUANTIZATION_MIN_SIZE_KB=256) 仍保留在 8k1k 高并发快速路径中。
目的是通过更廉价的 all-reduce 提升低/中并发点(例如 8k1k conc8 的回退)。

Co-authored-by: Cursor <cursoragent@cursor.com>
@github-actions

Copy link
Copy Markdown
Contributor

1 similar comment
@github-actions

Copy link
Copy Markdown
Contributor

@seungrokj

Copy link
Copy Markdown
Collaborator

/reuse-sweep-run

@hongxiayang

Copy link
Copy Markdown
Collaborator Author

vllm recipe PR: vllm-project/recipes#654

@seungrokj seungrokj left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

,

@seungrokj
seungrokj self-requested a review July 20, 2026 14:16
@Klaud-Cold

Copy link
Copy Markdown
Collaborator

❌❌❌ REJECTED ❌❌❌

@seungrokj — blocking: the linked upstream recipe PR vllm-project/recipes#654 is still OPEN (not merged), and the sign-off leaves two checklist items unchecked without explanation. Merge #654, then re-sign.

✅ Check 0 (CODEOWNER): PASS — seungrokj is a named owner of configs/amd-master.yaml; the other changed paths are catch-all.
✅ Check 1 (sweep on in-PR commit): PASS — commit 735b3b5 has green executed single-node 1k1k/8k1k and eval / check-runs: run 29479669373.
✅ Check 2 (evals pass): PASS — gsm8k em_strict 0.950 (conc512) / 0.954 (conc128), above the 0.90 bar, run on this PR's image vllm/vllm-openai-rocm:nightly-9e57de71….
❌ Check 3 (recipe merged): FAIL — the linked recipe PR vllm-project/recipes#654 is OPEN with mergedAt: null; an open PR does not satisfy the merged-upstream requirement. The deployment-defining args this PR adds (sparse-PA VLLM_ROCM_SHUFFLE_KV_CACHE_LAYOUT, gated --linear-backend emulation, INT4 quick all-reduce) are exactly what #654 documents, so the published recipe does not cover them yet. (Base recipe args — MXFP8 TP4, block-size 128, aiter MoE backend — are already upstream.)
✅ Check 4 (reuse command): PASS — /reuse-sweep-run posted by seungrokj (COLLABORATOR).
❌ Check 5 (latest checklist): FAIL — two current-template items are unchecked with no explanation in the additional-detail section: the "upstream recipe PR is MERGED" sub-item and the "does not patch the inference engine or serving stack" item (current template).
✅ Check 6 (upstream image): PASS — vllm/vllm-openai-rocm:nightly-9e57de71… is the upstream vLLM Docker Hub org; the entry is framework: vllm, so engine-first ordering is N/A.
✅ Check 7 (no arch hacks): PASS — no --hf-overrides or FLOP-reducing overrides; the #47269 indexer-skip is deliberately not used, and INT4 quick all-reduce is precision-lowering guarded by passing evals.
➖ Check 8 (spec-decode chat template): N/A — no speculative-decoding changes in this PR.
✅ Check 9 (no engine patches): PASS — no .patch/sed/heredoc engine rewrites or forked wheels in the diff.
➖ Check 10 (agentic golden AL): N/A — no agentic speculative-decoding changes.

@hongxiayang

Copy link
Copy Markdown
Collaborator Author

vllm-project/recipes#654 is merged.

@seungrokj seungrokj left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

As a PR reviewer and CODEOWNER, I have reviewed this and have:

  • Verified that as of the moment of typing this, this is the latest version of PR_REVIEW_CHECKLIST.md
  • Verified that the general code quality meets the InferenceX standard and does not make the code quality any worse.
  • Verified that this PR has passed PR validation. Please link to GitHub Action workflow that shows this.
  • Verified that this PR passes evals. Please link to GitHub Action workflow that shows this.
  • Verified that speculative decoding PRs uses chat templates to align the AL distribution to real world
  • For agentic workloads: verified that speculative-decoding configs (EAGLE / MTP / draft models) run with simulated synthetic acceptance, with the acceptance-length value taken from the committed golden AL curve in golden_al_distribution/ for that model, thinking mode, and draft length. A submission may choose any supported draft length, but it may not substitute a different acceptance target.
  • Verified that the model architecture isn't changed with benchmark hacks like using --hf-overrides to skipping indexer for every x layers on models that don't natively support this. As a general rule, we won't accept optimizations that reduces the number of model architecture FLOPs. Anything that makes that same computation run faster is fair game; FLOPs at lower precisions is fine, given that the config passes private evals. As an general north star princple, we should only use optimizations which is used in production by customers that care about accuracy
  • If an company claims that they support vLLM/SGLang as first class LLM inference engines on their hardware, I have verified that the respective vLLM submission made using upstream https://hub.docker.com/u/vllm docker repo, upstream SGLang https://hub.docker.com/u/lmsysorg docker repo. The only exceptions are for new hardware, such as MI455X UALoE72, Vera Rubin NVL72, Rubin NVL8, etc., and for new model architectures where there is an actual reason why vLLM/SGLang does not fundamentally support them yet as supported by vLLM/SGLang community maintainers
  • If an company claims that they support vLLM/SGLang as first class upstream in-tree LLM inference engines on their hardware, I have have verified that the respective vLLM/SGLang submission has been made before additional frameworks (TRT-LLM, ATOM, etc.). The only exceptions are for new hardware, such as MI455X UALoE72, Vera Rubin NVL72, Rubin NVL8, etc., and for new model architectures where there is an actual reason why vLLM/SGLang does not fundamentally support them yet.
  • Verified that every single-node vLLM/SGLang recipe in this PR is documented in the official vLLM recipes and/or the SGLang cookbook:
    • I linked the corresponding upstream PR in the vLLM recipe repo or SGLang repo and verified that it is MERGED before this InferenceX PR merges. An opened, draft, or closed-without-merge upstream PR does not satisfy this requirement. If the matching recipe was already published, I linked the published recipe/cookbook page in the additional detail section below.
  • Verified that this PR does not patch the inference engine or serving stack — the pinned image must run as shipped. This covers .patch files / git apply / patch, inline patches embedded in benchmark scripts (e.g. a python3/sed heredoc that rewrites installed engine sources before serving), in-place edits of site-packages, monkey-patching, overwriting container files, and installing forked/rebuilt engine wheels on top of the pinned image. The only exception is a patch covered by a filled-out waiver at docs/waiver/<PR_NUMBER>.md — named after the PR that introduces the patch and filed in that same PR, stating what is patched, why the unmodified upstream image cannot run this benchmark, the upstream PR/issue link, and the removal plan — which I have linked below in the additional detail section.
  • If any of the above criteria cannot reasonably be satisfied, I have provided additional reasoning below.

Additional detail section:

Signed: seungrokj

@Klaud-Cold

Copy link
Copy Markdown
Collaborator

✅✅✅ Verdict: PASS ✅✅✅

✅ Check 0 (CODEOWNER): PASS — seungrokj is a named owner of configs/amd-master.yaml; the other changed files fall under the catch-all, which any recognized CODEOWNER satisfies.
✅ Check 1 (passing sweep on in-PR commit): PASS — commit 735b3b5 (in this PR) has all 20 single-node 1k1k/8k1k jobs and both eval / jobs green (executed, not skipped): run 29479669373.
✅ Check 2 (evals accuracy): PASS — GSM8K em_strict 0.954 (8k1k conc128) / 0.950 (8k1k conc512), run on this PR's exact pinned image vllm/vllm-openai-rocm:nightly-9e57de71….
✅ Check 3 (recipe merged & matches): PASS — vllm-project/recipes#654 MERGED 2026-07-21; the published MiniMax-M3.yaml "MXFP8 high-concurrency options on MI355X" section documents the exact command: TP4, --block-size 128, --moe-backend aiter, --kv-cache-dtype fp8, --attention-backend TRITON_ATTN, gated --linear-backend emulation + VLLM_ROCM_SHUFFLE_KV_CACHE_LAYOUT (isl≥8k, conc≥64), INT4 quick-reduce + tuning knobs. All major args match; sweep ranges/ports are InferenceX-harness specifics as expected.
✅ Check 4 (reuse command): PASS — /reuse-sweep-run posted by seungrokj (COLLABORATOR).
✅ Check 5 (latest checklist template): PASS — sign-off contains every current-template item, all checked.
✅ Check 6 (upstream image / engine-first): PASS — image is from the upstream vllm Docker Hub org; the framework is vLLM itself, so engine-first ordering is trivially satisfied.
✅ Check 7 (no architecture hacks): PASS — no --hf-overrides/model-config edits; the #47269 indexer-skip is explicitly NOT used; sparse-PA shuffle + INT4 all-reduce are kernel/collective-level (evals guard the precision change).
➖ Check 8 (spec-decode chat template): N/A — this PR changes no speculative-decoding config.
✅ Check 9 (no engine patches): PASS — the script only sets env vars and CLI flags; the pinned image runs as shipped.
➖ Check 10 (agentic spec-decode golden AL): N/A — no agentic speculative-decoding changes in this PR.

@seungrokj

Copy link
Copy Markdown
Collaborator

@functionstackx @cquil11 can you plz approve this ?

@Klaud-Cold

Copy link
Copy Markdown
Collaborator

✅✅✅ Verdict: PASS ✅✅✅

✅ Check 0 (CODEOWNER): PASS — seungrokj is a named owner of configs/amd-master.yaml; the other changed files fall under the catch-all, which any recognized CODEOWNER satisfies.
✅ Check 1 (Sweep on in-PR commit): PASS — commit 735b3b5 (in this PR) has all 20 single-node 1k1k/8k1k and both eval / check-runs executed with success in run 29479669373.
✅ Check 2 (Evals pass): PASS — GSM8K em_strict 0.950 (conc512) / 0.954 (conc128), n_eff 1319, on the 8k1k high-conc lane (exercises the new sparse-PA + INT4 + emulation fast path), same image nightly-9e57de71… as this PR's config.
✅ Check 3 (Recipe merged & matches): PASS — sign-off links the published MiniMax-M3 recipe; the high-conc section landed via vllm-project/recipes#654 (MERGED 2026-07-21). Major args match: MiniMax-M3-MXFP8, TP4, fp8 KV, TRITON_ATTN, --moe-backend aiter, --block-size 128, INT4 quick all-reduce, and sparse-PA shuffle + --linear-backend emulation gated to isl≥8k/conc≥64 exactly as the recipe documents (native linear + shuffle=0 elsewhere). Informational only: --max-num-batched-tokens 32768 and the pinned nightly tag are InferenceX sweep plumbing.
✅ Check 4 (Reuse command): PASS — /reuse-sweep-run posted by seungrokj (COLLABORATOR).
✅ Check 5 (Latest checklist): PASS — every current-template item is present and checked.
✅ Check 6 (Upstream image / engine-first): PASS — vllm/vllm-openai-rocm:nightly-9e57de71… is the upstream vLLM Docker Hub org; the entry is framework: vllm, so engine-first ordering is trivially satisfied.
✅ Check 7 (No architecture hacks): PASS — no --hf-overrides or FLOP-reducing knobs; the PR explicitly declines the #47269 indexer-skip override. INT4 quick all-reduce is lower-precision comms guarded by passing evals.
➖ Check 8 (Spec-decode chat template): N/A — no speculative-decoding changes in this PR.
✅ Check 9 (No engine patches): PASS — the diff only adds env vars and CLI-flag gating; no patching of the pinned image.
➖ Check 10 (Agentic golden AL): N/A — no agentic spec-decode changes, and no synthetic-acceptance knobs on any config.

@adibarra
adibarra merged commit b38bf41 into main Jul 22, 2026
27 checks passed
@adibarra
adibarra deleted the hy/mm3-sparse-pa branch July 22, 2026 20:55
@Klaud-Cold

Copy link
Copy Markdown
Collaborator

✅✅✅ Verdict: PASS ✅✅✅

✅ Check 0 (CODEOWNER): PASS — seungrokj is a named owner of configs/amd-master.yaml; the other changed files fall under the catch-all, which any recognized CODEOWNER satisfies.
✅ Check 1 (sweep on in-PR commit): PASS — commit 735b3b5f (currently in this PR) has all single-node 1k1k /, single-node 8k1k / (conc 1–512) and eval / jobs green (executed, not skipped) on run 29479669373.
✅ Check 2 (evals pass): PASS — GSM8K em_strict 0.950 (conc512) / 0.954 (conc128) for MiniMax-M3-MXFP8 TP4 8k1k, run on the same vllm/vllm-openai-rocm:nightly-9e57de71… image this PR pins.
✅ Check 3 (recipe merged & matches): PASS — vllm-project/recipes#654 is MERGED (2026-07-21) and the published MiniMax-M3 recipe documents the exact MI355X MXFP8 high-concurrency config: TP4, --block-size 128, --kv-cache-dtype fp8, --attention-backend TRITON_ATTN, --moe-backend aiter, --language-model-only, --linear-backend emulation, VLLM_ROCM_SHUFFLE_KV_CACHE_LAYOUT=1, INT4 quick all-reduce + tuning knobs, plus the shuffle-off default outside that regime. All major args match; the MM3_HIGH_CONC_FASTPATH isl/conc gating is InferenceX sweep plumbing (informational only).
✅ Check 4 (reuse command): PASS — /reuse-sweep-run posted by seungrokj (COLLABORATOR).
✅ Check 5 (latest checklist): PASS — every item in the current docs/PR_REVIEW_CHECKLIST.md template is present and checked.
✅ Check 6 (upstream image / engine-first): PASS — vllm/vllm-openai-rocm:nightly-9e57de71… is the upstream vLLM Docker Hub org; the entry is itself framework: vllm, so engine-first ordering is satisfied.
✅ Check 7 (no architecture hacks): PASS — no --hf-overrides or FLOP-reducing knobs; the PR explicitly avoids the #47269 indexer-skip override. INT4 quick all-reduce is lower-precision communication, guarded by the passing 8k1k evals.
➖ Check 8 (spec-decode chat template): N/A — this PR has no speculative-decoding changes.
✅ Check 9 (no engine patches): PASS — the diff is env vars, CLI flags, and config/changelog edits only; no patching of the pinned image.
➖ Check 10 (agentic spec-decode golden AL): N/A — no agentic speculative-decoding changes (and no synthetic-acceptance knobs introduced anywhere).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Development

Successfully merging this pull request may close these issues.

4 participants