Skip to content

[AMD][AgentX] Update DSv4 MI355X vLLM MTP flags on the 2026-08-17 ROCm nightly / [AMD][AgentX] 更新 2026-08-17 ROCm nightly 上的 DSv4 MI355X vLLM MTP 标志 - #2590

Merged
functionstackx merged 16 commits into
mainfrom
jiacao/dsv4-agentic-mtp-0809-nopatch
Aug 19, 2026
Merged

[AMD][AgentX] Update DSv4 MI355X vLLM MTP flags on the 2026-08-17 ROCm nightly / [AMD][AgentX] 更新 2026-08-17 ROCm nightly 上的 DSv4 MI355X vLLM MTP 标志#2590
functionstackx merged 16 commits into
mainfrom
jiacao/dsv4-agentic-mtp-0809-nopatch

Conversation

@jiacao-amd

@jiacao-amd jiacao-amd commented Aug 13, 2026

Copy link
Copy Markdown
Collaborator

Summary

Update dsv4-fp4-mi355x-vllm-agentic-mtp to the 2026-08-17 vLLM ROCm nightly, extend the pure TP8 AgentX ladder to concurrency 56 and 64, and make the runtime flags used by the validated local runs explicit in the checked-in recipe.

This uses the current immutable vLLM ROCm nightly:

  • Image: vllm/vllm-openai-rocm:nightly-311b3513af33bc29b4acb2fde2e9313e5e9966a0
  • Digest: sha256:4b403315f9a0d9b0ed4221dfc7ea04538701b4de0ce283c0e2cee622b217ff89
  • Docker Hub nightly last pushed: 2026-08-17T05:32:09Z
  • vLLM commit: 311b3513af33bc29b4acb2fde2e9313e5e9966a0

The pinned nightly includes:

  • vLLM #51473: native 384-shard MXFP4 TP8 allocation
  • vLLM #52212: gfx950 Triton sparse-MLA decode
  • vLLM #52401: merged equivalent of Fangzhou's #52488 regression fix for ROCm DeepSeek V4 MRV1 plus the wide eager attention region

Search-space changes (configs/amd-master.yaml)

  • Pure TP8 arm: concurrency 1, 4, 8, 16, 32, 40, 48 extended to 1, 4, 8, 16, 32, 40, 48, 56, 64.
  • DP-attention arm: unchanged at concurrency 64.

Ten benchmark points total: nine on pure TP8, one on DP-attention.

Recipe changes (benchmarks/single_node/agentic/dsv4_fp4_mi355x_vllm_mtp.sh)

Applied to both arms:

  • Enable VLLM_ROCM_QUICK_REDUCE_QUANTIZATION=INT4 (previously commented out).
  • Enable VLLM_ROCM_USE_AITER_FUSION_SHARED_EXPERTS=1. DSv4-Pro is a mixed checkpoint (MXFP4 routed experts, FP8 shared expert) and vLLM gates the fused shared-expert path on this flag, which defaults to off, so the checked-in recipe was not running the configuration the validated manual runs used. The flag is mutually exclusive with expert parallelism inside vLLM, which is consistent with both arms running ep 1.
  • Raise --gpu-memory-utilization from 0.8 to 0.86.
  • Pin --max-num-batched-tokens 8192 instead of the nightly default of 16384. On the TP8 initialization check this raised GPU KV-cache capacity from 4,730,981 to 8,524,228 tokens and reduced peak activation memory from 11.44 GiB to 8.9 GiB.

Applied to the DP-attention arm only:

  • Cap --max-num-seqs at CONC rather than 2*CONC. The limit is per scheduler and DP-attention runs one scheduler per rank. The pure TP8 arm keeps the existing 2*CONC headroom for AgentX subagent fan-out.
  • Add --prefill-schedule-interval 8 and --long-prefill-token-threshold 16384.

Note on the open review thread: with --max-num-batched-tokens 8192 now pinned for both arms, --long-prefill-token-threshold 16384 sits above the token budget and therefore never binds. It is inert rather than harmful, and the DP-attention point was measured with it present.

--compilation-config '{"mode":3,"cudagraph_mode":"FULL_AND_PIECEWISE"}' is unchanged; it was already in the checked-in recipe.

