Add round_up_multiple_32() and round_up_multiple_64()

pull/1518/head
Jens Steube 6 years ago
parent f75accef59
commit 1af8e29a4b

@ -64,4 +64,7 @@ u64 hc_strtoull (const char *nptr, char **endptr, int base);
u32 power_of_two_ceil_32 (const u32 v);
u32 power_of_two_floor_32 (const u32 v);
u32 round_up_multiple_32 (const u32 v, const u32 m);
u64 round_up_multiple_64 (const u64 v, const u64 m);
#endif // _SHARED_H

@ -1573,7 +1573,7 @@ int run_kernel (hashcat_ctx_t *hashcat_ctx, hc_device_param_t *device_param, con
// kernel_threads = power_of_two_floor_32 (kernel_threads);
while (num_elements % kernel_threads) num_elements++;
num_elements = round_up_multiple_64 (num_elements, kernel_threads);
int CL_rc;
@ -1762,7 +1762,7 @@ int run_kernel_mp (hashcat_ctx_t *hashcat_ctx, hc_device_param_t *device_param,
return -1;
}
while (num_elements % kernel_threads) num_elements++;
num_elements = round_up_multiple_64 (num_elements, kernel_threads);
int CL_rc;
@ -1846,7 +1846,7 @@ int run_kernel_amp (hashcat_ctx_t *hashcat_ctx, hc_device_param_t *device_param,
const u64 kernel_threads = device_param->kernel_wgs_amp;
while (num_elements % kernel_threads) num_elements++;
num_elements = round_up_multiple_64 (num_elements, kernel_threads);
cl_kernel kernel = device_param->kernel_amp;
@ -1882,7 +1882,7 @@ int run_kernel_atinit (hashcat_ctx_t *hashcat_ctx, hc_device_param_t *device_par
const u64 kernel_threads = device_param->kernel_wgs_atinit;
while (num_elements % kernel_threads) num_elements++;
num_elements = round_up_multiple_64 (num_elements, kernel_threads);
cl_kernel kernel = device_param->kernel_atinit;
@ -1928,7 +1928,7 @@ int run_kernel_memset (hashcat_ctx_t *hashcat_ctx, hc_device_param_t *device_par
u64 num_elements = num16d;
while (num_elements % kernel_threads) num_elements++;
num_elements = round_up_multiple_64 (num_elements, kernel_threads);
cl_kernel kernel = device_param->kernel_memset;
@ -1981,7 +1981,7 @@ int run_kernel_decompress (hashcat_ctx_t *hashcat_ctx, hc_device_param_t *device
const u64 kernel_threads = device_param->kernel_wgs_decompress;
while (num_elements % kernel_threads) num_elements++;
num_elements = round_up_multiple_64 (num_elements, kernel_threads);
cl_kernel kernel = device_param->kernel_decompress;

@ -535,3 +535,25 @@ u32 power_of_two_floor_32 (const u32 v)
return r;
}
u32 round_up_multiple_32 (const u32 v, const u32 m)
{
if (m == 0) return v;
const u32 r = v % m;
if (r == 0) return v;
return v + m - r;
}
u64 round_up_multiple_64 (const u64 v, const u64 m)
{
if (m == 0) return v;
const u64 r = v % m;
if (r == 0) return v;
return v + m - r;
}

Loading…
Cancel
Save