@@ -191,10 +191,12 @@ def check_argument_list(kernel_name, kernel_string, args):
191191
192192
193193class Timer :
194+ """Measures elapsed wall-clock time."""
194195 def __init__ (self ):
195196 self .reset ()
196197
197198 def reset (self ):
199+ """Reset the timer to now."""
198200 self ._start_ns = time .perf_counter_ns ()
199201
200202 def get (self ) -> float :
@@ -214,13 +216,15 @@ def __str__(self) -> str:
214216 elapsed = self .get ()
215217
216218 if elapsed < 1 :
217- return f"{ elapsed * 1e3 :.2f} ms"
219+ result = f"{ elapsed * 1e3 :.2f} ms"
218220 elif elapsed < 60 :
219- return f"{ elapsed :.3f} s"
221+ result = f"{ elapsed :.3f} s"
220222 elif elapsed < 3600 :
221- return f"{ elapsed / 60 :.2f} min"
223+ result = f"{ elapsed / 60 :.2f} min"
222224 else :
223- return f"{ elapsed / 3600 :.2f} h"
225+ result = f"{ elapsed / 3600 :.2f} h"
226+
227+ return result
224228
225229
226230class TuningBudget :
@@ -282,15 +286,15 @@ def raise_exception_if_done(self):
282286 raise StopCriterionReached ("time limit exceeded" )
283287
284288 def get_fraction_consumed (self ) -> float :
285- if self . max_fevals is not None and self . time_limit is not None :
286- time_spent = self . get_time_spent ()
287- return min ( 1.0 , time_spent / self .time_limit , self . num_fevals / self . max_fevals )
288- elif self .max_fevals is not None :
289- return min ( 1.0 , self . num_fevals / self . max_fevals )
290- elif self .time_limit is not None :
291- return min ( 1.0 , self .get_time_spent () / self .time_limit )
292- else :
293- return 0.0
289+ result = 0.0
290+
291+ if self .max_fevals is not None :
292+ result = max ( result , self .num_fevals / self . max_fevals )
293+
294+ if self .time_limit is not None :
295+ result = max ( result , self .get_time_spent () / self .time_limit )
296+
297+ return min ( 1.0 , result )
294298
295299
296300def check_tune_params_list (tune_params , observers , simulation_mode = False ):
@@ -1322,7 +1326,9 @@ def process_cache(cachefile, kernel_options, tuning_options, runner):
13221326 # if in simulation mode, use the device name from the cache file as the runner device name
13231327 if runner .simulation_mode :
13241328 device_name = cached_data ["device_name" ]
1325- runner .dev .name = device_name # Is this always safe?
1329+
1330+ # Is this always safe?
1331+ runner .dev .name = device_name
13261332
13271333 # check if it is safe to continue tuning from this cache
13281334 if cached_data ["device_name" ] != device_name :
0 commit comments