Skip to content

[Klaud Cold] kimik2.5-fp4-b300-vllm: v0.26.0 image, extend conc to 512, add DEP4 arm / 升级 B300 镜像至 v0.26.0,扩展并发,新增 DEP4 - #2442

Open
xinli-sw wants to merge 11 commits into
mainfrom
feat/kimik2.5-fp4-b300-vllm-v0.26.0
Open

[Klaud Cold] kimik2.5-fp4-b300-vllm: v0.26.0 image, extend conc to 512, add DEP4 arm / 升级 B300 镜像至 v0.26.0,扩展并发,新增 DEP4#2442
xinli-sw wants to merge 11 commits into
mainfrom
feat/kimik2.5-fp4-b300-vllm-v0.26.0

Conversation

@xinli-sw

@xinli-sw xinli-sw commented Aug 1, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Image: v0.22.0vllm/vllm-openai:v0.26.0
  • TP arms: TP8 and TP4 extended to conc-end: 512
  • New DEP4 arm: tp: 4, ep: 4, dp-attn: true, conc-start: 128, conc-end: 512
  • Bench script (kimik2.5_fp4_b200.sh): DP_ATTENTION handling added — switches to --data-parallel-size, adds --enable-expert-parallel and --prefill-schedule-interval 4 in DEP4 mode

中文说明

  • 镜像v0.22.0vllm/vllm-openai:v0.26.0
  • TP 配置:TP8 和 TP4 并发上限均扩展至 conc-end: 512
  • 新增 DEP4 配置tp: 4, ep: 4, dp-attn: true, conc-start: 128, conc-end: 512
  • 基准脚本kimik2.5_fp4_b200.sh):新增 DP_ATTENTION 处理逻辑,DEP4 模式下切换为 --data-parallel-size,并启用 --enable-expert-parallel--prefill-schedule-interval 4

@github-actions

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

@xinli-sw xinli-sw changed the title [Klaud Cold] kimik2.5-fp4-b200-vllm: v0.26.0 image, extend conc to 512, add DEP4 arm / 升级 B200 镜像至 v0.26.0,扩展并发,新增 DEP4 [Klaud Cold] kimik2.5-fp4-b300-vllm: v0.26.0 image, extend conc to 512, add DEP4 arm / 升级 B300 镜像至 v0.26.0,扩展并发,新增 DEP4 Aug 1, 2026
Comment thread perf-changelog.yaml Outdated
@github-actions

github-actions Bot commented Aug 1, 2026

Copy link
Copy Markdown
Contributor

@github-actions

github-actions Bot commented Aug 1, 2026

Copy link
Copy Markdown
Contributor

@github-actions

github-actions Bot commented Aug 1, 2026

Copy link
Copy Markdown
Contributor

@github-actions

github-actions Bot commented Aug 1, 2026

Copy link
Copy Markdown
Contributor

@github-actions

github-actions Bot commented Aug 1, 2026

Copy link
Copy Markdown
Contributor

1 similar comment
@github-actions

github-actions Bot commented Aug 1, 2026

Copy link
Copy Markdown
Contributor

@github-actions

github-actions Bot commented Aug 1, 2026

Copy link
Copy Markdown
Contributor

1 similar comment
@github-actions

github-actions Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

@github-actions

github-actions Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

@github-actions

github-actions Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

@github-actions

github-actions Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

@github-actions

github-actions Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

@github-actions

github-actions Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

@github-actions

github-actions Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

@github-actions

github-actions Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

@github-actions

github-actions Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

1 similar comment
@github-actions

github-actions Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

@github-actions

github-actions Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

@xinli-sw
xinli-sw force-pushed the feat/kimik2.5-fp4-b300-vllm-v0.26.0 branch from c3cace5 to bfc24ba Compare August 2, 2026 20:59
@github-actions

github-actions Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

@xinli-sw
xinli-sw force-pushed the feat/kimik2.5-fp4-b300-vllm-v0.26.0 branch from 58cb5cd to 22f4d7f Compare August 2, 2026 21:40
@github-actions

github-actions Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

@github-actions

github-actions Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

@xinli-sw
xinli-sw force-pushed the feat/kimik2.5-fp4-b300-vllm-v0.26.0 branch from fbbdf4a to 80d9ed8 Compare August 3, 2026 04:43
@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

@xinli-sw
xinli-sw force-pushed the feat/kimik2.5-fp4-b300-vllm-v0.26.0 branch from 982a984 to 67892db Compare August 3, 2026 05:50
@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