Validation

Full sweep on this branch: run 32082871496, conclusion success on head 4fb6de5, with all ten configured points green (pure TP8 c1/c4/c8/c16/c32/c40/c48/c56/c64 and DP-attention c64) plus the agentic eval ... c64 | eval-only job.

The only change since that run is the perf-changelog.yaml merge with origin/main; the benchmark-affecting diff is unchanged, so reuse of that sweep was authorized with /reuse-sweep-run.

Search-space generation was checked locally with:

/home/jiacao/.local/bin/uv run --with 'pydantic>=2' --with pyyaml \
  python3 utils/matrix_logic/generate_sweep_configs.py full-sweep \
  --config-files configs/amd-master.yaml \
  --model-prefix dsv4 \
  --framework vllm \
  --runner-type cluster:mi355x-amds \
  --min-conc 1 --max-conc 96 --no-evals

Acceptance-length methodology is unchanged by this PR: throughput runs pin num_speculative_tokens 3 to synthetic_acceptance_length 2.49, the committed thinking-on golden value for DeepSeek-V4-Pro at draft length 3 in golden_al_distribution/dsv4_mtp.yaml, while eval-only runs drop synthetic acceptance and use real target verification.

Note: Docker socket access is not available on the login node used for this edit, so the image check was done via Docker Hub metadata plus upstream vLLM merge ancestry rather than by importing and grepping the container filesystem locally.

中文说明

dsv4-fp4-mi355x-vllm-agentic-mtp 更新到 2026-08-17 vLLM ROCm nightly,把纯 TP8 的 AgentX 并发阶梯扩展到 56 和 64,并在签入的配方中显式写入已验证本机运行所使用的 runtime flags。

本 PR 固定到当前不可变的 vLLM ROCm nightly 镜像:

  • 镜像:vllm/vllm-openai-rocm:nightly-311b3513af33bc29b4acb2fde2e9313e5e9966a0
  • Digest:sha256:4b403315f9a0d9b0ed4221dfc7ea04538701b4de0ce283c0e2cee622b217ff89
  • Docker Hub nightly 最后推送时间:2026-08-17T05:32:09Z
  • vLLM 提交:311b3513af33bc29b4acb2fde2e9313e5e9966a0

该 nightly 已包含:

  • vLLM #51473:原生 384-shard MXFP4 TP8 分配修复
  • vLLM #52212:gfx950 Triton sparse-MLA decode 路径
  • vLLM #52401:Fangzhou 的 #52488 回归修复的已合并等价 PR,用于 ROCm DeepSeek V4 MRV1 与更宽的 eager attention 区间

