Skip to content

[Klaud Cold] Fix benchmark_lib source paths broken by #1860 script move / 修复 #1860 移动脚本导致的 benchmark_lib 引用路径错误#2053

Closed
functionstackx wants to merge 1 commit into
mainfrom
klaud/fix-mtp-lib-source-paths
Closed

[Klaud Cold] Fix benchmark_lib source paths broken by #1860 script move / 修复 #1860 移动脚本导致的 benchmark_lib 引用路径错误#2053
functionstackx wants to merge 1 commit into
mainfrom
klaud/fix-mtp-lib-source-paths

Conversation

@functionstackx

Copy link
Copy Markdown
Collaborator

Summary

中文说明

🤖 Generated with Claude Code

PR #1860 moved dsv4_fp4_mi355x_{atom,sglang,vllm}_mtp.sh into
fixed_seq_len/ without updating their relative source paths, so all
three configs failed at launch with 'No such file or directory'. The
vllm script is being fixed in PR #1981; this fixes the other two and
appends a changelog entry to re-run both configs.

中文:修复 dsv4 mi355x atom/sglang MTP 脚本中 benchmark_lib.sh 的
引用路径 - #1860 移动脚本时未同步更新相对路径,三个配置自此启动即
失败。vllm 脚本在 PR #1981 中修复;本 PR 修复其余两个,并追加
changelog 条目以重新运行这两个配置。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Jul 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-enabled or full-sweep-fail-fast label to this PR — the benchmark sweep only runs on labeled PRs.

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-enabledfull-sweep-fail-fast 标签 — 基准测试 sweep 仅在带有标签的 PR 上运行。

PR 作者有责任确保合并后所有 GitHub Action 任务完全通过。 很多时候失败只是偶发抖动(flake),重新运行失败的任务即可解决。参见 GitHub 关于重新运行失败任务的文档

@github-actions

github-actions Bot commented Jul 4, 2026

Copy link
Copy Markdown
Contributor

# the deep_gemm perf path. RUN_EVAL on the high-conc points gates accuracy.

source "$(dirname "$0")/../benchmark_lib.sh"
source "$(dirname "$0")/../../benchmark_lib.sh"

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 --chat-template argument at benchmarks/single_node/fixed_seq_len/dsv4_fp4_mi355x_sglang_mtp.sh:205 is missing ../ — it still points at $(dirname "$0")/chat_templates/deepseek_v4_thinking.jinja, which resolves to the nonexistent benchmarks/single_node/fixed_seq_len/chat_templates/… after the #1860 move (the file only exists at benchmarks/single_node/chat_templates/…). This is the exact same off-by-one relative-path defect this PR fixes on the source line above it, and the sibling non-MTP script dsv4_fp4_mi355x_sglang.sh:95 already uses the correct ../chat_templates/… form — please fix line 205 to "$(dirname "$0")/../chat_templates/deepseek_v4_thinking.jinja" in the same commit, otherwise the dsv4-fp4-mi355x-sglang-mtp re-run appended in perf-changelog.yaml will still fail at launch (chat-template file not found).


中文翻译: benchmarks/single_node/fixed_seq_len/dsv4_fp4_mi355x_sglang_mtp.sh:205--chat-template 参数少了一级 ../,仍然指向 $(dirname "$0")/chat_templates/deepseek_v4_thinking.jinja;在 #1860 移动脚本后,这会解析到不存在的 benchmarks/single_node/fixed_seq_len/chat_templates/…(该模板文件只存在于 benchmarks/single_node/chat_templates/…)。这与本 PR 修复的 source 行属于同一类相对路径错位问题,同目录的非 MTP 脚本 dsv4_fp4_mi355x_sglang.sh:95 已经使用正确的 ../chat_templates/… 形式 — 请在同一个 commit 中将第 205 行改为 "$(dirname "$0")/../chat_templates/deepseek_v4_thinking.jinja",否则 perf-changelog.yaml 中追加的 dsv4-fp4-mi355x-sglang-mtp 重跑仍会在启动时报错(找不到 chat-template 文件)。

