Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hyperparameter tuning, standardization & extended searchspace construction #278

Draft
wants to merge 58 commits into
base: master
Choose a base branch
from
Draft
Changes from 1 commit
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
b13f972
Added pyATF as searchspace builder
fjwillemsen Jun 5, 2024
3ac3f15
Merge branch 'master' of https://github.com/KernelTuner/kernel_tuner
fjwillemsen Jun 6, 2024
5e32707
Implemented basic PyATF searchspace builder
fjwillemsen Jun 6, 2024
2214394
Minor changes
fjwillemsen Jul 25, 2024
0fa30a0
Setup structure for cross-searchspace hyperparameter tuning using met…
fjwillemsen Jul 30, 2024
2636245
Further integration of Hypertuner device functions
fjwillemsen Jul 30, 2024
af88572
Finalized new cross-searchspace hyperparameter tuning in Kernel Tuner
fjwillemsen Jul 30, 2024
4f0a4aa
Added T1 schema and command line interface for T1 input files
fjwillemsen Oct 5, 2024
1e7e54d
Implemented T1 input in interface
fjwillemsen Oct 7, 2024
fa11cfd
Merge with master
fjwillemsen Oct 8, 2024
a83fcd3
Fixed an issue that caused the T4 schema to point to a non-existing a…
fjwillemsen Oct 8, 2024
5f191da
Hypertuner tests are skipped without Methodology dependency installed
fjwillemsen Oct 8, 2024
0c0fbed
Added error message to Nox development environment check in case of f…
fjwillemsen Oct 8, 2024
a081772
Added type hints
fjwillemsen Oct 8, 2024
34d0755
Added T1 input file for testing
fjwillemsen Oct 8, 2024
61405fb
Added T1 input schema for validation
fjwillemsen Oct 8, 2024
bbdbc89
Setup tests for T1 input file
fjwillemsen Oct 8, 2024
1887fcd
Merge branch 'searchspace_experiments' of https://github.com/benvanwe…
fjwillemsen Oct 8, 2024
07bc8b0
Fixed an error reading the T1 format
fjwillemsen Oct 8, 2024
8242403
Fixed an error reading the T1 format
fjwillemsen Oct 8, 2024
0c4c76f
Interface accepts Path-type as kernel_source argument to resolve to file
fjwillemsen Oct 9, 2024
6c2476b
Added type hints
fjwillemsen Oct 9, 2024
f773dff
Changed test to Kernel Tuner example
fjwillemsen Oct 9, 2024
3cbf19a
Added functionality to have dynamic vector sizes based on tunable par…
fjwillemsen Oct 9, 2024
3398320
Added coonversion of grid divisions and constant arguments
fjwillemsen Oct 9, 2024
6711968
Added support for cachefiles in T1 interface
fjwillemsen Oct 9, 2024
814b155
Expose T1 interface function in package
fjwillemsen Oct 11, 2024
6ca0f69
Extended T1 tuning interface, formatting
fjwillemsen Oct 11, 2024
cb1a755
Convert single problem size to array, improved error messages
fjwillemsen Oct 11, 2024
a15ac3b
Split T4 output function to have either Python value or file returned
fjwillemsen Oct 11, 2024
74d5bba
Implemented return of T4 output, additional arguments
fjwillemsen Oct 11, 2024
3ea8c75
Further intergration of experiments file generation and hyperparamete…
fjwillemsen Oct 16, 2024
f17fcbe
Generate an experiments file using provided values and defaults from …
fjwillemsen Oct 16, 2024
1c9db4a
Fixed a function name error
fjwillemsen Oct 16, 2024
94995b4
Fixed an interface error in test
fjwillemsen Oct 16, 2024
b3e0f1d
Implemented sonarlint suggestions
fjwillemsen Oct 16, 2024
e7fd95a
Implemented benchmarkobserver for reporting hyperparameter tuning res…
fjwillemsen Oct 16, 2024
fd823aa
Limited the max_feval size to at most the size of the searchspace
fjwillemsen Oct 17, 2024
e04906e
Succesfully implemented hyperparameter tuning
fjwillemsen Oct 17, 2024
6062e50
Avoid duplicate execution, resolved an issue which sometimes led to h…
fjwillemsen Oct 22, 2024
11a86eb
Added time unit metadata to T4 output
fjwillemsen Oct 23, 2024
abaf90d
Set up hyperparamtuning cache, made cache names hyperparam-unique
fjwillemsen Oct 23, 2024
3be5685
Changed hyperparameter tuning defaults
fjwillemsen Oct 23, 2024
31ad0c8
Added per-parameter restrictions registration for pyATF
fjwillemsen Jan 9, 2025
f2a0f03
Generating intervals for pyATF where possible
fjwillemsen Jan 9, 2025
8c416ad
pyATF restrictions needed to be recombined in cases where multiple re…
fjwillemsen Jan 11, 2025
5e77fe4
Prevent pyATF from using Intervals where step size is 0
fjwillemsen Jan 11, 2025
41cd741
Restriction sources are passed back after compilation to aid pyATF
fjwillemsen Jan 14, 2025
39b5f01
Added default blocksize restriction for pyATF, as well as raising an …
fjwillemsen Jan 14, 2025
33c291d
Implemented automatic removal of functionally equivalent restrictions
fjwillemsen Jan 14, 2025
160a81f
Minor bug fixes
fjwillemsen Jan 14, 2025
5b6a0be
Improved the detection of whether an interval can be used
fjwillemsen Jan 16, 2025
f3b9991
Added parallel solver support
fjwillemsen Feb 9, 2025
df7d487
Updated dev-environment, changelog, dependencies
fjwillemsen Feb 11, 2025
97ca48b
Bumped version number does not belong in PR
fjwillemsen Feb 11, 2025
5b64b2c
Merged with master
fjwillemsen Feb 11, 2025
4401b03
Used new pyip name
fjwillemsen Feb 11, 2025
2eda1ba
Dropped Python 3.9 support for incompatibility with newer scipy versions
fjwillemsen Feb 11, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Convert single problem size to array, improved error messages
  • Loading branch information
fjwillemsen committed Oct 11, 2024
commit cb1a7558337ccc89fc04565fd27bad350e6b7bee
11 changes: 9 additions & 2 deletions kernel_tuner/util.py
Original file line number Diff line number Diff line change
Expand Up @@ -1177,10 +1177,17 @@ def process_cache(cache, kernel_options, tuning_options, runner):

# check if it is safe to continue tuning from this cache
if cached_data["device_name"] != runner.dev.name:
raise ValueError("Cannot load cache which contains results for different device")
raise ValueError(
f"Cannot load cache which contains results for different device (cache: {cached_data['device_name']}, actual: {runner.dev.name})"
)
if cached_data["kernel_name"] != kernel_options.kernel_name:
raise ValueError("Cannot load cache which contains results for different kernel")
raise ValueError(
f"Cannot load cache which contains results for different kernel (cache: {cached_data['kernel_name']}, actual: {kernel_options.kernel_name})"
)
if "problem_size" in cached_data and not callable(kernel_options.problem_size):
# if it's a single value, convert to an array
if isinstance(cached_data["problem_size"], int):
cached_data["problem_size"] = [cached_data["problem_size"]]
# if problem_size is not iterable, compare directly
if not hasattr(kernel_options.problem_size, "__iter__"):
if cached_data["problem_size"] != kernel_options.problem_size:
Expand Down