1
0
mirror of https://github.com/hashcat/hashcat.git synced 2024-12-22 22:58:30 +00:00

Use CL_DEVICE_PROFILING_TIMER_RESOLUTION per-device value in total_time calculations

This commit is contained in:
Gabriele 'matrix' Gristina 2016-02-09 21:48:18 +01:00
parent 9fc360e39d
commit 523a7bfe93
2 changed files with 10 additions and 1 deletions

View File

@ -847,6 +847,7 @@ struct __hc_device_param
u64 device_maxmem_alloc; u64 device_maxmem_alloc;
u64 device_global_mem; u64 device_global_mem;
u32 device_maxclock_frequency; u32 device_maxclock_frequency;
u64 device_timer_resolution;
uint vector_width; uint vector_width;

View File

@ -797,7 +797,7 @@ void status_display_automat ()
hc_clGetEventProfilingInfo (data.ocl, device_param->event, CL_PROFILING_COMMAND_START, sizeof (time_start), &time_start, NULL); hc_clGetEventProfilingInfo (data.ocl, device_param->event, CL_PROFILING_COMMAND_START, sizeof (time_start), &time_start, NULL);
hc_clGetEventProfilingInfo (data.ocl, device_param->event, CL_PROFILING_COMMAND_END, sizeof (time_end), &time_end, NULL); hc_clGetEventProfilingInfo (data.ocl, device_param->event, CL_PROFILING_COMMAND_END, sizeof (time_end), &time_end, NULL);
const double total_time = (time_end - time_start) / 1000000.0; const double total_time = ((double)(time_end - time_start) * (double)(device_param->device_timer_resolution)) / 1000000.0;
fprintf (out, "%f\t", total_time); fprintf (out, "%f\t", total_time);
} }
@ -12579,6 +12579,14 @@ int main (int argc, char **argv)
device_param->device_maxclock_frequency = device_maxclock_frequency; device_param->device_maxclock_frequency = device_maxclock_frequency;
// device_timer_resolution
cl_ulong device_timer_resolution;
hc_clGetDeviceInfo (data.ocl, device_param->device, CL_DEVICE_PROFILING_TIMER_RESOLUTION, sizeof (device_timer_resolution), &device_timer_resolution, NULL);
device_param->device_timer_resolution = device_timer_resolution;
// skipped // skipped
const u32 skipped1 = ((devices_filter & (1 << device_id)) == 0); const u32 skipped1 = ((devices_filter & (1 << device_id)) == 0);