Skip to content

[AMD][DSV4] Repin MI355X vLLM entries to the nightly shipping FHMoE - #2850

Closed
Fangzhou-Ai wants to merge 1 commit into
mainfrom
fangzhou/dsv4-mi355x-fhmoe-nightly
Closed

[AMD][DSV4] Repin MI355X vLLM entries to the nightly shipping FHMoE#2850
Fangzhou-Ai wants to merge 1 commit into
mainfrom
fangzhou/dsv4-mi355x-fhmoe-nightly

Conversation

@Fangzhou-Ai

@Fangzhou-Ai Fangzhou-Ai commented Sep 7, 2026

Copy link
Copy Markdown
Collaborator

What

Repins the three DSv4 MI355X vLLM entries — dsv4-fp4-mi355x-vllm (8K/1K STP), dsv4-fp4-mi355x-vllm-mtp (8K/1K MTP), and dsv4-fp4-mi355x-vllm-agentic-mtp (AgentX) — to the first ROCm nightly that ships vllm-project/vllm#53161 (merged as de69e821), which fuses the DeepSeek-V4 native-FP8 shared expert into the MXFP4 routed-expert AITER kernel (FHMoE).

Why this is not a duplicate

  • #2792 adds VLLM_ROCM_USE_AITER_FUSION_SHARED_EXPERTS=1 to the two 8K/1K scripts and pins the Sep-1 nightly-7c5dc571. This PR deliberately does not touch those scripts — the export belongs there. It is materially different: it moves the image to a build where that export actually does something.
  • #2841 bumps only the AgentX image, to nightly-e962733e, which also predates de69e821.

The env var alone was never sufficient. On every nightly before de69e821, vLLM's eligibility check rejected this mixed FP4+FP8 checkpoint and the fusion self-disabled at startup, which is exactly what #2792's changelog and the vllm-project/recipes DSv4-Pro caveat currently describe. #53161 is the piece that makes the flag take effect.

Eligibility

vLLM gates the fused path on gfx950, TP8, DP1, no expert parallelism, no EPLB, --moe-backend aiter, BF16 dtype, and the DeepSeek-V4 block-128 FP8 shared-expert quant config. All three entries satisfy this. The AgentX DP-attention arm (TP1/DP8) does not and keeps the unfused path — no change in behaviour there.

Blocking on

The image tag is intentionally a nightly-TBD placeholder. de69e821 was the tip of vLLM main when this was written; the newest published nightly is nightly-1970f3ed (2026-09-06 05:31 UTC), which predates it. Before this leaves draft:

Testing

No benchmark has been run on this image because it does not exist yet. Local validation only:

python3 utils/validate_perf_changelog.py --base-ref origin/main --head-ref HEAD
# Validated perf-changelog.yaml: final newline present and matrix generated

Supporting local measurements on a source build of the FHMoE branch (TP8 AgentX, MI355X, pure TP, synthetic AL 2.49) are promising but are not a validation of this image: c1 1,417, c4 2,628, c8 4,699, c32 14,178 tok/s/GPU, versus the reference run 32082871496 at 1,143 / 2,251 / 4,112 / 12,939. That delta also carries three weeks of unrelated vLLM changes and should not be read as the FHMoE effect on its own.

AI assistance was used to prepare this PR. Numbers, eligibility conditions, and duplicate checks were verified against the linked runs and source before submission.

Fuse the DeepSeek-V4 native-FP8 shared expert into the MXFP4 routed-expert
AITER kernel by moving the 8K/1K STP, 8K/1K MTP, and AgentX entries onto the
first ROCm nightly containing vllm-project/vllm#53161 (vllm@de69e821).

VLLM_ROCM_USE_AITER_FUSION_SHARED_EXPERTS=1 was already requested by the
AgentX script, but every earlier nightly rejected this mixed FP4+FP8
checkpoint in vLLM's eligibility check and self-disabled the fusion.

Co-authored-by: Cursor Agent <agent@cursor.com>
Signed-off-by: Fangzhou Ai <fangzhou.ai@amd.com>
@github-actions

github-actions Bot commented Sep 7, 2026

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 关于重新运行失败任务的文档

@Fangzhou-Ai

Copy link
Copy Markdown
Collaborator Author

Closing until the image exists. de69e821 (vllm-project/vllm#53161) landed after the most recent ROCm nightly was cut, so the tag pinned here is not yet published and this repin cannot be validated.

Reopening once the next nightly builds and the real sha is known. Branch fangzhou/dsv4-mi355x-fhmoe-nightly is preserved; the only change needed is swapping the placeholder tag for the published one.

The documentation half of this work is tracked separately in vllm-project/recipes#932.

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

Labels

None yet

Projects

Development

Successfully merging this pull request may close these issues.

1 participant