From 9424a8297593bf25e560e69ec45fd953a5e0b9ea Mon Sep 17 00:00:00 2001 From: stijn Date: Wed, 21 May 2025 10:44:39 +0200 Subject: [PATCH] Recalculate metrics for each configuration in simulation runner --- kernel_tuner/runners/simulation.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/kernel_tuner/runners/simulation.py b/kernel_tuner/runners/simulation.py index 22c7c667c..4668e8ef6 100644 --- a/kernel_tuner/runners/simulation.py +++ b/kernel_tuner/runners/simulation.py @@ -6,6 +6,7 @@ from kernel_tuner import util from kernel_tuner.runners.runner import Runner + _SimulationDevice = namedtuple("_SimulationDevice", ["max_threads", "env", "quiet"]) @@ -90,6 +91,11 @@ def run(self, parameter_space, tuning_options): if tuning_options.cache and x_int in tuning_options.cache: result = tuning_options.cache[x_int].copy() + # only compute metrics on configs that have not errored + if tuning_options.metrics and not isinstance(result.get(tuning_options.objective), util.ErrorConfig): + result = util.process_metrics(result, tuning_options.metrics) + + # Simulate behavior of sequential runner that when a configuration is # served from the cache by the sequential runner, the compile_time, # verification_time, and benchmark_time are set to 0.