Skip to content

Ci/benchmark tooling checks - #3

Merged
ShengchenJ merged 2 commits into
mainfrom
ci/benchmark-tooling-checks
Oct 19, 2026
Merged

ShengchenJ merged 2 commits into
mainfrom
ci/benchmark-tooling-checks

Conversation

@ShengchenJ

Copy link
Copy Markdown
Contributor

No description provided.

ShengchenJ and others added 2 commits October 19, 2026 10:20
perf_check.sh A/Bs the working tree against its merge-base on one machine
and exits non-zero on a regression; perf_gate.py turns the two logs into a
verdict; select_kernels.py resolves benchmarks/suites/kernels.tsv into the
subset a given host can run. Rationale and usage are in benchmarks/README.md.

Both sides are measured here and now rather than against a number stored in
the repo, because the same binary varies run to run by more than the effects
worth catching: on an Arc Pro B70, bf16_gemm 4096 cubed spans 0.874-0.994 ms
(13.7%) across nine trials of one build while gqa_forward spans 1.3%.

The two test suites need no GPU -- test_perf_gate.py synthesises its own
logs, test_select_kernels.py checks selection and the committed manifest --
so they are the part that can run on a hosted runner. The next commit wires
them in.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Extends the existing lint job rather than adding a new one, since both
additions are no-GPU Python and finish in seconds on a hosted runner.

Syntax coverage follows the files that now exist: bash -n on perf_check.sh,
py_compile on the three new tools.

The two test suites are the substantive part. perf_gate.py decides whether a
PR is blocked, so its verdict logic is tested rather than trusted.
test_select_kernels.py checks selection and the committed manifest together,
including that every kernel directory kernels.tsv names still has a
Makefile -- renaming a kernel family then fails the PR instead of silently
shrinking what the gate measures, which is the failure mode that would
otherwise look like a pass.

The GPU half of the gate is deliberately not wired up here: perf_check.sh
needs a self-hosted runner with an Intel GPU and a fetch-depth 0 checkout to
reach the merge-base. It already writes a GITHUB_STEP_SUMMARY table when that
variable is set, so adding such a job later is a checkout plus one
invocation.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@ShengchenJ
ShengchenJ merged commit cd92a09 into main Oct 19, 2026
5 of 6 checks passed
@ShengchenJ
ShengchenJ deleted the ci/benchmark-tooling-checks branch October 19, 2026 06:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant