1
0
mirror of https://github.com/hashcat/hashcat.git synced 2024-12-27 17:08:12 +00:00

Make sure -T does not come in inflict with FIXED_LOCAL_SIZE

This commit is contained in:
jsteube 2019-03-20 10:22:26 +01:00
parent f08fe1fe90
commit aec49509b8
3 changed files with 42 additions and 21 deletions

View File

@ -89,20 +89,27 @@ char *module_jit_build_options (MAYBE_UNUSED const hashconfig_t *hashconfig, MAY
}
else
{
u32 overhead = 0;
if (device_param->device_vendor_id == VENDOR_ID_NV)
if (user_options->kernel_threads_chgd == true)
{
// note we need to use device_param->device_local_mem_size - 4 because opencl jit returns with:
// Entry function '...' uses too much shared data (0xc004 bytes, 0xc000 max)
// on my development system. no clue where the 4 bytes are spent.
// I did some research on this and it seems to be related with the datatype.
// For example, if i used u8 instead, there's only 1 byte wasted.
overhead = 4;
fixed_local_size = user_options->kernel_threads;
}
else
{
u32 overhead = 0;
fixed_local_size = (device_param->device_local_mem_size - overhead) / 4096;
if (device_param->device_vendor_id == VENDOR_ID_NV)
{
// note we need to use device_param->device_local_mem_size - 4 because opencl jit returns with:
// Entry function '...' uses too much shared data (0xc004 bytes, 0xc000 max)
// on my development system. no clue where the 4 bytes are spent.
// I did some research on this and it seems to be related with the datatype.
// For example, if i used u8 instead, there's only 1 byte wasted.
overhead = 4;
}
fixed_local_size = (device_param->device_local_mem_size - overhead) / 4096;
}
}
hc_asprintf (&jit_build_options, "-D FIXED_LOCAL_SIZE=%u", fixed_local_size);

View File

@ -82,14 +82,21 @@ char *module_jit_build_options (MAYBE_UNUSED const hashconfig_t *hashconfig, MAY
}
else
{
u32 overhead = 0;
if (device_param->device_vendor_id == VENDOR_ID_NV)
if (user_options->kernel_threads_chgd == true)
{
overhead = 4;
fixed_local_size = user_options->kernel_threads;
}
else
{
u32 overhead = 0;
fixed_local_size = (device_param->device_local_mem_size - overhead) / 4096;
if (device_param->device_vendor_id == VENDOR_ID_NV)
{
overhead = 4;
}
fixed_local_size = (device_param->device_local_mem_size - overhead) / 4096;
}
}
hc_asprintf (&jit_build_options, "-D FIXED_LOCAL_SIZE=%u", fixed_local_size);

View File

@ -74,14 +74,21 @@ char *module_jit_build_options (MAYBE_UNUSED const hashconfig_t *hashconfig, MAY
}
else
{
u32 overhead = 0;
if (device_param->device_vendor_id == VENDOR_ID_NV)
if (user_options->kernel_threads_chgd == true)
{
overhead = 4;
fixed_local_size = user_options->kernel_threads;
}
else
{
u32 overhead = 0;
fixed_local_size = (device_param->device_local_mem_size - overhead) / 4096;
if (device_param->device_vendor_id == VENDOR_ID_NV)
{
overhead = 4;
}
fixed_local_size = (device_param->device_local_mem_size - overhead) / 4096;
}
}
hc_asprintf (&jit_build_options, "-D FIXED_LOCAL_SIZE=%u", fixed_local_size);