Skip to content

[Klaud Cold] Update GB200 DSV41flash vLLM image and retune TP4/DEP2/DEP4 / [Klaud Cold] 更新 GB200 DSV41flash vLLM 镜像并调优 TP4/DEP2/DEP4 - #3687

Closed
functionstackx wants to merge 2 commits into
mainfrom
vllm/dsv41flash-gb200-image-bump
Closed

functionstackx wants to merge 2 commits into
mainfrom
vllm/dsv41flash-gb200-image-bump

Conversation

@functionstackx

Copy link
Copy Markdown
Collaborator

Description

Applies the B200 retune from #3686 to the GB200 DeepSeek-V4.1-Flash vLLM AgentX arm (dsv41flash-fp4-gb200-vllm-agentic-dspark).

Validation

  • infx/tests/srt_slurm and infx/tests/matrix pass (528 tests).
  • infx.matrix.generate test-config emits 12 points (TP4 ×7, DEP2 ×3, DEP4 ×2). Each matches exactly one zip variant, and every zip list has consistent lengths.
  • A GPU sweep through the full-sweep-fail-fast label is pending. This PR claims no performance results yet.

AI model disclosure

Related Issue

None. Companion to #3686 (B200).

Type of Change

  • Bug fix
  • New feature
  • Configuration change
  • Documentation update
  • Other (please describe)

Checklist

  • I have completed the AI model disclosure and kept it current
  • I have tested my changes locally
  • I have updated documentation if necessary
  • For every change that can affect benchmark performance and every recipe addition or modification, I have appended a new entry to the physical end of inferencex-e2e/perf-changelog.yaml and have not edited historical entries
  • If this PR can affect benchmark performance or adds or modifies a recipe, it carries exactly one primary sweep label (a maintainer applies it on fork PRs): full-sweep-fail-fast (recommended), full-sweep-enabled, or non-canary-full-sweep-enabled. Optional modifiers all-evals, evals-only, and agentx-fast require a primary label; the last two block reuse while applied.
  • Before merging via reuse, an authorized maintainer (OWNER/MEMBER/COLLABORATOR) has commented /use <run_id> (or the legacy /reuse-sweep-run) on this PR. Do this only once there is a final full sweep that is all green with evals passing, since after this comment the primary sweep label will no longer automatically kick off new sweeps. Remove and re-add the primary sweep label to force a new sweep.
中文

改动说明

将 #3686 中 B200 的调优移植到 GB200 DeepSeek-V4.1-Flash vLLM AgentX 配置(dsv41flash-fp4-gb200-vllm-agentic-dspark)。

验证

  • infx/tests/srt_slurm 和 infx/tests/matrix 通过(528 个测试)。
  • infx.matrix.generate test-config 生成 12 个点(TP4 ×7、DEP2 ×3、DEP4 ×2),每个点唯一匹配一个 zip variant,且各 zip 列表长度一致。
  • 通过 full-sweep-fail-fast label 触发 GPU sweep,结果待出,暂不声明性能结果。

AI 模型使用说明

关联 issue

无。与 #3686(B200)配套。

改动类型

配置变更、文档更新。

🤖 Generated with Claude Code

Mirror the B200 retune from #3686 on GB200: bump to
nightly-dev-arm64-cu130-ac9126e58aa7 with FlashInfer autotuning, run TP4
at concurrency 1-128, and replace TP2 with DEP2 (8-32) and DEP4 (64-128)
behind a consistent-hash vLLM Router.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@github-actions

github-actions Bot commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

Thanks for the contribution!

  • Review: If this PR changes files owned by someone other than a repository admin or @SemiAnalysisAI/core, ask one eligible CODEOWNER to complete the latest PR_REVIEW_CHECKLIST.md before contacting a core maintainer on Slack. Follow the template exactly, including As a PR reviewer and CODEOWNER, I have reviewed this and have, so sign-off verification triggers.
  • PR verification: Sweeps run only when the PR appends an inferencex-e2e/perf-changelog.yaml entry and carries exactly one primary label: full-sweep-fail-fast (strongly recommended; canary plus per-matrix fail-fast), full-sweep-enabled (canary; matrix jobs continue after a failure), or non-canary-full-sweep-enabled (no canary or fail-fast). The modifiers all-evals, evals-only, and agentx-fast require a primary label. On fork PRs, a maintainer applies the label. See sweep labels and reuse.
  • After merging: PR authors must ensure all GitHub Actions jobs pass. Transient failures often pass on rerun; see how to rerun failed jobs.
