DEScrypt Kernel (1500): Improved performance from 950MH/s to 2200MH/s (RX6900XT) on HIP backend by workaround invalid compile time optimizer

This commit is contained in:
Jens Steube 2022-12-03 16:48:44 +01:00
parent 570750a84d
commit 453ec4e7d9
3 changed files with 22 additions and 39 deletions

View File

@ -1913,6 +1913,12 @@ KERNEL_FQ void m01500_tm (KERN_ATTR_TM)
}
}
#ifndef DESCRYPT_SALT
KERNEL_FQ void m01500_sxx (KERN_ATTR_BITSLICE ())
{
}
KERNEL_FQ void m01500_mxx (KERN_ATTR_BITSLICE ())
{
/**
@ -2286,6 +2292,8 @@ KERNEL_FQ void m01500_mxx (KERN_ATTR_BITSLICE ())
}
}
#else
KERNEL_FQ void m01500_sxx (KERN_ATTR_BITSLICE ())
{
/**
@ -2679,3 +2687,9 @@ KERNEL_FQ void m01500_sxx (KERN_ATTR_BITSLICE ())
#endif
}
}
KERNEL_FQ void m01500_mxx (KERN_ATTR_BITSLICE ())
{
}
#endif

View File

@ -18,6 +18,12 @@
- Added hash-mode: bcrypt(sha256($pass))
- Added hash-mode: md5(md5($salt).md5(md5($pass)))
##
## Performance
##
- DEScrypt Kernel (1500): Improved performance from 950MH/s to 2200MH/s (RX6900XT) on HIP backend by workaround invalid compile time optimizer
##
## Bugs
##

View File

@ -137,46 +137,9 @@ char *module_jit_build_options (MAYBE_UNUSED const hashconfig_t *hashconfig, MAY
{
char *jit_build_options = NULL;
// Extra treatment for Apple systems
if (device_param->opencl_platform_vendor_id == VENDOR_ID_APPLE)
if ((user_options->attack_mode == ATTACK_MODE_BF) && (hashes->salts_cnt == 1) && (user_options->slow_candidates == false))
{
if ((user_options->attack_mode == ATTACK_MODE_BF) && (hashes->salts_cnt == 1) && (user_options->slow_candidates == false))
{
hc_asprintf (&jit_build_options, "-D DESCRYPT_SALT=%u", hashes->salts_buf[0].salt_buf[0] & 0xfff);
}
return jit_build_options;
}
if ((device_param->opencl_device_vendor_id == VENDOR_ID_INTEL_SDK) && (device_param->opencl_device_type & CL_DEVICE_TYPE_CPU))
{
if ((user_options->attack_mode == ATTACK_MODE_BF) && (hashes->salts_cnt == 1) && (user_options->slow_candidates == false))
{
hc_asprintf (&jit_build_options, "-D DESCRYPT_SALT=%u -D _unroll", hashes->salts_buf[0].salt_buf[0] & 0xfff);
}
}
// ROCM
else if ((device_param->opencl_device_vendor_id == VENDOR_ID_AMD) && (device_param->has_vperm == true))
{
if ((user_options->attack_mode == ATTACK_MODE_BF) && (hashes->salts_cnt == 1) && (user_options->slow_candidates == false))
{
hc_asprintf (&jit_build_options, "-D DESCRYPT_SALT=%u -D _unroll", hashes->salts_buf[0].salt_buf[0] & 0xfff);
}
}
// ROCM
else if (device_param->opencl_device_vendor_id == VENDOR_ID_AMD_USE_HIP)
{
if ((user_options->attack_mode == ATTACK_MODE_BF) && (hashes->salts_cnt == 1) && (user_options->slow_candidates == false))
{
hc_asprintf (&jit_build_options, "-D DESCRYPT_SALT=%u", hashes->salts_buf[0].salt_buf[0] & 0xfff);
}
}
else
{
if ((user_options->attack_mode == ATTACK_MODE_BF) && (hashes->salts_cnt == 1) && (user_options->slow_candidates == false))
{
hc_asprintf (&jit_build_options, "-D DESCRYPT_SALT=%u", hashes->salts_buf[0].salt_buf[0] & 0xfff);
}
hc_asprintf (&jit_build_options, "-D DESCRYPT_SALT=%u -D _unroll", hashes->salts_buf[0].salt_buf[0] & 0xfff);
}
return jit_build_options;