Skip to content

[AgentX] vLLM DeepSeek-V4 GB300 disagg#2269

Open
ivanium wants to merge 7 commits into
mainfrom
agentx/dsv4-gb300-pd
Open

[AgentX] vLLM DeepSeek-V4 GB300 disagg#2269
ivanium wants to merge 7 commits into
mainfrom
agentx/dsv4-gb300-pd

Conversation

@ivanium

@ivanium ivanium commented Jul 18, 2026

Copy link
Copy Markdown
Collaborator

No description provided.

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

@ivanium
ivanium marked this pull request as ready for review July 18, 2026 09:13
@ivanium
ivanium requested a review from a team July 18, 2026 09:13
@claude

claude Bot commented Jul 18, 2026

Copy link
Copy Markdown
Contributor

Claude finished @ivanium's task in 6m 39s —— View job


PR Review — [AgentX] vLLM DeepSeek-V4 GB300 disagg

  • Gather context (diff vs origin/main, changed files, CI status)
  • Review new GB300 recipes (agg TP4/TP8, disagg 1P1D/2P1D/3P1D) for consistency
  • Validate master config + perf-changelog rules (entry position, image, model prefix)
  • Review launcher repin and matrix-logic changes
  • Post inline comments

Summary

No blocking issues; 3 warnings posted inline:

  1. perf-changelog.yaml:4946 — the new entry's pr-link points to [AgentX] vLLM DeepSeek-V4 GB200 disagg #2260 (the GB200 disagg PR); it should be [AgentX] vLLM DeepSeek-V4 GB300 disagg #2269. Suggestion included.
  2. runners/launch_gb300-nv.sh:174 — the srt-slurm repin (cquil11 fork → NVIDIA v1.0.27 + 2 cherry-picks) also launches the existing disagg-gb300-1p6d/disagg-gb300-4p1d recipes, which still pin dynamo.wheel rather than dynamo.hash. Please confirm v1.0.27 retains DynamoConfig.wheel and the benchmark-stage srun_options propagation the old fork pin carried, or those existing sweeps break.
  3. utils/matrix_logic/generate_sweep_configs.py:29 — dropping MAX_MULTINODE_AGENTIC_CONCURRENCIES_PER_ALLOCATION from 4 to 1 is a global change: every multinode agentic config (including other teams' SGLang GB300 sweeps) now gets one full server deployment per concurrency point. If intended, it should be documented in the changelog entry.

Everything else checked out: the changelog entry is appended at the end of the file; master config and changelog were updated together; the image is a public Docker Hub reference; model-prefix: dsv4 and the agg num-worker: 0 decode block match established GB200/SGLang precedent; the five recipes are internally consistent (node/GPU/DP math verified pairwise); IS_MULTINODE/EP settings follow existing patterns; and the launcher's SHA pinning with parent-depth fetches for the cherry-picks is sound. Matrix-logic tests were updated to match the allocation change and CI is currently green (I couldn't run pytest locally due to sandbox permissions, but the config-parsing pytest job passed).

Comment thread perf-changelog.yaml Outdated
- "Add GB300 Dynamo-vLLM AgentX aggregate TP4/TP8 low-latency sweeps at conc [1,4,8,16]."
- "Add NVIDIA/srt-slurm#229-derived GB300 P/D topologies: 1P/1D DEP8/DEP8 at c512, 2P/1D DEP8/DEP8 at c1280, and 3P/1D DEP8/DEP16 at c1536."
- "Use vllm/vllm-openai:nightly-dev-arm64-cu13.0.1-c188b96 for all new recipes."
pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/2260

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.

🟡 WARNING: Wrong PR link — this points to #2260, which is the GB200 disagg PR. This entry is for the GB300 recipes added in #2269.
Why it matters: The changelog is the audit trail tying config changes to PRs; a wrong link sends anyone tracing a perf change to the wrong diff.
Fix:

Suggested change
pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/2260
pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/2269

