Parameter VocabularyΒΆ
There are certain tunable parameters that have special meaning in Kernel Tuner. This document specifies which parameters are special and what there uses are when auto-tuning GPU kernels.
In general, it is best to avoid using these parameter names for purposes other than the ones indicated in this document.
kernel_tuner # is inserted by Kernel Tuner to signal the code is compiled using the tuner
block_size_* # reserved for thread block dimensions
grid_size_* # reserved for grid dimensions, if you want to tune these use problem_size
compiler_opt_* # reserved for future support for tuning compiler options
loop_unroll_factor_* # reserved for tunable parameters that specify loop unrolling factors
nvml_* # reserved for tunable parameters and outputs related to NVML
nvml_pwr_limit # use NVML to set power limit
nvml_gr_clock # use NVML to set graphics clock
nvml_mem_clock # use NVML to set memory clock
cuda_* # reserved for setting parameters related to CUDA kernel execution
cuda_sm_percentage # set the percentage of active SMs (requires cuda-python)
There are also a number of names that Kernel Tuner uses for reporting benchmarking results. Because these are reported along with the tunable parameters, it is generally a good idea to not use these names for any tunable parameters.
time* # reserved for time measurements
# Information that can be observed using kernel_tuner.nvml.NVMLObserver:
nvml_energy
nvml_power
power_readings
core_freq
mem_freq
temperature
# Information observed using kernel_tuner.observers.PowerSensor
ps_energy # Energy in Joules
ps_power # Power in Watts