Extended reasoning...

What the bug is

PR #1860 git mvd dsv4_fp4_mi355x_sglang_mtp.sh from benchmarks/single_node/ into benchmarks/single_node/fixed_seq_len/. This PR fixes one of the resulting relative-path breaks — the source "$(dirname "$0")/../benchmark_lib.sh" line — but misses a second, identical break at line 205:

--chat-template "$(dirname "$0")/chat_templates/deepseek_v4_thinking.jinja" \

Since $(dirname "$0") now resolves to benchmarks/single_node/fixed_seq_len/, this concatenates to benchmarks/single_node/fixed_seq_len/chat_templates/deepseek_v4_thinking.jinja — a path that does not exist. The template file lives only at benchmarks/single_node/chat_templates/deepseek_v4_thinking.jinja (verified: find benchmarks -name deepseek_v4_thinking.jinja yields exactly one match, and ls benchmarks/single_node/fixed_seq_len/chat_templates errors with No such file or directory).

The expected form is already in the same directory

The sibling non-MTP script benchmarks/single_node/fixed_seq_len/dsv4_fp4_mi355x_sglang.sh:95 was correctly updated for the #1860 move:

--chat-template "$(dirname "$0")/../chat_templates/deepseek_v4_thinking.jinja" \

Every other sglang script referencing this template (agentic/dsv4_fp4_mi355x_sglang.sh:147, agentic/dsv4_fp4_b200_sglang.sh:182, agentic/dsv4_fp4_b300_sglang.sh:180) uses ../chat_templates/…. Only dsv4_fp4_mi355x_sglang_mtp.sh:205 is missing the extra ../ — the exact same defect class as the source line this PR fixes.

Step-by-step proof this breaks after merge

  1. Sweep launches dsv4-fp4-mi355x-sglang-mtp (forced to re-run by the perf-changelog.yaml entry appended in this PR).
  2. dsv4_fp4_mi355x_sglang_mtp.sh now sources ../../benchmark_lib.sh — succeeds (that is what this PR fixes).
  3. Script proceeds to python3 -m sglang.launch_server … --chat-template "$(dirname "$0")/chat_templates/deepseek_v4_thinking.jinja".
  4. $(dirname "$0")benchmarks/single_node/fixed_seq_len (script-local, CWD-independent).
  5. Resolved path: benchmarks/single_node/fixed_seq_len/chat_templates/deepseek_v4_thinking.jinja.
  6. That path does not exist. SGLang’s --chat-template loader opens the file at server startup, so the server crashes before becoming ready and wait_for_server_ready times out. The config fails again — just in a new way. (Or worse, if SGLang silently falls back to no template: MTP acceptance regresses because the script’s own comments call out that MTP benchmarks require chat-formatted inputs.)

This directly defeats the PR’s stated goal (“both configs failed at launch … this PR restores them”) for the sglang_mtp half. The atom_mtp half is genuinely restored — dsv4_fp4_mi355x_atom_mtp.sh does not use --chat-template, so it is unaffected.

Why nothing catches this upstream

The shell expands nonexistent paths without complaint, and SGLang’s --chat-template argument is a caller-supplied path — no upstream guard validates it. This has to be fixed at the call site.

Fix

In the same commit as the source fix, change benchmarks/single_node/fixed_seq_len/dsv4_fp4_mi355x_sglang_mtp.sh:205 from:

--chat-template "$(dirname "$0")/chat_templates/deepseek_v4_thinking.jinja" \

to:

--chat-template "$(dirname "$0")/../chat_templates/deepseek_v4_thinking.jinja" \

One character added, and the sglang_mtp config the PR is chartered to restore actually reaches the benchmark instead of dying at chat-template load on the very next sweep.

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

Labels

None yet

Projects

Development

Successfully merging this pull request may close these issues.

1 participant