Comment on lines +174 to +175
SRT_SLURM_AGENTIC_SHA="f6eb42aee4664207dcf2ec601e3bd57bd527efd6"
git clone --branch v1.0.27 --depth 1 https://github.com/NVIDIA/srt-slurm.git "$SRT_REPO_DIR"

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.

🟡 WARNING: This repin doesn't only affect the new recipes — this same elif branch launches the existing GB300 vLLM agentic recipes disagg-gb300-1p6d-dep4-tp4-agentic.yaml and disagg-gb300-4p1d-dep4-dep8-24-c4096-agentic.yaml (still active in configs/nvidia-master.yaml:8263-8296), which pin dynamo.wheel: "1.2.0.dev20260426" rather than dynamo.hash.
Why it matters: The old pin (cquil11 fork @ 6e34b8b) carried DynamoConfig.wheel plus the benchmark-stage srun_options propagation fix (needed for container-remap-root to reach the agentic_srt.sh srun). If NVIDIA/srt-slurm v1.0.27 + the two cherry-picks dropped either — e.g. wheel was replaced by hash instead of coexisting — the existing 1p6d/4p1d sweeps will fail at recipe parse or benchmark launch. I couldn't verify the v1.0.27 schema from this environment.
Fix: Please confirm v1.0.27 still supports DynamoConfig.wheel and propagates srun_options into the benchmark stage (or migrate the two older recipes to dynamo.hash in this PR and note it in the changelog).

MAX_MULTINODE_AGENTIC_CONCURRENCIES_PER_ALLOCATION = 4
# One task/Slurm allocation per concurrency gives each benchmark point a
# fresh server deployment, matching single-node agentic sweep isolation.
MAX_MULTINODE_AGENTIC_CONCURRENCIES_PER_ALLOCATION = 1

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.

🟡 WARNING: Changing MAX_MULTINODE_AGENTIC_CONCURRENCIES_PER_ALLOCATION from 4 to 1 is global — it applies to every multinode agentic config, not just the new GB300 vLLM ones. For example, dsv4-fp4-gb300-dynamo-sglang-agentic-agg (conc-list [1, 4, 8, 16]) now generates 4 Slurm allocations with 4 full server deployments instead of 1.
Why it matters: Each extra allocation repeats queueing, container start, model load, and warmup for very large multi-node deployments, which meaningfully increases full-sweep wall-clock and cluster load for configs owned by other teams. The perf-changelog entry doesn't mention this behavioral change either.
Fix: If per-concurrency isolation for all multinode agentic sweeps is intended, add a line to the perf-changelog.yaml entry documenting it. Otherwise, keep the constant at 4 and drive isolation per-config (or scope the value to the configs that need it).

MIN_EVAL_CONC = 16
# Bound how many multinode agentic conc points share one server allocation.
MAX_MULTINODE_AGENTIC_CONCURRENCIES_PER_ALLOCATION = 4
# One task/Slurm allocation per concurrency gives each benchmark point a

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.

📊 Line Count Report

  • Total Lines: 1336
  • Base Lines: 1334
  • Change: +2 lines 📈

@ivanium
ivanium force-pushed the agentx/dsv4-gb300-pd branch from cb438b7 to 2d5de20 Compare July 18, 2026 09:26
Comment thread perf-changelog.yaml Outdated
Comment on lines +4936 to +4946

- config-keys:
- dsv4-fp4-gb300-dynamo-vllm-agentic-agg
- dsv4-fp4-gb300-dynamo-vllm-agentic-1p1d-dep8-dep8
- dsv4-fp4-gb300-dynamo-vllm-agentic-2p1d-dep8-dep8
- dsv4-fp4-gb300-dynamo-vllm-agentic-3p1d-dep8-dep16
description:
- "Add GB300 Dynamo-vLLM AgentX aggregate TP4/TP8 low-latency sweeps at conc [1,4,8,16]."
- "Add NVIDIA/srt-slurm#229-derived GB300 P/D topologies: 1P/1D DEP8/DEP8 at c512, 2P/1D DEP8/DEP8 at c1280, and 3P/1D DEP8/DEP16 at c1536."
- "Use vllm/vllm-openai:nightly-dev-arm64-cu13.0.1-c188b96 for all new recipes."
pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/2260

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.

