- double exec_ms_avg_prev = get_avg_exec_time (device_param, EXEC_CACHE);
-
- // a few caching rounds
-
- for (u32 i = 0; i < 2; i++)
- {
- hc_timer_set (&device_param->timer_speed);
-
- choose_kernel (device_param, data.attack_exec, data.attack_mode, data.opts_type, salt_buf, highest_pw_len, pws_cnt);
-
- double exec_ms_avg = get_avg_exec_time (device_param, EXEC_CACHE);
-
- exec_ms_avg_prev = exec_ms_avg;
- }
-
- // benchmark_repeats became a maximum possible repeats
-
- for (u32 i = 2; i < data.benchmark_repeats; i++)
- {
- hc_timer_set (&device_param->timer_speed);
-
- choose_kernel (device_param, data.attack_exec, data.attack_mode, data.opts_type, salt_buf, highest_pw_len, pws_cnt);
-
- double exec_ms_avg = get_avg_exec_time (device_param, EXEC_CACHE);
-
- if ((exec_ms_avg_prev / exec_ms_avg) < 1.001) break;
-
- exec_ms_avg_prev = exec_ms_avg;
- }