Skip to content

Update Kimi K3 GB300 Agentx - #2811

Open
wzhao18 wants to merge 5 commits into
mainfrom
nv/k3-gb300-refresh
Open

Update Kimi K3 GB300 Agentx#2811
wzhao18 wants to merge 5 commits into
mainfrom
nv/k3-gb300-refresh

Conversation

@wzhao18

@wzhao18 wzhao18 commented Sep 3, 2026

Copy link
Copy Markdown
Collaborator

Note

Low Risk
Changes are benchmark/Slurm recipe and sweep metadata only; they affect how large GB300 jobs are launched and compared, not application runtime code paths in this repo.

Overview
Refreshes Kimi-K3 GB300 agentic-coding Slurm recipes and the matching nvidia-master sweep entries to track the measured global p90-ITL Pareto front.

All affected recipes move to vllm/vllm-openai:nightly-dev-arm64-cu13-3696c77, switch Dynamo routing from random to least-loaded, and align Mooncake with 160GB segments (dram-utilization 0.1775), default_kv_lease_ttl=60000, and richer MooncakeStoreConnector extras (compact_group_io, max_load_batch_keys). DSpark speculative JSON drops draft_sample_method: probabilistic across agg and disagg configs.

Disaggregated recipes share a tightened vLLM profile: explicit dcp-comm-backend: a2a, gpu-memory-utilization: 0.92, decode max-cudagraph-capture-size: 512, and removal of several decode-only limits (e.g. max-num-seqs, compilation-config, prefill max_num_batched_tokens). The 1p3d topology is corrected to 1 prefill / 3 decode workers (6 decode nodes); disagg-gb300-1p3d-dcp8-dcp8-dspark4 replaces a misnamed 1p1d DSpark-7 recipe, and a new disagg-gb300-1p3d-dcp8-dcp8-dspark7 recipe is added.

nvidia-master expands disagg concurrency grids (e.g. 1P1D 48–56, 1P2D 32–64), adds 1P3D points for DSpark-4 and DSpark-7 with synthetic acceptance lengths, trims the no-spec agg list (drops c74), and records the change in perf-changelog.yaml.

Reviewed by Cursor Bugbot for commit f6984c1. Bugbot is set up for automated code reviews on this repo. Configure here.

@github-actions

github-actions Bot commented Sep 3, 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 3, 2026

Copy link
Copy Markdown
Contributor

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

Additional findings (no inline location):

  • 🔴 perf-changelog.yaml — New entry uses pr-link: TBD, which is not a valid placeholder: the CI gate (utils/validate_perf_changelog.py PR_LINK_PLACEHOLDERS = {"XXX", ".../pull/XXX"}) only accepts "XXX" or the exact PR URL, so this fails validate_added_pr_link and the changelog gate blocks the PR merge, unlike prior entries that all use the accepted convention. Fix: use "XXX" as the placeholder (or the actual PR URL) so it matches PR_LINK_PLACEHOLDERS / the expected pull/ link.

    Extended reasoning...

    utils/validate_perf_changelog.py:validate_added_pr_link() checks link not in PR_LINK_PLACEHOLDERS and link != expected where PR_LINK_PLACEHOLDERS = {"XXX", "https://github.com/SemiAnalysisAI/InferenceX/pull/XXX"} (lines 25-26, 154-159). The new entry appended at perf-changelog.yaml:1082 sets pr-link: TBD, which matches neither placeholder nor the expected pull/<pr_number> URL, so validate_added_pr_link raises ChangelogValidationError('new PR entry must use ... or an XXX placeholder; found 'TBD''), causing the changelog CI gate to fail on this PR until the value is corrected.

    Verification: normal. The diff appends a new changelog entry ending in pr-link: TBD (perf-changelog.yaml diff hunk after line 6831). utils/validate_perf_changelog.py:205-206 iterates every appended entry and calls validate_added_pr_link(str(entry.get("pr-link") or ""), pr_number). In validate_added_pr_link (lines 144-160): on a PR run, link not in PR_LINK_PLACEHOLDERS and link != expected is true for…

@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

@github-actions

github-actions Bot commented Sep 3, 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 2 potential issues.

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 bce55d5. Configure here.

Comment thread perf-changelog.yaml

- config-keys:
- kimik3-fp4-gb300-dynamo-vllm-agentic-dspark-mooncake-dcp8-disagg
- kimik3-fp4-gb300-dynamo-vllm-agentic-dspark-mooncake-dcp8-agg

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Changelog key missing from master

High Severity

The new changelog entry lists kimik3-fp4-gb300-dynamo-vllm-agentic-dspark-mooncake-dcp8-agg, but that key is not in nvidia-master.yaml. process_changelog.py raises when a changelog key is missing from master configs, so sweep generation for this PR fails.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit bce55d5. Configure here.

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