Skip to content

Commit 57bffb1

Browse files
make test use simulation mode
1 parent 02619be commit 57bffb1

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed

kernel_tuner/energy/energy.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
}
4242
"""
4343

44-
def get_frequency_power_relation_fp32(device, n_samples=10, nvidia_smi_fallback=None, use_locked_clocks=False, cache=None):
44+
def get_frequency_power_relation_fp32(device, n_samples=10, nvidia_smi_fallback=None, use_locked_clocks=False, cache=None, simulation_mode=None):
4545
""" Use NVML and PyCUDA with a synthetic kernel to obtain samples of frequency-power pairs """
4646

4747
# get some numbers about the device
@@ -85,7 +85,7 @@ def get_frequency_power_relation_fp32(device, n_samples=10, nvidia_smi_fallback=
8585

8686
results, _ = tune_kernel("fp32_kernel", fp32_kernel_string, problem_size=(multiprocessor_count, 64),
8787
arguments=arguments, tune_params=tune_params, observers=[nvmlobserver],
88-
verbose=False, quiet=True, metrics=metrics, iterations=10,
88+
verbose=False, quiet=True, metrics=metrics, iterations=10, simulation_mode=simulation_mode,
8989
grid_div_x=[], grid_div_y=[], cache=cache or f"synthetic_fp32_cache_{device_name}.json")
9090

9191
freqs = np.array([res["core_freq"] for res in results])
@@ -147,7 +147,7 @@ def fit_power_frequency_model(freqs, nvml_power):
147147
return clock_threshold + clock_min, fit_parameters, scale_parameters
148148

149149

150-
def create_power_frequency_model(device=0, n_samples=10, verbose=False, nvidia_smi_fallback=None, use_locked_clocks=False, cache=None):
150+
def create_power_frequency_model(device=0, n_samples=10, verbose=False, nvidia_smi_fallback=None, use_locked_clocks=False, cache=None, simulation_mode=None):
151151
""" Calculate the most energy-efficient clock frequency of device
152152
153153
This function uses a performance model to fit the power-frequency curve
@@ -181,7 +181,7 @@ def create_power_frequency_model(device=0, n_samples=10, verbose=False, nvidia_s
181181
:rtype: float
182182
183183
"""
184-
freqs, nvml_power = get_frequency_power_relation_fp32(device, n_samples, nvidia_smi_fallback, use_locked_clocks, cache=cache)
184+
freqs, nvml_power = get_frequency_power_relation_fp32(device, n_samples, nvidia_smi_fallback, use_locked_clocks, cache=cache, simulation_mode=simulation_mode)
185185

186186
if verbose:
187187
print("Clock frequencies:", freqs.tolist())

test/test_energy.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55

66
cache_filename = os.path.dirname(os.path.realpath(__file__)) + "/synthetic_fp32_cache_NVIDIA_RTX_A4000.json"
77

8-
@skip_if_no_pycuda
8+
99
def test_create_power_frequency_model():
1010

11-
ridge_frequency, freqs, nvml_power, fitted_params, scaling = energy.create_power_frequency_model(cache=cache_filename)
11+
ridge_frequency, freqs, nvml_power, fitted_params, scaling = energy.create_power_frequency_model(cache=cache_filename, simulation_mode=True)
1212
assert ridge_frequency == 1350
1313

0 commit comments

Comments
 (0)