Skip to content

fix(agentx): refresh GB200 Dynamo-vLLM with complete DP metrics - #2822

Open
cquil11 wants to merge 5 commits into
mainfrom
fix/gb200-dsv4-metrics-refresh
Open

fix(agentx): refresh GB200 Dynamo-vLLM with complete DP metrics#2822
cquil11 wants to merge 5 commits into
mainfrom
fix/gb200-dsv4-metrics-refresh

Conversation

@cquil11

@cquil11 cquil11 commented Sep 4, 2026

Copy link
Copy Markdown
Collaborator

Summary

Refresh the current GB200 DeepSeek-V4 Dynamo-vLLM disaggregated AgentX curve with offloading disabled, replacing the incomplete engine metrics in run 31743991710 (for example, point 439846).

  • Pin the affected launcher path to SemiAnalysisAI/srt-slurm@bde8ca8, based on NVIDIA upstream ba37b7c. Custom Dynamo-vLLM benchmarks now discover every node-local metrics endpoint, including DP4–7 on the second node of each DEP8 instance. Control endpoints and request routing are unchanged.
  • Keep the existing model image, engine parameters, golden MTP acceptance, topology, and concurrency sweep. Explicitly record kv-offloading: none and require native KV-cache metrics in both recipes.
  • Allow up to twelve hours for the 2P/1D allocation: historical c512 completed its one-hour profile after a six-hour warmup but hit the eight-hour Slurm limit during result export. Measurement settings are unchanged.
  • Use the existing GB200 AgentX 900,000 ms client TCP timeout. The first c512 attempt hit the default 30-second socket deadline during the warmup upload burst, before any engine failure.
  • Enable PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True on prefill only. Two full-sweep jobs failed allocating ~978 MiB activation tensors with ~2.65 GiB reserved but unused; decode allocation, KV budgets, and batching stay unchanged. The pinned image passed a GB200 allocation + sleep/wake compatibility check. Full-sweep confirmation is still required.
  • Append one refresh changelog entry. Run the official full sweep without agentx-fast.

Validation

  • Exact-key generation: ten points, 1P/1D and 2P/1D DEP8, 4/6 physical nodes, 3600-second profiles, offloading disabled.
  • Bash syntax and both recipe dry-runs passed.
  • The srt-slurm metrics-discovery patch preserves generated worker commands and environment. The subsequent prefill-only allocator change is the only worker-environment change; both recipes pass schema loading and resolved before/after comparison.
  • srt-slurm custom-benchmark tests: 14 passed, including backend-aware discovery and unchanged control endpoints.
  • Live sweep, per-instance DP0–7 artifact verification, and staging verification are in progress. Results will be added here once verified.

@github-actions

github-actions Bot commented Sep 4, 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 关于重新运行失败任务的文档

@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Comment thread perf-changelog.yaml Outdated
Comment on lines +6876 to +6878
description:
- "Refresh: we're refreshing this run with the correct metrics."
pr-link: TBD

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 entry uses pr-link: TBD, but validate_perf_changelog.py's validate_added_pr_link() only accepts the literal XXX or https://github.com/SemiAnalysisAI/InferenceX/pull/XXX as placeholders (PR_LINK_PLACEHOLDERS set) plus the exact expected PR URL — TBD matches neither. Fix: use pr-link: XXX (or the real PR URL) so the changelog gate does not fail this PR.

Extended reasoning...

utils/validate_perf_changelog.py validate_added_pr_link(link, pr_number) is called for every entry added versus base (line 206). During the PR run pr_number is not None, so it checks link not in PR_LINK_PLACEHOLDERS and link != expected; PR_LINK_PLACEHOLDERS = {'XXX', '.../pull/XXX'} (lines 24-27) does not contain 'TBD', so the check raises ChangelogValidationError('new PR entry must use .../pull/ or an XXX placeholder; found 'TBD''), failing the changelog CI gate for this otherwise-valid appended entry.

Verification: normal (mechanism corrected): The defect is real and reachable, but NOT via the path the candidate names. perf-changelog.yaml:6878 sets pr-link: TBD. validate_added_pr_link (utils/validate_perf_changelog.py:144-160) accepts only PR_LINK_PLACEHOLDERS = {"XXX", "https://github.com/SemiAnalysisAI/InferenceX/pull/XXX"} (lines 24-27) or the exact expected .../pull/<pr_number>; TBD is…

Signed-off-by: Cam Quilici <cjquilici@gmail.com>
@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit b742758. Configure here.

decode_environment: *worker_environment
prefill_environment:
<<: *worker_environment
PYTORCH_CUDA_ALLOC_CONF: "expandable_segments:True"

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

NixlConnector conflicts with expandable segments

High Severity

Prefill now sets PYTORCH_CUDA_ALLOC_CONF to expandable_segments:True while both workers still use NixlConnector for KV transfer. vLLM treats that pairing as incompatible because expandable CUDA VMM can remap pages that NIXL already registered for RDMA, so prefill either fails at startup or the disagg KV path can corrupt or stall.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit b742758. Configure here.

@github-actions

github-actions Bot commented Sep 5, 2026

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.

1 participant