Benchmark compare workflow to execute actual benchmark binaries - #11007
Benchmark compare workflow to execute actual benchmark binaries#11007oleksandr-pavlyk wants to merge 5 commits into
Conversation
Only run these binaries. This avoids compare bench script failure when regex matches phone targets that have no matching binary artifacts to execute.
|
Started Benchmark Compare workflow based on changes in this PR that failed earlier using main:
|
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Enterprise Run ID: 📒 Files selected for processing (1)
Included review availability: Your plan provides up to 12 included reviews per hour; 11 remain after this review. 📝 WalkthroughSummary by CodeRabbit
WalkthroughThe benchmark comparison script discovers executable files after both CUB builds, intersects the results, filters them against requested targets, resolves comparison scripts, and compares only runnable targets. Empty-runnable handling now marks the comparison as failed after successful builds. ChangesBenchmark comparison flow
Assessment against linked issues
Suggested reviewers: Merge Risk: ⚪ Minimal · up to The change limits benchmark comparisons to produced binaries matching the filter, avoiding failures from nonexistent artifacts; no actionable merge-blocking risk remains. Comment |
b05bd2c to
544443b
Compare
The inputs walks the entire dependency tree, while query just use single edge in target dependency DAG.
Do not attempt to infer them using ninja, but only launch binaries that match user-provided --cub-filter regexp
AI failure analysis1. RAPIDS consumers reference deleted RMM device_scalar rvalue constructor · 3 jobsExplanation: All three jobs' earliest substantive compiler failure resolves a temporary scalar initializer to RMM 26.10's explicitly deleted `const value_type&&` constructor. The PR changes only `ci/bench/compare_paths.sh`, while these jobs consume RAPIDS main branches or 26.10 alpha packages, indicating an upstream RAPIDS dependency-alignment failure rather than a change in the PR. Evidence: Copy this prompt into a coding agentJobs: 1. cuVS balanced k-means compilation rejects temporary device_scalar initialization · 2 jobsExplanation: Both cuVS matrix jobs have the same earliest failure: balanced k-means passes the literal `0` to an RMM 26.10 `device_scalar` constructor whose rvalue overload is deleted. The PR changes only `ci/bench/compare_paths.sh`, so this appears to be unrelated RAPIDS dependency/API drift. Evidence: Copy this prompt into a coding agentJobs: 2. cuOpt compilation rejects temporary device_scalar initialization · 1 jobExplanation: cuOpt passes temporary Boolean literals to the same deleted RMM 26.10 rvalue constructor, beginning in `feasibility_jump.cuh` and `problem_helpers.cuh`. This is also outside the PR's benchmark-script changes and indicates an incompatible cuOpt/RMM dependency combination. Evidence: Copy this prompt into a coding agentJobs: |
- Source-only guard removed.
- || true removed from resolver calls.
- Robust compare script remains required.
- Legacy compare script is derived from the robust script
directory and remains optional.
Since script now requires robust compare script to exist and since
it was introduced after transition from scripts/ to python/scripts
in the source layout has occurred, simplify search for robust script
to look directly in "${nvbench_src_dir}/python/scripts/".
Get legacy script path directly by appending dirname of robust script
path with "nvbench_compare.py".
Description
Only run actually produced binaries that match
--cub-filterregular expression.This avoids compare bench script failure when regex matches phone targets that have no matching binary artifacts to execute.
closes #11006
Checklist