Add: benchmark host_build_graph runtime - #1797
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (11)
📝 WalkthroughWalkthroughThe benchmark workflow adds ChangesBenchmark runtime and execution
Estimated code review effort: 3 (Moderate) | ~20 minutes Possibly related issues
Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
22b393b to
1575b47
Compare
ChaoZheng109
left a comment
There was a problem hiding this comment.
Recommend holding this until the benchmark matrix covers all four arch × runtime quadrants.
The harness should guarantee the full {a2a3, a5} × {tensormap_and_ringbuffer, host_build_graph} matrix, not just light up a2a3-HBG. Current state:
| quadrant | status |
|---|---|
| a2a3 × TMR | full (default) |
| a2a3 × HBG | this PR |
| a5 × TMR | partial — benchmark_bgemm / qwen3_14b_decode have no a5 example and the list isn't arch-aware, so they SKIP/FAIL on -p a5 |
| a5 × HBG | no benchmark corpus (only basic functional tests); runtime still a temp a2a3 copy |
Since we're reworking the benchmark story anyway, please close a5 for both runtimes (in this PR or a companion that lands together) so the matrix is symmetric, rather than leaving a5 gated behind an error.
1575b47 to
ffeeeea
Compare
Review 反馈整体实现质量不错(空列隐藏逻辑 + 对应单测、 🔴 1. HBG 语料漏了 qwen(且被单测锁死)a2a3 上 qwen 两个 runtime 都有示例:
但 由于 HBG runtime 已被 gate 成 a2a3-only,直接把 qwen 加进 HBG_EXAMPLE_CASES=(
"alternating_matmul_add=Case1"
"benchmark_bgemm=Case0"
"paged_attention_unroll=Case1,Case2"
"paged_attention_unroll_manual_scope=Case1,Case2"
"batch_paged_attention=Case1"
"qwen3_14b_decode=GraphExecutionBatch16Seq3500"
)
🟠 2. PR body 与代码/实现有多处不一致body 描述的是一个比代码更宏大的设计(疑似 squash 简化后 body 未更新):
建议把 body 改为匹配实际实现(简化版),或明确说明哪些属于 #1727 后续 PR。 🟡 3. (pre-existing,非本 PR 引入)a5 + TMR 会因 qwen 失败TMR 表无 arch 闸且无条件含 qwen, 小结:功能上补 qwen + 改单测即可闭合缺口;文档/body 层面让描述与代码对齐。 |
ffeeeea to
87f6a61
Compare
Select independent a2a3 and a5 benchmark corpora for both runtimes while preserving TMR as the default. Include each architecture/runtime Qwen case with its matching name and keep all four expensive cases in daily rather than per-PR CI. Explicit quadrant and manual assertions protect the routing. Skip golden validation during benchmark rounds, report only runtime-backed timing columns, and propagate failures through task-submit, tee pipelines, and parallel comparison runs. Document runtime-specific timing semantics and keep baseline/current runs in one task-submit allocation with isolated workspaces.
87f6a61 to
392a285
Compare
|
@ChaoZheng109 Addressed:
|
Summary
host_build_graphsupport totools/benchmark_rounds.shwhile keepingtensormap_and_ringbufferas the default runtime.{a2a3, a5} × {tensormap_and_ringbuffer, host_build_graph}quadrants.four Qwen cases as manual, keeping them in daily rather than per-PR CI.
Effective / Orch / Sched, while HBG reports Host / Device.
workload is missing, and propagate failures through
task-submit,tee, andparallel baseline/current comparisons.
Benchmark matrix
The Qwen entries use
StressBatch16Seq3500for TMR andGraphExecutionBatch16Seq3500for HBG. Tests assert those runtime-specificcase names in all four quadrants and verify every Qwen benchmark case is
manual.
The shared corpus covers
alternating_matmul_add,benchmark_bgemm,paged_attention_unroll,paged_attention_unroll_manual_scope, andbatch_paged_attention.spmd_paged_attentionremains outside the benchmarkcorpus because of a pre-existing onboard stall reproduced on the baseline.
Timing scope
This PR provides the HBG regression surface supported by markers available
today. A follow-up performance change can add HBG-specific record-vs-replay
reporting and finer host stages such as graph build, relocation, H2D upload,
and dispatch without coupling that instrumentation design to the harness.
Testing
collected with the daily
--manual includemode.main,including markdownlint, Ruff, formatting, and pyright.
quadrants, runtime-specific Qwen selection,
--skip-golden, manual-caseinclusion, missing-workload failure, and Bash 3.2 compatibility.
Part of #1727.