Add tuning search based on CompileIQ#9190
Conversation
|
Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually. Contributors can view more details about this message here. |
📝 WalkthroughSummary by CodeRabbitRelease Notes
WalkthroughThree changes add multithreaded benchmark execution support: ProcessRunner now guards signal handler registration to the main thread, SQLiteStorage validates thread-safety and enables cross-thread connection use, and a new CompileIQSeeker orchestrator selects between brute-force and evolutionary search strategies based on problem size. ChangesMultithreaded Benchmark Infrastructure and Search
Suggested reviewers
Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
benchmarks/scripts/search_iq.py (1)
120-131: ⚡ Quick winsuggestion: Rename parameter or variable to clarify intent.
Line 125 passes
num_rt_workloadsto a parameter namednum_objectivesinget_num_expected_runs(). The function signature andiq_search()(line 83) usenum_objectives=1, but the calculation here usesnum_rt_workloads. Either rename the parameter inget_num_expected_runs()to reflect its actual usage, or clarify the relationship between RT workloads and the expected-runs heuristic.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: 75cb46dd-cbc5-44dd-9b6d-7dd9bc33fb9b
📒 Files selected for processing (3)
benchmarks/scripts/cccl/bench/bench.pybenchmarks/scripts/cccl/bench/storage.pybenchmarks/scripts/search_iq.py
| ) | ||
|
|
||
| if score == float("inf") or score == float("-inf"): | ||
| print("Infinite store") |
There was a problem hiding this comment.
important: Fix typo "Infinite store" → "Infinite score".
Line 60 prints "Infinite store" but should print "Infinite score" to match the condition being checked.
|
ok, here is a confusing bit. Yet, the scores reported to CompileIQ are (ordered by variant as the list above):
@gevtushenko as the author of the tuning framework, I kindly ask for an explanation for this observation. |
This is mostly done by
claude, trying to migrate the internalcub_tuning_evoscripts. This PR adds a simplified version using a single worker, running benchmarks on a single GPU.Running:
It's still a bit confusing, because after running, the database shows different results, but it looks like the score reported by
analyze.pyis just computed differently than the score passed to compile-iq.