中文搜索空间变更(configs/amd-master.yaml

  • 纯 TP8 arm:并发从 1、4、8、16、32、40、48 扩展为 1、4、8、16、32、40、48、56、64
  • DP-attention arm:保持并发 64 不变。

合计十个基准测试点:纯 TP8 九个,DP-attention 一个。

中文配方变更(benchmarks/single_node/agentic/dsv4_fp4_mi355x_vllm_mtp.sh

两条 arm 均生效:

  • 启用 VLLM_ROCM_QUICK_REDUCE_QUANTIZATION=INT4(此前被注释掉)。
  • 启用 VLLM_ROCM_USE_AITER_FUSION_SHARED_EXPERTS=1。DSv4-Pro 是混合精度检查点(routed experts 为 MXFP4,shared expert 为 FP8),vLLM 通过该开关控制 fused shared-expert 路径且默认关闭,因此签入的配方与已验证的手工运行并非同一配置。该开关在 vLLM 内部与专家并行互斥,这与两条 arm 均为 ep 1 一致。
  • --gpu-memory-utilization0.8 提高到 0.86
  • 显式固定 --max-num-batched-tokens 8192,替代该 nightly 的默认值 16384。在 TP8 初始化检查中,GPU KV cache 容量从 4,730,981 提升到 8,524,228 tokens,峰值激活内存从 11.44 GiB 降到 8.9 GiB。

仅 DP-attention arm 生效:

  • --max-num-seqs2*CONC 收到 CONC。该上限按 scheduler 生效,而 DP-attention 每个 rank 一个 scheduler。纯 TP8 arm 保留原有的 2*CONC 余量以容纳 AgentX 子智能体扇出。
  • 新增 --prefill-schedule-interval 8--long-prefill-token-threshold 16384

关于未决审阅意见的说明:由于两条 arm 现在都固定了 --max-num-batched-tokens 8192--long-prefill-token-threshold 16384 高于 token 预算,因此不会生效。它是惰性的而非有害的,且 DP-attention 数据点就是在带该标志的情况下实测的。

--compilation-config '{"mode":3,"cudagraph_mode":"FULL_AND_PIECEWISE"}' 未改动,签入配方中原本就有。

中文验证

本分支完整 sweep:run 32082871496,在 head 4fb6de5 上结论为 success,配置的十个点全部通过(纯 TP8 c1/c4/c8/c16/c32/c40/c48/c56/c64 与 DP-attention c64),并包含 agentic eval ... c64 | eval-only 任务。

此后的唯一改动是 perf-changelog.yamlorigin/main 的合并,影响基准测试的 diff 未变,因此已通过 /reuse-sweep-run 授权复用该 sweep。

搜索空间生成在本地用以下命令核对:

/home/jiacao/.local/bin/uv run --with 'pydantic>=2' --with pyyaml \
  python3 utils/matrix_logic/generate_sweep_configs.py full-sweep \
  --config-files configs/amd-master.yaml \
  --model-prefix dsv4 \
  --framework vllm \
  --runner-type cluster:mi355x-amds \
  --min-conc 1 --max-conc 96 --no-evals

本 PR 未改动接受长度方法学:吞吐运行将 num_speculative_tokens 3 固定到 synthetic_acceptance_length 2.49,即 golden_al_distribution/dsv4_mtp.yaml 中 DeepSeek-V4-Pro 在 draft 长度 3 下的 thinking-on golden 值;eval-only 运行则去掉合成接受,使用真实的 target 校验。

说明:本次编辑所在的 login node 没有 Docker socket 权限,因此镜像内容核验是通过 Docker Hub 元数据和上游 vLLM merge ancestry 完成的;没有在本地导入容器后 grep 容器文件系统。

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

@jiacao-amd
jiacao-amd force-pushed the jiacao/dsv4-agentic-mtp-0809-nopatch branch from 9702fd6 to b816427 Compare August 13, 2026 06:30
@jiacao-amd jiacao-amd changed the title perf(dsv4-fp4-mi355x-vllm-agentic-mtp): repin to the 08-09 nightly and complete the DP-attention curve, no container patching / 重新钉到 08-09 nightly 并补齐 DP-attention 曲线,不打容器补丁 perf(dsv4-fp4-mi355x-vllm-agentic-mtp): repin to the 08-09 nightly and complete the DP-attention curve / 重新钉到 08-09 nightly 并补齐 DP-attention 曲线 Aug 13, 2026
@jiacao-amd jiacao-amd changed the title perf(dsv4-fp4-mi355x-vllm-agentic-mtp): repin to the 08-09 nightly and complete the DP-attention curve / 重新钉到 08-09 nightly 并补齐 DP-attention 曲线 perf(dsv4-fp4-mi355x-vllm-agentic-mtp): repin to the 08-09 nightly / 重新钉到 08-09 nightly Aug 13, 2026
…d complete the DP-attention curve

Repin to the 08-09 nightly (f8d03e77) so the config can start at all: the
previously pinned tag no longer serves this recipe, and the 08-12 nightly
(3ee2df30) memory-faults during the profile run.

Two arms: pure TP8 through its measured knee at 48, and DP-attention with
the experts left TP-sharded (ep 1) extended from a single conc-64 point to
32/48/64/96. No EP8 arm -- EP8 only pays off with the MegaMoE backend, which
needs mori.ir.flydsl, absent from this image.

Recipe side, all DP-attention-conditional: cap --max-num-seqs at CONC rather
than 2*CONC (the limit is per scheduler and DP-attention runs one per rank),
set --max-num-batched-tokens 8192 with --prefill-schedule-interval 8 and
--long-prefill-token-threshold 16384, and raise --gpu-memory-utilization
from 0.8 to 0.86.

重新钉到 08-09 nightly(f8d03e77),配置才能起得来:原先钉的 tag 已经跑不动这个
recipe,而 08-12 nightly(3ee2df30)在 profile run 阶段会 memory fault。

两条 arm:纯 TP8 跑到实测拐点 48,以及专家仍按 TP 切分(ep 1)的 DP-attention
arm,从原来单点 conc 64 扩展到 32/48/64/96。不加 EP8 arm —— EP8 只有配
MegaMoE 后端才划算,而它需要 mori.ir.flydsl,该镜像里没有。

recipe 侧改动均只在 DP-attention 下生效:--max-num-seqs 从 2*CONC 收到 CONC
(该上限是每个 scheduler 生效的,而 DP-attention 每个 rank 一个 scheduler),
设置 --max-num-batched-tokens 8192 配合 --prefill-schedule-interval 8 与
--long-prefill-token-threshold 16384,并把 --gpu-memory-utilization 从 0.8
提到 0.86。
@jiacao-amd
jiacao-amd force-pushed the jiacao/dsv4-agentic-mtp-0809-nopatch branch from b816427 to 1bbc5c4 Compare August 13, 2026 06:34
Jiahui Cao and others added 2 commits August 13, 2026 06:46
DSv4-Pro is a mixed checkpoint: MXFP4 routed experts with an FP8 shared
expert. vllm/models/deepseek_v4/amd/model.py gates the fused shared-expert
path on VLLM_ROCM_USE_AITER_FUSION_SHARED_EXPERTS, which defaults to False,
so the checked-in recipe was not running the configuration the validated
manual runs used. The aiter side (aiter/fused_moe_dp_shared_expert.py) is
present on the pinned base.

The flag is mutually exclusive with expert parallelism --
_fuse_shared_experts_enabled() returns False when enable_expert_parallel is
set -- which is consistent with both arms here running ep 1.

DSv4-Pro 是混合精度检查点:routed experts 为 MXFP4,shared expert 为 FP8。
vllm/models/deepseek_v4/amd/model.py 通过 VLLM_ROCM_USE_AITER_FUSION_SHARED_EXPERTS
控制 fused shared-expert 路径,该开关默认为 False,因此签入的 recipe 与已验证的
手工运行并非同一配置。aiter 侧(aiter/fused_moe_dp_shared_expert.py)在所钉基座中存在。

该开关与专家并行互斥 —— enable_expert_parallel 开启时
_fuse_shared_experts_enabled() 返回 False —— 这与本 PR 两条 arm 均为 ep 1 一致。
The gpu-memory-utilization bullet cited 138.85 GiB per rank, which was
measured on a different build than the pinned nightly; the figure for this
topology on a pre-#51473 base is 160.66 GiB with 34.17 GiB of KV left at
0.86. The max-num-batched-tokens comparison was taken on the expert-parallel
MegaMoE topology, not on the dp-attn arm, so it motivates the value rather
than establishing it. Also correct the dp-attn description: dp-attn true
maps to --tensor-parallel-size 1 --data-parallel-size 8, so the weights are
replicated per rank rather than TP-sharded.

将 gmu 与 MNBT 的依据回溯到其真实来源的运行。138.85 GiB 来自另一构建;
本拓扑在 pre-#51473 基座上的实测为每 rank 160.66 GiB、0.86 下仅剩 34.17 GiB KV。
MNBT 对比取自专家并行 MegaMoE 拓扑而非本 arm,只作选值依据。
同时更正 dp-attn 描述:其对应 TP=1 + DP=8,权重按 rank 复制而非 TP 切分。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@jiacao-amd
jiacao-amd marked this pull request as ready for review August 13, 2026 07:08
@jiacao-amd
jiacao-amd requested a review from a team August 13, 2026 07:08
@claude

claude Bot commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Claude finished @jiacao-amd's task in 3m 27s —— View job


PR Review

  • Gather context (diff against origin/main)
  • Review benchmark script changes
  • Review config + perf-changelog changes
  • Verify claims against repo state
  • Post review

LGTM - no blocking issues found

Checks performed:

  • configs/amd-master.yaml modified with a matching perf-changelog.yaml entry, appended at the end of the file with the PR link backfilled ✓
  • New image vllm/vllm-openai-rocm:nightly-f8d03e77… is a public Docker Hub reference ✓
  • Expert parallelism stays conditional on EP_SIZE (EP_ARGS pattern); the new VLLM_ROCM_USE_AITER_FUSION_SHARED_EXPERTS=1 is gated inside vLLM against EP, consistent with both arms running ep 1
  • DP_SCHED_ARGS gating, the MAX_NUM_SEQS override, and the config's dp-attn conc-list/router version are internally consistent with the script's DP-attention path (tp 1 / dp 8 + vllm-router 0.1.14) ✓
  • --prefill-schedule-interval / --long-prefill-token-threshold / --max-num-batched-tokens under DP-attention mirror the established pattern in the dsv4 b200/b300 agentic siblings ✓
  • Server launch command is array-formatted one argument per line ✓

Note: the inferencemax-repos MCP server was not available in this run, so I could not verify against vLLM source that the ROCm 08-09 nightly accepts --prefill-schedule-interval; the sibling dsv4 agentic recipes already use it and the PR states the DP-attention concurrency-64 point was measured on this base with these flags, so risk is low and the labeled sweep will confirm.

@jiacao-amd jiacao-amd changed the title perf(dsv4-fp4-mi355x-vllm-agentic-mtp): repin to the 08-09 nightly / 重新钉到 08-09 nightly perf(dsv4-fp4-mi355x-vllm-agentic-mtp): update the vLLM ROCm image and extend the DP-attention concurrency curve / 更新 vLLM ROCm 镜像并扩展 DP-attention 并发曲线 Aug 13, 2026
@jiacao-amd jiacao-amd changed the title perf(dsv4-fp4-mi355x-vllm-agentic-mtp): update the vLLM ROCm image and extend the DP-attention concurrency curve / 更新 vLLM ROCm 镜像并扩展 DP-attention 并发曲线 perf(dsv4-fp4-mi355x-vllm-agentic-mtp): update image and extend the DP-attention concurrency curve / 更新镜像并扩展 DP-attention 并发曲线 Aug 13, 2026

@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.

LGTM — the one inline finding is a nit (an inert flag value, not a functional break), and the rest of the repin/config changes are well-reasoned and self-contained.

Extended reasoning...

Overview

This PR repins the dsv4-fp4-mi355x-vllm-agentic-mtp recipe to a new ROCm nightly and extends the DP-attention concurrency ladder. Changes are confined to a benchmark launch script, the corresponding amd-master.yaml search-space entry, and an append-only perf-changelog.yaml entry — no production serving code, auth, or shared infrastructure is touched.

Security risks

None. This is benchmark/tuning configuration for an internal sweep harness; it does not touch request handling, credentials, or externally reachable code paths.

Level of scrutiny

Low-to-moderate is appropriate here: it's a data/config change (image pin bump, concurrency list, and a handful of vLLM CLI flags gated behind DP_ATTENTION=true) rather than a logic change to shared code. The one inline finding (a --long-prefill-token-threshold value that can never bind under the accompanying --max-num-batched-tokens budget) is flagged as a Nit by the bug hunter — it doesn't crash or break the run, it just leaves a piece of the stated 'chunk long prefills' rationale as dead configuration. The sweep itself will still execute and produce valid throughput numbers for the arm.

Other factors

The PR description is thorough and grounds each flag change (max-num-seqs capping, gpu-memory-utilization bump, aiter fused shared-expert flag) in specific measurements or code references. The PR is still in draft pending sweep results per its own description, and full-sweep-enabled is applied appropriately given the image/topology changes. No unresolved reviewer threads exist in the timeline.

Comment thread benchmarks/single_node/agentic/dsv4_fp4_mi355x_vllm_mtp.sh
@seungrokj seungrokj added AMD agentx AgentX benchmarks, recipes, and infrastructure labels Aug 13, 2026
@seungrokj seungrokj changed the title perf(dsv4-fp4-mi355x-vllm-agentic-mtp): update image and extend the DP-attention concurrency curve / 更新镜像并扩展 DP-attention 并发曲线 [AMD] [AgentX] dsv4-fp4-mi355x-vllm-agentic-mtp, update image and extend the DP-attention concurrency curve Aug 13, 2026
@github-actions

Copy link
Copy Markdown
Contributor

@seungrokj

Copy link
Copy Markdown
Collaborator

/reuse-sweep-run

Jiahui Cao added 2 commits August 17, 2026 06:06
中文:将 DSv4 MI355X vLLM AgentX MTP 配方重新固定到 2026-08-17 ROCm nightly,并显式配置 TP8 本地复现实验所需的 INT4 quick-reduce、FSE、FULL_AND_PIECEWISE 和 no-Gluon/no-probe 标志。
中文:将 PR #2590 分支同步到最新 main,并按 perf-changelog.yaml 规则重新追加本 PR 的基准测试触发条目。
@jiacao-amd jiacao-amd changed the title [AMD] [AgentX] dsv4-fp4-mi355x-vllm-agentic-mtp, update image and extend the DP-attention concurrency curve [AMD][AgentX] Reproduce DSv4 MI355X vLLM TP8 MTP on the 2026-08-17 ROCm nightly / [AMD][AgentX] 使用 2026-08-17 ROCm nightly 复现 DSv4 MI355X vLLM TP8 MTP Aug 17, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Pin max-num-batched-tokens to 8192 for both pure TP8 and DP-attention so the pinned nightly retains the validated KV-cache capacity. Keep only concurrency 64 for the DP-attention arm and remove the Gluon/sparse-probe environment cleanup. Update the performance changelog with the initialization A/B result.\n\n中文:为纯 TP8 和 DP-attention 显式固定 max-num-batched-tokens=8192,使当前 nightly 保持已验证的 KV cache 容量。DP-attention 仅保留并发 64,并移除 Gluon/sparse probe 环境清理。同步在性能变更日志中记录初始化 A/B 结果。
Remove the explicit 1200-second execute-model timeout because the pinned image default is sufficient for the validated AgentX recipe.

中文:移除显式设置的 1200 秒 execute-model 超时,已验证的 AgentX 配方直接使用固定镜像的默认值即可。
Merge the latest origin/main and resolve the perf-changelog conflict by preserving main verbatim and appending PR 2590's entry at the tail.

中文:合并最新 origin/main,并按 append-only 规则解决 perf-changelog 冲突:完整保留 main 内容,将 PR 2590 的条目重新追加到文件末尾。
@github-actions

Copy link
Copy Markdown
Contributor

@github-actions

Copy link
Copy Markdown
Contributor

Resolve the perf-changelog append-only conflict by restoring the main branch version and re-appending PR #2590 at the tail.

中文:通过恢复 main 分支版本并将 PR #2590 的条目重新追加到文件末尾,解决 perf-changelog 的追加式冲突;本提交带 [skip-sweep] 以跳过本次 PR sweep。
@chunfangamd

Copy link
Copy Markdown
Collaborator

/reuse-sweep-run

@chunfangamd chunfangamd 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. Link: https://github.com/SemiAnalysisAI/InferenceX/actions/runs/32082871496
  • Verified that this PR passes evals. Please link to GitHub Action workflow that shows this. Value: 95.75%. Link: https://github.com/SemiAnalysisAI/InferenceX/actions/runs/32082871496
  • 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 against the current MODELS.md that this PR does not submit a deprecated model, scenario, or model-scenario combination.
  • 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 this PR uses append-only: true, verified that it only adds generated points or recipe variants inside a selected existing config/scenario and existing same-image visual curve: every previously generated point remains present with the same recipe, no prior point is removed or rerun, and every benchmark-affecting change in the complete diff can affect only the corresponding newly appended points (never an existing point), regardless of which file contains it.
  • If any of the above criteria cannot reasonably be satisfied, I have provided additional reasoning below.

Additional detail section:

  • insert any additional info here

Signed: @chunfangamd

@Klaud-Cold

Copy link
Copy Markdown
Collaborator

❌❌❌ REJECTED ❌❌❌

@chunfangamd — blocking: the sign-off contains no upstream recipe link. This PR changes a single-node vLLM recipe, so the additional detail section must link the merged vllm-project/recipes PR or the published recipes.vllm.ai page covering DeepSeek-V4-Pro on MI355X; it currently contains only the unfilled placeholder ("insert any additional info here"). Add the merged/published recipe link and re-post the sign-off.

✅ Check 0 (CODEOWNER): PASS — @chunfangamd is a listed owner of configs/amd-master.yaml; the other changed paths are catch-all-only.
✅ Check 1 (sweep on in-PR commit): PASS — commit 4fb6de5 is still in the PR; run 32082871496 executed all ten agentic / points plus agentic eval / … c64 | eval-only with conclusion success (this PR configures agentic lanes only; the skipped single-node */ / eval / lanes have no configs in this PR).
✅ Check 2 (evals pass): PASS — gsm8k em_strict 95.75% (n_eff 1319) from that run's eval_results_all artifact, on this PR's image vllm/vllm-openai-rocm:nightly-311b3513af33bc29b4acb2fde2e9313e5e9966a0, matching the sign-off's 95.75%.
❌ Check 3 (recipe linked, merged, complete): FAIL — no upstream recipe link anywhere in the sign-off; the additional detail section is the template placeholder. A merged vllm-project/recipes PR or published recipe page for this single-node DSv4 MI355X vLLM MTP recipe is required; a checked box without the link does not satisfy the standard.
✅ Check 4 (reuse command): PASS — /reuse-sweep-run posted by @seungrokj and @chunfangamd, both COLLABORATOR.
✅ Check 5 (latest checklist template): PASS — every item in the current docs/PR_REVIEW_CHECKLIST.md template is present and checked in the sign-off.
✅ Check 6 (upstream image, engine-first): PASS — framework: vllm with upstream vllm/vllm-openai-rocm nightly on MI355X; no new non-vLLM/SGLang entries added.
✅ Check 7 (deprecated models/scenarios): PASS — dsv4 agentic-coding MTP is active per MODELS.md as of 2026-08-18 (the pending non-MTP deprecation is unenacted and this is the MTP arm).
✅ Check 8 (architecture hacks): PASS — flag-only changes (--max-num-batched-tokens 8192, gpu-mem-util 0.86, INT4 quick-reduce allreduce quantization, AITER fused shared experts, DP-attn scheduler knobs); no --hf-overrides or FLOPs-reducing overrides.
✅ Check 9 (chat template): PASS — AgentX replay drives /v1/chat/completions with --endpoint-type chat (build_replay_cmd in benchmarks/benchmark_lib.sh).
✅ Check 10 (no engine patches): PASS — the diff introduces no patching; the pre-existing mooncake/LMCache patch branches in the script are unreachable for this PR's points (both arms pin kv-offloading: none).
✅ Check 11 (golden AL simulation): PASS — throughput pins "rejection_sample_method": "synthetic" with "synthetic_acceptance_length": 2.49, equal to golden_al_distribution/dsv4_mtp.yaml thinking_on at num_speculative_tokens 3; eval-only runs use real target verification.
➖ Check 12 (append-only): N/A — the new perf-changelog entry does not use append-only: true.

@Klaud-Cold

Copy link
Copy Markdown
Collaborator

❌❌❌ REJECTED ❌❌❌

@chunfangamd — blocking: the sign-off's additional detail section is still the empty template placeholder ("insert any additional info here") and contains no upstream recipe link. This PR changes a single-node vLLM recipe, so the sign-off must link the merged vllm-project/recipes PR or the published recipe page (this was also the reason the previous sign-off at 61b1ecb was rejected). The published page https://recipes.vllm.ai/deepseek-ai/DeepSeek-V4-Pro?hardware=mi355x exists and documents the MI355X serve command and MTP checkpoints — please re-post the sign-off with that link (or the merged recipes PR) in the additional detail section.

✅ Check 0 (CODEOWNER): PASS — chunfangamd is a listed owner of configs/amd-master.yaml; remaining paths are catch-all.
✅ Check 1 (passing sweep on in-PR commit): PASS — commit 4fb6de5 (in this PR) has all ten agentic / points and the agentic eval / job executed with success in run 32082871496.
✅ Check 2 (evals pass): PASS — GSM8K em_strict 0.9575 (n=1319) ≥ the dsv4 bar 0.91 in utils/evals/thresholds.yaml, run on this PR's image vllm/vllm-openai-rocm:nightly-311b3513af33bc29b4acb2fde2e9313e5e9966a0.
❌ Check 3 (recipe linked, merged, complete): FAIL — no recipe link in the sign-off's additional detail section (left as the placeholder). The published MI355X recipe page exists and matches the core serve args (TP8, fp8 kv-cache, deepseek_v4 tokenizer/parsers, --max-num-batched-tokens 8192), so re-signing with the link is the fix.
✅ Check 4 (reuse command posted): PASS — /reuse-sweep-run posted by seungrokj and chunfangamd (both COLLABORATOR).
✅ Check 5 (latest checklist template): PASS — every current-template item is present and checked.
✅ Check 6 (upstream image / engine-first): PASS — vllm/vllm-openai-rocm:nightly-… is the upstream vLLM Docker Hub org; the entry is framework: vllm, so ordering does not apply.
✅ Check 7 (no deprecated models/scenarios): PASS — DSv4 agentic-coding MTP is the published arm per MODELS.md (the non-MTP arm is the deprecated one).
✅ Check 8 (no architecture hacks): PASS — no --hf-overrides/config edits; changes are scheduler, memory, and comm-precision knobs that preserve model FLOPs, with evals green.
✅ Check 9 (spec-decode via chat template): PASS — the agentic replay drives /v1/chat/completions with --endpoint-type chat (benchmarks/benchmark_lib.sh).
✅ Check 10 (no engine patches): PASS — the diff introduces no patching; the pre-existing Mooncake patch path in the script is unreachable for this PR's points (kv-offloading: none on both arms).
✅ Check 11 (golden AL simulated acceptance): PASS — throughput pins rejection_sample_method: synthetic, synthetic_acceptance_length: 2.49 at num_speculative_tokens: 3, matching golden_al_distribution/dsv4_mtp.yaml (deepseek-v4-pro, thinking_on, 3 → 2.49); eval-only runs use real target verification; no synthetic knobs on non-agentic configs.
➖ Check 12 (append-only): N/A — the new perf-changelog.yaml entry does not set append-only: true.

@Fangzhou-Ai

Copy link
Copy Markdown
Collaborator

Opened the matching upstream recipes PR so this InferenceX change can satisfy Check 3 (single-node vLLM recipe documented upstream):

vllm-project/recipes#824

It adds an opt-in Agentic pill plus copy-paste MI355X TP8 and DP-attention (vllm-router 0.1.14) commands from this PR's validated recipe. Check 3 still requires that recipes PR to merge before this one can merge.

中文:已开对应的上游 vLLM recipes PR,便于本 InferenceX 改动满足 Check 3(单节点 vLLM 配方需有上游文档):vllm-project/recipes#824 。其中新增了可选的 Agentic 开关,以及本 PR 已验证的 MI355X 纯 TP8 与 DP-attention(vllm-router 0.1.14)拷贝即用命令。Check 3 仍要求该 recipes PR 先合并,本 PR 才能合入。

@functionstackx

Copy link
Copy Markdown
Collaborator

/stage-results 32082871496

@github-actions

github-actions Bot commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

@functionstackx staged run 32082871496: https://inferencemax-app-git-staging-semianalysisai.vercel.app/inference?i_dates=2026-08-18~r32082871496

This run remains available across future /stage-results requests. Staging the same run ID again updates its staged data. Staging workflow

@functionstackx

Copy link
Copy Markdown
Collaborator

/reuse-sweep-run

@functionstackx

Copy link
Copy Markdown
Collaborator

/reuse-sweep-run

@functionstackx
functionstackx merged commit 9c3f669 into main Aug 19, 2026
27 checks passed
@functionstackx
functionstackx deleted the jiacao/dsv4-agentic-mtp-0809-nopatch branch August 19, 2026 00:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agentx AgentX benchmarks, recipes, and infrastructure AMD full-sweep-enabled

Projects

Development

Successfully merging this pull request may close these issues.

6 participants