[Klaud Cold] Fix benchmark_lib source paths broken by #1860 script move / 修复 #1860 移动脚本导致的 benchmark_lib 引用路径错误#2053
Conversation
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>
|
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 For PR verification, add the 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 模板,包括保留英文语句 如需进行 PR 验证,请为此 PR 添加 PR 作者有责任确保合并后所有 GitHub Action 任务完全通过。 很多时候失败只是偶发抖动(flake),重新运行失败的任务即可解决。参见 GitHub 关于重新运行失败任务的文档 |
|
see unofficial run visualizer at https://inferencex.semianalysis.com/inference?unofficialRun=28719812805 |
| # 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" |
There was a problem hiding this comment.
🔴 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
- Sweep launches
dsv4-fp4-mi355x-sglang-mtp(forced to re-run by theperf-changelog.yamlentry appended in this PR). dsv4_fp4_mi355x_sglang_mtp.shnow sources../../benchmark_lib.sh— succeeds (that is what this PR fixes).- Script proceeds to
python3 -m sglang.launch_server … --chat-template "$(dirname "$0")/chat_templates/deepseek_v4_thinking.jinja". $(dirname "$0")→benchmarks/single_node/fixed_seq_len(script-local, CWD-independent).- Resolved path:
benchmarks/single_node/fixed_seq_len/chat_templates/deepseek_v4_thinking.jinja. - That path does not exist. SGLang’s
--chat-templateloader opens the file at server startup, so the server crashes before becoming ready andwait_for_server_readytimes 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.
Summary
dsv4_fp4_mi355x_{atom,sglang,vllm}_mtp.shfrombenchmarks/single_node/intofixed_seq_len/as a puregit mv, leaving theirsource "$(dirname "$0")/../benchmark_lib.sh"one level short — all three configs have failed at launch withNo such file or directoryever since (surfaced by this #1981 sweep failure).atom_mtpandsglang_mtpscripts to../../benchmark_lib.sh(matching the other 151fixed_seq_lenscripts); thevllm_mtpcopy is fixed on PR [Klaud Cold] [AMD] DeepSeek-V4 FP4 MI355X vLLM MTP: bump image to latest nightly / DeepSeek-V4 FP4 MI355X vLLM MTP:升级镜像至最新 nightly #1981's branch.perf-changelog.yamlentry fordsv4-fp4-mi355x-atom-mtpanddsv4-fp4-mi355x-sglang-mtpso both configs re-run and restore their data.中文说明
dsv4_fp4_mi355x_{atom,sglang,vllm}_mtp.sh以纯git mv移入fixed_seq_len/,其source "$(dirname "$0")/../benchmark_lib.sh"相对路径少了一级 - 自那以后三个配置全部在启动时报No such file or directory(由 [Klaud Cold] [AMD] DeepSeek-V4 FP4 MI355X vLLM MTP: bump image to latest nightly / DeepSeek-V4 FP4 MI355X vLLM MTP:升级镜像至最新 nightly #1981 的 sweep 失败暴露)。atom_mtp与sglang_mtp脚本修正为../../benchmark_lib.sh(与其余 151 个fixed_seq_len脚本一致);vllm_mtp已在 PR [Klaud Cold] [AMD] DeepSeek-V4 FP4 MI355X vLLM MTP: bump image to latest nightly / DeepSeek-V4 FP4 MI355X vLLM MTP:升级镜像至最新 nightly #1981 分支上修复。dsv4-fp4-mi355x-atom-mtp与dsv4-fp4-mi355x-sglang-mtp追加perf-changelog.yaml条目,重新运行这两个配置以恢复数据。🤖 Generated with Claude Code