@xinli-sw
xinli-sw force-pushed the feat/kimik2.5-fp4-b300-vllm-v0.26.0 branch from e1b0ff9 to b13329c Compare August 3, 2026 07:29
@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Comment thread runners/launch_b300-nv.sh
Comment on lines 408 to 412
MODEL_BASENAME="${MODEL##*/}"
if [[ " ${STAGED_MODELS[*]} " == *" ${MODEL_BASENAME} "* ]]; then
if [[ $MODEL_PREFIX == "kimik2.5" && $PRECISION == "fp4" ]]; then
export MODEL_PATH="${WRITABLE_MODELS_DIR%/}/${MODEL_BASENAME}"
elif [[ " ${STAGED_MODELS[*]} " == *" ${MODEL_BASENAME} "* ]]; then
export MODEL_PATH="${HF_HUB_CACHE_MOUNT%/}/${MODEL_BASENAME}"

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 staged-model bypass in launch_b300-nv.sh keys only on MODEL_PREFIX=="kimik2.5" && PRECISION=="fp4", so it also matches the unrelated kimik2.5-fp4-b300-vllm-agentic and kimik2.5-fp4-b300-vllm-agentic-mtp configs, forcing their already-staged models (Kimi-K2.5-NVFP4, Kimi-K2.6-NVFP4) off the read-only pre-staged mount and onto WRITABLE_MODELS_DIR. For the mtp config, MODEL is the bare string Kimi-K2.6-NVFP4 (no HF org prefix), so if that path isn't already populated the forced hf download will fail outright since it isn't a valid HF repo id. The condition should key off the specific model basename or config name (e.g. kimik2.5-fp4-b300-vllm) instead of the broad prefix+precision pair.

Extended reasoning...

The new branch added at runners/launch_b300-nv.sh (single-node else-branch, ~line 409) is:

if [[ $MODEL_PREFIX == "kimik2.5" && $PRECISION == "fp4" ]]; then
    export MODEL_PATH="${WRITABLE_MODELS_DIR%/}/${MODEL_BASENAME}"
elif [[ " ${STAGED_MODELS[*]} " == *" ${MODEL_BASENAME} "* ]]; then
    export MODEL_PATH="${HF_HUB_CACHE_MOUNT%/}/${MODEL_BASENAME}"
...

It's inserted before the STAGED_MODELS membership check, and it keys purely on MODEL_PREFIX+PRECISION, not on the actual model being benchmarked or the specific config. The PR's intent (per the diff/description) is to force the one target config, kimik2.5-fp4-b300-vllm (model nvidia/Kimi-K2.5-NVFP4), onto the writable dir — presumably to pick up a fresh nightly image/weights rather than a stale pre-staged snapshot. But two other, unrelated configs in configs/nvidia-master.yaml share the same model-prefix: kimik2.5 / precision: fp4 pair and are unintentionally swept into the new branch:

  • kimik2.5-fp4-b300-vllm-agentic (line 1580): model: nvidia/Kimi-K2.5-NVFP4, runner: cluster:b300-nv, multinode: false.
  • kimik2.5-fp4-b300-vllm-agentic-mtp (line 1600): model: Kimi-K2.6-NVFP4, runner: cluster:b300-nv, multinode: false.

Both route through the same single-node else-branch of launch_b300-nv.sh (the launcher is resolved generically from the runner name, and launch_b300-nv.sh is the only b300 launcher script), so both hit the new condition.