中文

感谢你的贡献!

  • **审阅:**如果 PR 修改的文件归属于仓库管理员及 @SemiAnalysisAI/core 之外的 CODEOWNER,请先联系一位有资格的 CODEOWNER 填写最新的 PR_REVIEW_CHECKLIST.md,再通过 Slack 联系核心维护者。必须严格遵循模板,并保留 As a PR reviewer and CODEOWNER, I have reviewed this and have,才能触发签核验证。
  • **PR 验证:**只有当 PR 在 inferencex-e2e/perf-changelog.yaml 末尾追加了条目,并且恰好带有一个主标签时,才会运行扫描:full-sweep-fail-fast(强烈推荐;canary 加逐矩阵 fail-fast)、full-sweep-enabled(有 canary;矩阵任务在失败后继续运行)或 non-canary-full-sweep-enabled(无 canary,也无 fail-fast)。修饰标签 all-evals、evals-only 和 agentx-fast 必须与主标签一起使用。fork PR 的标签由维护者添加。参见扫描标签与复用。
  • **合并后:**PR 作者必须确保所有 GitHub Actions 任务通过。临时性失败通常可以通过重新运行恢复;参见重新运行失败任务的说明。

@functionstackx functionstackx added agentx AgentX benchmarks, recipes, and infrastructure full-sweep-fail-fast Full sweep with canary gate; first failure cancels the rest of that matrix (recommended) labels Oct 2, 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.

Findings marked 🟡 are optional suggestions and need no follow-up push.

Comment thread inferencex-e2e/perf-changelog.yaml Outdated
description:
- "Update the GB200 DeepSeek-V4.1-Flash vLLM AgentX image from nightly cd10ed6f to nightly-dev-arm64-cu130-ac9126e58aa7 and enable FlashInfer autotuning."
- "Run TP4 at concurrency 1-128 and replace TP2 with DEP2 (TP1 x DP2 + EP2, DeepGEMM MegaMoE) at concurrency 8-32 and DEP4 (TP1 x DP4 + EP4, MegaMoE) at concurrency 64-128, both behind a consistent-hash vLLM Router. All points set gpu-memory-utilization 0.97."
pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/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.

🔴 This new changelog entry's pr-link uses pull/TBD, which will fail CI's perf-changelog validation for every reviewer/CI run on this PR. validate_perf_changelog.py's validate_added_pr_link only accepts the literal XXX placeholder (or the real pull/<pr_number>) via PR_LINK_PLACEHOLDERS/CANONICAL_PR_LINK; pull/TBD matches neither, so it raises ChangelogValidationError("new PR entry must use ... or an XXX placeholder; found ..."). Fix: use https://github.com/SemiAnalysisAI/InferenceX/pull/XXX (the placeholder other entries use, e.g. line 5598) until the real PR number is known.

Why this was flagged

The entry appended at inferencex-e2e/perf-changelog.yaml:9286 sets pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/TBD. validate_added_pr_link in inferencex-e2e/infx/workflows/validate_perf_changelog.py:139-150 checks the link against PR_LINK_PLACEHOLDERS = {"XXX", ".../pull/XXX"} and CANONICAL_PR_LINK (requires pull/\d+); TBD satisfies neither, so validation raises ChangelogValidationError. On the base branch this same validator is satisfied by using the accepted pull/XXX placeholder (precedent at line 5598); this PR substitutes an unrecognized token instead, breaking the automated changelog-append check that gates merge.

Verification: CORRECTION to the candidate's trigger: this does NOT fail "every reviewer/CI run on this PR." The only pull_request-triggered validator never calls validate_added_pr_link, and matrix/validation.py:999 types pr_link as a bare str with no format check, so the PR check-changelog step PASSES with pull/TBD. validate_added_pr_link is only reached at merge time, via canonicalize_appended_links -> compare_entries (prepare_perf_changelog_merge.py:88,519, calling validate_added_pr_link at line 192-193).

Comment on lines +8445 to +8449
- { tp: 4, kv-offloading: none, spec-decoding: mtp, conc-list: [1, 4, 8, 16, 32, 64, 128], srt-recipe: benchmarks/single_node/srt-slurm-recipes/dsv41flash/vllm/gb200-fp4-mtp/agentic.yaml }
# DEP2 is native TP1 x DP2 + EP2 with MegaMoE behind a consistent-hash vLLM Router.
- { tp: 2, ep: 2, dp-attn: true, kv-offloading: none, spec-decoding: mtp, conc-list: [8, 16, 32], router: { name: vllm-router, version: "0.1.14" }, srt-recipe: benchmarks/single_node/srt-slurm-recipes/dsv41flash/vllm/gb200-fp4-mtp/agentic.yaml }
# DEP4 is native TP1 x DP4 + EP4 with MegaMoE behind the same router.
- { tp: 4, ep: 4, dp-attn: true, kv-offloading: none, spec-decoding: mtp, conc-list: [64, 128], router: { name: vllm-router, version: "0.1.14" }, srt-recipe: benchmarks/single_node/srt-slurm-recipes/dsv41flash/vllm/gb200-fp4-mtp/agentic.yaml }

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.

🟡 (optional) DEP4 (tp:4, ep:4, dp-attn:true, conc-list [64,128]) at nvidia-master.yaml:8449 shares tp and concurrency with the TP4 arm at :8445, so both get the identical exp-name dsv41flash_tp4_conc64_kvnone_spec-mtp for two different deployments. generate.py's _agentic_entries exp-name formula (infx/matrix/generate.py:1188-1192) encodes model, tp, conc, kv-offload and spec-decoding but never ep/dp-attn. This breaks the uniqueness convention documented at nvidia-master.yaml:1544 and makes filter_exp_names raise 'matched multiple rows' for that name. Fix: fold ep/dp-attn into exp-name for any arm that can share tp+conc with another.

Why this was flagged

Trigger: generating the agentic matrix for dsv41flash-fp4-gb200-vllm-agentic-dspark (full-sweep, generate_config_matrix, or test-config --exp-names) via infx/matrix/generate.py's _agentic_entries. The TP4 row at nvidia-master.yaml:8445 (tp:4, conc-list [1,4,8,16,32,64,128]) and the new DEP4 row at :8449 (tp:4, ep:4, dp-attn:true, conc-list [64,128]) both produce exp-name dsv41flash_tp4_conc64_kvnone_spec-mtp (and the conc128 variant) because generate.py:1188-1192 omits ep and dp-attn. On base no two rows for this key share tp+conc: GB300's DEP2 sibling uses tp:2 and the sglang EP arms use a different tp than their TP arm, so exp-names were unique; this is the first collision. filter_exp_names then raises 'Experiment name(s) matched multiple rows' for that name, blocking targeted selection, and no test in infx/tests/matrix checks exp-name uniqueness across search-space rows, so the claimed 528 passing tests do not catch it.

Verification: nit. The exp-name collision is real and reachable, but its serious consequences are prevented downstream, so this is a convention/tooling issue, not a correctness regression. generate.py:1188-1192 builds the exp-name from tp, conc, kv-offload and spec-decoding, omitting ep and dp-attn, so TP4 (:8445) and DEP4 (:8449) both emit dsv41flash_tp4_conc64_kvnone_spec-mtp, violating the uniqueness convention at :1544 and making filter_exp_names raise "matched multiple rows".

@github-actions

github-actions Bot commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

@Oseltamivir
Oseltamivir deleted the vllm/dsv41flash-gb200-image-bump branch October 18, 2026 08:44
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 full-sweep-fail-fast Full sweep with canary gate; first failure cancels the rest of that matrix (recommended)

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant