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

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