Why this matters — concrete proof:

  1. STAGED_MODELS (defined a few lines above, line ~392 in the file) includes both Kimi-K2.5-NVFP4 and Kimi-K2.6-NVFP4. Before this PR, both agentic configs' MODEL_BASENAME matched that list and resolved to the read-only pre-staged mount: MODEL_PATH=/scratch/models/Kimi-K2.5-NVFP4 and /scratch/models/Kimi-K2.6-NVFP4 respectively.
  2. After this PR, the new condition fires first for both (since MODEL_PREFIX=kimik2.5 and PRECISION=fp4 for both), so MODEL_PATH becomes /data/models/Kimi-K2.5-NVFP4 and /data/models/Kimi-K2.6-NVFP4 — the writable dir — regardless of whether anything is staged there.
  3. The downstream bench script (same idempotent-download pattern as kimik2.5_fp4_b300.sh: if [[ ! -d \"$MODEL_PATH\" || -z \"$(ls -A \"$MODEL_PATH\")\" ]]; then hf download \"$MODEL\" --local-dir \"$MODEL_PATH\"; fi) will trigger a fresh hf download if /data/models/... isn't already populated for these models.
  4. For kimik2.5-fp4-b300-vllm-agentic, MODEL=nvidia/Kimi-K2.5-NVFP4 is at least a valid HF repo id, so this 'only' costs an unnecessary multi-hundred-GB re-download of a model that was already sitting on the read-only staged mount.
  5. For kimik2.5-fp4-b300-vllm-agentic-mtp, MODEL=Kimi-K2.6-NVFP4 has no HF org/namespace prefix — it is not a resolvable HF repo id at all. If /data/models/Kimi-K2.6-NVFP4 doesn't happen to already exist from some unrelated prior run, hf download Kimi-K2.6-NVFP4 --local-dir ... will fail outright, breaking that recipe's sweep run entirely.

Existing code doesn't prevent this because the new condition was added as a plain prefix/precision predicate rather than being scoped to the specific model basename (MODEL_BASENAME == \"Kimi-K2.5-NVFP4\") or the specific config/recipe name, so it can't distinguish the PR's intended target from any other kimik2.5/fp4 recipe that happens to share those two fields.

Fix: scope the new branch to the actual model basename (e.g. [[ $MODEL_BASENAME == \"Kimi-K2.5-NVFP4\" ]]) or to the specific config name being run, so it only affects kimik2.5-fp4-b300-vllm and leaves the unrelated agentic/agentic-mtp recipes on their existing staged-model resolution path.

Comment on lines +19 to +31
PARALLEL_ARGS=(--tensor-parallel-size "$TP" --data-parallel-size 1)
GMU=0.90
PREFILL_SCHEDULE_ARGS=()
if [ "${DP_ATTENTION:-false}" = "true" ]; then
PARALLEL_ARGS=(--tensor-parallel-size 1 --data-parallel-size "$TP")
GMU=0.85
PREFILL_SCHEDULE_ARGS=(--prefill-schedule-interval 4)
fi

EP_ARGS=()
if [ "${EP_SIZE:-1}" -gt 1 ]; then
EP_ARGS=(--enable-expert-parallel)
fi

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 top-of-file comment in kimik2.5_fp4_b300.sh (lines 3-5) and the matching comment in configs/nvidia-master.yaml (lines 1526-1528) both say the B300 recipe 'reuses the existing Kimi-K2.5 FP4 B200 vLLM recipe as-is until B300-specific tuning is available' — but this PR adds exactly that B300-specific tuning (DP_ATTENTION/EP handling, prefill-schedule-interval, fp8 kv-cache, attention-config, linear-backend, new env vars), so the comment is now stale and misleading. Purely a documentation issue — recommend removing or updating both comments.

Extended reasoning...

What the bug is: The unmodified top-of-file comment in benchmarks/single_node/fixed_seq_len/kimik2.5_fp4_b300.sh (lines 3-5) states:

does not have a B300-specific recipe, so this script reuses the existing Kimi-K2.5 FP4 B200 vLLM recipe as-is until B300-specific tuning is available.

The identical claim is duplicated in configs/nvidia-master.yaml at lines 1526-1528, directly above the kimik2.5-fp4-b300-vllm config block. Neither comment was touched by this PR, but this PR is precisely what makes them false.

Why it's now false: Comparing the new kimik2.5_fp4_b300.sh vllm serve invocation against kimik2.5_fp4_b200.sh, the two scripts diverge substantially after this PR:

  • B300 adds a DP_ATTENTION branch that switches --tensor-parallel-size/--data-parallel-size, adjusts GPU memory utilization (0.90 -> 0.85), and adds --prefill-schedule-interval 4; B200 has none of this.
  • B300 adds EP_ARGS -> --enable-expert-parallel; absent in B200.
  • B300 adds --kv-cache-dtype fp8, --attention-config '{\"mla_prefill_backend\":\"FLASHINFER\",...}', and --linear-backend flashinfer_cutlass; none of these exist in B200.
  • B300's --max-cudagraph-capture-size is now $((CONC*2)) vs B200's fixed 2048, and --stream-interval is 32 vs B200's 20.
  • B300 sets new env vars VLLM_USE_V2_MODEL_RUNNER=0, VLLM_FLASHINFER_AUTOTUNE_SKIP_OPS, VLLM_RPC_TIMEOUT; B200 instead sets VLLM_MEMORY_PROFILER_ESTIMATE_CUDAGRAPHS=0, which B300 does not.

So the B300 recipe is no longer a copy-as-is of B200 — it is a distinct, B300-tuned recipe, and that tuning is exactly what the comment says doesn't exist yet.

Code path / proof: A reader opening kimik2.5_fp4_b300.sh sees the comment at lines 3-5 claiming 'reuses B200 as-is,' then scrolls a few lines down (post-PR, lines 19-31 and 67-86) and sees DP_ATTENTION branching, EP handling, fp8 kv-cache, attention-config, and linear-backend flags that have no B200 counterpart. The comment directly contradicts the code immediately below it. The same applies to the nvidia-master.yaml comment at lines 1526-1528, sitting right above the kimik2.5-fp4-b300-vllm: block that this PR also modifies (new nightly image, new DEP4 search-space arm).

Why existing code/review doesn't catch this: This is a plain-text comment, not something any linter, test, or CI check inspects — it can only be caught by manual review comparing the comment's claim against the diff.

Impact: Purely a documentation/maintainability issue — nothing breaks functionally. But a future engineer syncing B300 with B200, or auditing why the recipes differ, would be misled into thinking B300 has no tuning beyond a straight copy, when in fact it now has meaningfully different parallelism, quantization, and scheduling logic.

Fix: Remove or rewrite both comments (script header and yaml block comment) to reflect that B300-specific tuning has been added, rather than stating it 'reuses B200 as-is.'

@xinli-sw
xinli-sw force-pushed the feat/kimik2.5-fp4-b300-vllm-v0.26.0 branch from 77f4b75 to 51c8c80 Compare August 4, 2026 23:20
@github-actions

github-actions Bot commented Aug 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

Development

Successfully merging this pull request may close these issues.

1 participant