🟡 The new perf-changelog.yaml entry added by this PR sets pr-link to #2260, but this PR is #2269 — likely a copy-paste leftover from drafting before the PR number was assigned. Every other entry in the file self-references the PR that introduced it, so this one line should be corrected to point at #2269.

Extended reasoning...

The final entry appended to perf-changelog.yaml by this PR (lines 4936-4946) documents the new dsv4-fp4-gb300-dynamo-vllm-agentic-* config keys this PR adds, but its pr-link field reads:

pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/2260

The PR metadata confirms this change is landing as PR #2269, not #2260. Scrolling up the same file shows the established convention: every existing entry's pr-link points at the PR that introduced that entry (e.g. the MiniMax M3 entry a few lines above links to pull/2182, matching commit d85fa13 which is PR #2182; the Qwen3.5 entry links to pull/2094, matching PR #2094). There is no other reference to #2260 anywhere in this diff, and the entry's description text ("Add GB300 Dynamo-vLLM AgentX aggregate TP4/TP8 low-latency sweeps...") matches exactly the recipes and nvidia-master.yaml keys this PR introduces — so this isn't a deliberate cross-reference to a different PR, it's a stale/guessed PR number left over from before #2269 was assigned.

Step-by-step proof:

  1. PR metadata states this PR's number is 2269.
  2. The diff adds a new perf-changelog.yaml entry with config-keys exactly matching the four dsv4-fp4-gb300-dynamo-vllm-agentic-* keys added to configs/nvidia-master.yaml in this same diff.
  3. That new entry's pr-link is .../pull/2260, i.e. 9 less than 2269.
  4. Every other entry in the file (visible in the surrounding context, e.g. #1800, #2241, #2094, #2182) self-references its own introducing PR, confirming the file's convention.
  5. Therefore pull/2260 is inconsistent with both the convention and the actual PR number, and should read pull/2269.

Impact: This is purely a documentation/traceability field in a changelog — it has no effect on config generation, sweep execution, or any runtime behavior. Anyone consulting the changelog to trace where the GB300 AgentX recipes originated would be sent to the wrong (and unrelated) PR #2260. A one-line fix (22602269) resolves it; not blocking for merge.

tensor-parallel-size: 4
pipeline-parallel-size: 1
enable-cumem-allocator: true
numa-bind: true

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.

need numa-bind-nodes: [0, 0, 1, 1] as well

@github-actions

Copy link
Copy Markdown
Contributor

ivanium added a commit that referenced this pull request Jul 18, 2026
中文:将性能变更日志中的 PR 链接更新为 #2269
@ivanium
ivanium force-pushed the agentx/dsv4-gb300-pd branch from d08a708 to b0c8987 Compare July 18, 2026 19:30
@github-actions

Copy link
Copy Markdown
Contributor

ivanium added a commit that referenced this pull request Jul 18, 2026
中文:将性能变更日志中的 PR 链接更新为 #2269
@ivanium
ivanium force-pushed the agentx/dsv4-gb300-pd branch from b0c8987 to fc9b778 Compare July 18, 2026 21:47
@github-actions

Copy link
Copy Markdown
Contributor

@github-actions

Copy link
Copy Markdown
Contributor

@ivanium
ivanium force-pushed the agentx/dsv4-gb300-pd branch from fc9b778 to 351db64 Compare July 18, 2026 22:48
@github-actions

Copy link
Copy Markdown
Contributor

ivanium added 5 commits July 19, 2026 04:08
Backport per-node Dynamo health counting and provide explicit GB300 NUMA mappings for aggregate workers.

中文:回移按节点启动模式下的 Dynamo 健康检查计数修复,并为 GB300 聚合式工作进程显式配置 NUMA 映射。
中文:将性能变更日志中的 PR 链接更新为 #2269
@ivanium
ivanium force-pushed the agentx/dsv4-gb300-pd branch from 89c52b8 to 870df10 Compare July 19, 2026 04:16
@github-actions

Copy link
Copy Markdown
Contributor

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

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

2 participants