Skip to content

[K3.1-Pro] vLLM B300: low-latency decode and SGLang draft depths / [K3.1-Pro] vLLM B300:启用低延迟 decode 并对齐 SGLang 草稿深度 - #4833

Merged
cquil11 merged 9 commits into
SemiAnalysisAI:mainfrom
ZJY0516:kimik31-vllm-b300-latency-decode
Nov 6, 2026
Merged

cquil11 merged 9 commits into
SemiAnalysisAI:mainfrom
ZJY0516:kimik31-vllm-b300-latency-decode

Conversation

@ZJY0516

@ZJY0516 ZJY0516 commented Nov 5, 2026 •

Copy link
Copy Markdown
Collaborator

Tunes kimik3.1-fp4-b300-vllm-agentic-dspark (Kimi-K3.1-Pro, B300, vLLM, DSpark):

  • Low-latency decode: --additional-config '{"decode_backend":"latency_specialized"}' at every point (the vLLM K3.1 recipe's fused CuTe DSL decode path).
  • c1-c2 at plain TP8 instead of TP8 x DCP8; c4 and up keep DCP8.
  • Draft depths update: DSpark 7 tokens through c8, 6 at c16, 5 at c24-c40, 4 from c48. Each decode graph cap covers max-num-seqs x (1 + drafts).
  • Startup timeout: VLLM_ENGINE_READY_TIMEOUT_S and the health check go to 7200 s, because the specialized path adds an autotune pass.

Local A/B on GB300 (TP8 over two trays, 20 min per point, previous draft depths):

conc ITL p50 (main / this PR) interactivity p50 (main / this PR)
1 5.32 / 2.77 ms 188 / 361 tok/s
32 17.86 / 15.16 ms 56 / 66 tok/s
70 37.09 / 33.09 ms 27 / 30 tok/s

All 11 points started and finished with the previous draft depths. The new draft depths are still being checked locally (c8, c56, c70).

中文

调整 kimik3.1-fp4-b300-vllm-agentic-dspark(Kimi-K3.1-Pro,B300,vLLM,DSpark):

  • **低延迟 decode:**所有点启用 --additional-config '{"decode_backend":"latency_specialized"}',即 vLLM K3.1 recipe 的融合 CuTe DSL decode 路径。
  • c1-c2 改用纯 TP8,不再用 TP8 x DCP8;c4 及以上保留 DCP8。
  • **草稿深度与 SGLang recipe 对齐:**DSpark 在 c8 及以下为 7 个 token,c16 为 6,c24-c40 为 5,c48 起为 4。每个 decode graph 上限覆盖 max-num-seqs x (1 + drafts)。
  • **启动超时:**specialized 路径多一轮 autotune,VLLM_ENGINE_READY_TIMEOUT_S 和 health check 提高到 7200 秒。

本地 GB300 A/B(两个 tray 组成 TP8,每点 20 分钟,旧草稿深度)见上表:c1 的 ITL p50 从 5.32 ms 降到 2.77 ms,c32 从 17.86 ms 降到 15.16 ms,c70 从 37.09 ms 降到 33.09 ms。

旧草稿深度下 11 个点都能正常启动并跑完;新草稿深度仍在本地验证(c8、c56、c70)。

🤖 Generated with Claude Code

https://claude.ai/code/session_0188HSzNcNLyDbocjggjUSvq

ZJY0516 and others added 3 commits November 5, 2026 10:04
Turn on decode_backend=latency_specialized at every point, run c1-c2 at
plain TP8 instead of TP8 x DCP8, and raise the c1 and c70 graph caps to
16 and 432 so the full decode step is captured.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0188HSzNcNLyDbocjggjUSvq
…7200 s

The latency_specialized decode path adds a second FlashInfer autotune pass at
startup; on a local GB300 run it took ~40 min to become ready.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0188HSzNcNLyDbocjggjUSvq
DSpark now drafts 7 tokens through c8, 6 at c16, 5 at c24-c40 and 4 from c48,
the same draft counts as the SGLang DFLASH recipe, and each decode graph cap
covers max-num-seqs x (1 + drafts).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0188HSzNcNLyDbocjggjUSvq

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

Claude Code Review

This pull request is from a fork — automated review is disabled. A repository maintainer can comment @claude review to run a one-time review.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 5, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-05T16:12:13.490626Z 55582cd PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector

Copy link
Copy Markdown

💡 Codex Review


P1 Badge Use a supported changelog link placeholder

When maintainers run the required reuse merge, TBD is not one of PR_LINK_PLACEHOLDERS (XXX or the /pull/XXX URL): prepare_perf_changelog_merge.canonicalize_appended_links, which merge_with_reuse invokes, raises unexpected pr-link 'TBD'. This non-retirement benchmark change therefore cannot complete the mandated merge flow until this is replaced by a supported placeholder or the actual PR URL.

AGENTS.md reference: AGENTS.md:L89-L89


# Admission is 2x CONC. DSpark drafts match the SGLang recipe's DFLASH drafts: 7 through c8,
# 6 at c16, 5 at c24-c40 and 4 from c48. The largest decode graph covers max-num-seqs x (1 + drafts),
# rounded up to a default capture size; throughput runs replace block rejection with the
# golden acceptance length. Plain TP8 at c1-c2, where the KV fits on GPU and DCP's decode
# collectives cost most; DCP8 from c4 for ~7x the KV tokens.

P1 Badge Remove the override-section header comment

These lines are a header for the complete override section and restate admission, draft counts, graph sizing, and the TP/DCP topology rather than briefly explaining one specific setting. The repository's mandatory comment convention explicitly forbids headers describing recipes, topologies, or overrides, so remove this summary and retain only value-specific rationale beside the affected keys.

AGENTS.md reference: AGENTS.md:L54-L58

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

…ency-decode

# Conflicts:
#	inferencex-e2e/perf-changelog.yaml
@cquil11 cquil11 added the non-canary-full-sweep-enabled Run the full sweep without the canary gate (full search space, no trim) label Nov 5, 2026
…ency-decode

# Conflicts:
#	inferencex-e2e/perf-changelog.yaml
@cquil11 cquil11 added non-canary-full-sweep-enabled Run the full sweep without the canary gate (full search space, no trim) and removed non-canary-full-sweep-enabled Run the full sweep without the canary gate (full search space, no trim) labels Nov 5, 2026
@github-actions

github-actions Bot commented Nov 5, 2026

Copy link
Copy Markdown
Contributor

Dispatched trusted sweep run for approved external revision 5c315233e4c09e69ec1607a4f90170272b5e523c.
New commits are not trusted automatically; remove and re-add the primary sweep label to approve a new SHA.

已为获批的外部提交 5c315233e4c09e69ec1607a4f90170272b5e523c 调度trusted sweep run。
后续新提交不会自动获得信任;如需批准新的 SHA,请移除并重新添加主扫描标签。

ZJY0516 and others added 2 commits November 6, 2026 02:16
Resolve the perf-changelog conflict by keeping main's new entries and appending the B300 vLLM entry last.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0188HSzNcNLyDbocjggjUSvq
The kimi-k31 image launches the wide (65-320 row) MoE experts on 152 CTAs that must
all be co-resident; a B300 has 148 SMs, so every point whose decode graphs exceed 64
rows (c8-c70) failed engine init. Keep latency_specialized where graphs stay within 64
rows and run the stock decode above.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0188HSzNcNLyDbocjggjUSvq
@ZJY0516 ZJY0516 added non-canary-full-sweep-enabled Run the full sweep without the canary gate (full search space, no trim) and removed non-canary-full-sweep-enabled Run the full sweep without the canary gate (full search space, no trim) labels Nov 6, 2026
@github-actions

github-actions Bot commented Nov 6, 2026

Copy link
Copy Markdown
Contributor

Dispatched trusted sweep run for approved external revision 947a5e905f231580d40cd602dae7c8645745ee0e.
New commits are not trusted automatically; remove and re-add the primary sweep label to approve a new SHA.

已为获批的外部提交 947a5e905f231580d40cd602dae7c8645745ee0e 调度trusted sweep run。
后续新提交不会自动获得信任;如需批准新的 SHA,请移除并重新添加主扫描标签。

@cquil11

cquil11 commented Nov 6, 2026

Copy link
Copy Markdown
Collaborator

/use 42150239586

@github-actions

github-actions Bot commented Nov 6, 2026 •

Copy link
Copy Markdown
Contributor

@cquil11 staged run 42150239586.

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

@cquil11

cquil11 commented Nov 6, 2026

Copy link
Copy Markdown
Collaborator

/use 42150239586

@github-actions

github-actions Bot commented Nov 6, 2026 •

Copy link
Copy Markdown
Contributor

@cquil11 staged run 42150239586.

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

…ency-decode

# Conflicts:
#	inferencex-e2e/perf-changelog.yaml
@cquil11
cquil11 merged commit af33fcb into SemiAnalysisAI:main Nov 6, 2026
29 checks passed
@github-actions

github-actions Bot commented Nov 6, 2026

Copy link
Copy Markdown
Contributor

Ingest report — ✅ Results ingested into the production database.

Ingest workflow · Merge Ingest run · Benchmark source run

Category new duplicate skipped unmapped failed
benchmark 11 0 12 0 0
eval 1 1 1 0 0
trace 11 0 0 0 0
power 11 0 0 0 0

benchmarkFiles 12, rawBenchmarkRows 23, coveredByPerJobFiles 12, purgedPoints 0, failedRunRows 0, runStatsNew 0, runStatsDuplicate 0, evalSamplesNew 1319, gpuMetricSamplesNew 554880, powerPublicationPoints 11, changelogEntriesWritten 1

Counts cover only this run. Rows: benchmark_results, eval_results, agentic rows linked to a trace, gpu_metrics series. This comment updates if the ingest is rerun.

中文

Ingest 报告 — ✅ 结果已写入 production 数据库。

上表仅统计本次运行写入的数据,各行单位依次为 benchmark_results 行、eval_results 行、已关联 trace 的 agentic 行和 gpu_metrics 序列。重新运行 ingest 时本评论会原地更新。

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

Labels

non-canary-full-sweep-enabled Run the full sweep without the canary gate (full search space, no trim)

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants