mirror of
https://github.com/hashcat/hashcat.git
synced 2025-07-25 16:08:39 +00:00
Reenabled support for Intel GPU OpenCL runtime (Beignet and NEO) because a workaround was found (force -cl-std=CL2.0)
This commit is contained in:
parent
42358dc2f0
commit
ccacc508cb
@ -107,7 +107,7 @@
|
|||||||
- OpenCL Runtime: Do not run shared- and constant-memory size checks if their memory type is of type global memory (typically CPU)
|
- OpenCL Runtime: Do not run shared- and constant-memory size checks if their memory type is of type global memory (typically CPU)
|
||||||
- OpenCL Runtime: Improve ROCm detection and make sure to not confuse with recent AMDGPU drivers
|
- OpenCL Runtime: Improve ROCm detection and make sure to not confuse with recent AMDGPU drivers
|
||||||
- OpenCL Runtime: Not using amd_bytealign (amd_bitalign is fine) on AMDGPU driver drastically reduces JiT segfaults
|
- OpenCL Runtime: Not using amd_bytealign (amd_bitalign is fine) on AMDGPU driver drastically reduces JiT segfaults
|
||||||
- OpenCL Runtime: Reenabled support for Intel GPU OpenCL runtime
|
- OpenCL Runtime: Reenabled support for Intel GPU OpenCL runtime (Beignet and NEO) because a workaround was found (force -cl-std=CL2.0)
|
||||||
- OpenCL Runtime: Unlocked maximum thread count
|
- OpenCL Runtime: Unlocked maximum thread count
|
||||||
- OpenCL Runtime: Update unstable mode warnings for Apple and AMDGPU drivers
|
- OpenCL Runtime: Update unstable mode warnings for Apple and AMDGPU drivers
|
||||||
- OpenCL Runtime: Workaround JiT compiler error on AMDGPU driver compiling WPA-EAPOL-PBKDF2 OpenCL kernel
|
- OpenCL Runtime: Workaround JiT compiler error on AMDGPU driver compiling WPA-EAPOL-PBKDF2 OpenCL kernel
|
||||||
|
@ -1242,6 +1242,11 @@ typedef struct hc_device_param
|
|||||||
|
|
||||||
hc_timer_t timer_speed;
|
hc_timer_t timer_speed;
|
||||||
|
|
||||||
|
// Some more attributes
|
||||||
|
|
||||||
|
bool use_opencl12;
|
||||||
|
bool use_opencl20;
|
||||||
|
|
||||||
// AMD
|
// AMD
|
||||||
bool has_vadd;
|
bool has_vadd;
|
||||||
bool has_vaddc;
|
bool has_vaddc;
|
||||||
|
@ -5242,6 +5242,11 @@ int backend_ctx_devices_init (hashcat_ctx_t *hashcat_ctx, const int comptime)
|
|||||||
|
|
||||||
device_param->is_cuda = true;
|
device_param->is_cuda = true;
|
||||||
|
|
||||||
|
device_param->is_opencl = false;
|
||||||
|
|
||||||
|
device_param->use_opencl12 = false;
|
||||||
|
device_param->use_opencl20 = false;
|
||||||
|
|
||||||
// device_name
|
// device_name
|
||||||
|
|
||||||
char *device_name = (char *) hcmalloc (HCBUFSIZ_TINY);
|
char *device_name = (char *) hcmalloc (HCBUFSIZ_TINY);
|
||||||
@ -5550,8 +5555,13 @@ int backend_ctx_devices_init (hashcat_ctx_t *hashcat_ctx, const int comptime)
|
|||||||
|
|
||||||
//device_param->opencl_platform = opencl_platform;
|
//device_param->opencl_platform = opencl_platform;
|
||||||
|
|
||||||
|
device_param->is_cuda = false;
|
||||||
|
|
||||||
device_param->is_opencl = true;
|
device_param->is_opencl = true;
|
||||||
|
|
||||||
|
device_param->use_opencl12 = false;
|
||||||
|
device_param->use_opencl20 = false;
|
||||||
|
|
||||||
size_t param_value_size = 0;
|
size_t param_value_size = 0;
|
||||||
|
|
||||||
// opencl_device_type
|
// opencl_device_type
|
||||||
@ -5665,6 +5675,23 @@ int backend_ctx_devices_init (hashcat_ctx_t *hashcat_ctx, const int comptime)
|
|||||||
|
|
||||||
device_param->opencl_device_c_version = opencl_device_c_version;
|
device_param->opencl_device_c_version = opencl_device_c_version;
|
||||||
|
|
||||||
|
// check OpenCL version
|
||||||
|
|
||||||
|
int opencl_version_min = 0;
|
||||||
|
int opencl_version_maj = 0;
|
||||||
|
|
||||||
|
if (sscanf (opencl_device_c_version, "OpenCL C %d.%d", &opencl_version_min, &opencl_version_maj) == 2)
|
||||||
|
{
|
||||||
|
if ((opencl_version_min == 1) && (opencl_version_maj == 2))
|
||||||
|
{
|
||||||
|
device_param->use_opencl12 = true;
|
||||||
|
}
|
||||||
|
else if ((opencl_version_min == 2) && (opencl_version_maj == 0))
|
||||||
|
{
|
||||||
|
device_param->use_opencl20 = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// max_compute_units
|
// max_compute_units
|
||||||
|
|
||||||
cl_uint device_processors = 0;
|
cl_uint device_processors = 0;
|
||||||
@ -6142,17 +6169,6 @@ int backend_ctx_devices_init (hashcat_ctx_t *hashcat_ctx, const int comptime)
|
|||||||
if (user_options->quiet == false) event_log_warning (hashcat_ctx, " To disable the timeout, see: https://hashcat.net/q/timeoutpatch");
|
if (user_options->quiet == false) event_log_warning (hashcat_ctx, " To disable the timeout, see: https://hashcat.net/q/timeoutpatch");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((strstr (device_param->opencl_device_c_version, "beignet")) || (strstr (device_param->opencl_device_version, "beignet")))
|
|
||||||
{
|
|
||||||
event_log_error (hashcat_ctx, "* Device #%u: Intel beignet driver detected!", device_id + 1);
|
|
||||||
|
|
||||||
event_log_warning (hashcat_ctx, "The beignet driver has been marked as likely to fail kernel compilation.");
|
|
||||||
event_log_warning (hashcat_ctx, "You can use --force to override this, but do not report related errors.");
|
|
||||||
event_log_warning (hashcat_ctx, NULL);
|
|
||||||
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -7147,6 +7163,21 @@ int backend_session_begin (hashcat_ctx_t *hashcat_ctx)
|
|||||||
build_options_len += snprintf (build_options_buf + build_options_len, build_options_sz - build_options_len, "-D KERNEL_STATIC -I OpenCL -I %s ", folder_config->cpath_real);
|
build_options_len += snprintf (build_options_buf + build_options_len, build_options_sz - build_options_len, "-D KERNEL_STATIC -I OpenCL -I %s ", folder_config->cpath_real);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// workarounds reproduceable bugs on some OpenCL runtimes (Beignet and NEO)
|
||||||
|
// ex: remove empty code in m04, m08 and m16 in OpenCL/m05600_a3-optimized.cl will break s04 kernel (not cracking anymore)
|
||||||
|
|
||||||
|
if (device_param->is_opencl == true)
|
||||||
|
{
|
||||||
|
if (device_param->use_opencl12 == true)
|
||||||
|
{
|
||||||
|
build_options_len += snprintf (build_options_buf + build_options_len, build_options_sz - build_options_len, "-cl-std=CL1.2 ");
|
||||||
|
}
|
||||||
|
else if (device_param->use_opencl20 == true)
|
||||||
|
{
|
||||||
|
build_options_len += snprintf (build_options_buf + build_options_len, build_options_sz - build_options_len, "-cl-std=CL2.0 ");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// we don't have sm_* on vendors not NV but it doesn't matter
|
// we don't have sm_* on vendors not NV but it doesn't matter
|
||||||
|
|
||||||
#if defined (DEBUG)
|
#if defined (DEBUG)
|
||||||
|
@ -58,13 +58,10 @@ u32 module_pw_max (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED con
|
|||||||
|
|
||||||
bool module_unstable_warning (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra, MAYBE_UNUSED const hc_device_param_t *device_param)
|
bool module_unstable_warning (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra, MAYBE_UNUSED const hc_device_param_t *device_param)
|
||||||
{
|
{
|
||||||
if (device_param->opencl_platform_vendor_id == VENDOR_ID_APPLE)
|
// self-test failed
|
||||||
|
if ((device_param->opencl_device_vendor_id == VENDOR_ID_INTEL_SDK) && (device_param->opencl_device_type & CL_DEVICE_TYPE_GPU))
|
||||||
{
|
{
|
||||||
// self-test failed
|
return true;
|
||||||
if ((device_param->opencl_device_vendor_id == VENDOR_ID_INTEL_SDK) && (device_param->opencl_device_type & CL_DEVICE_TYPE_GPU))
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
@ -96,13 +96,10 @@ char *module_jit_build_options (MAYBE_UNUSED const hashconfig_t *hashconfig, MAY
|
|||||||
|
|
||||||
bool module_unstable_warning (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra, MAYBE_UNUSED const hc_device_param_t *device_param)
|
bool module_unstable_warning (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra, MAYBE_UNUSED const hc_device_param_t *device_param)
|
||||||
{
|
{
|
||||||
if (device_param->opencl_platform_vendor_id == VENDOR_ID_APPLE)
|
// self-test failed
|
||||||
|
if ((device_param->opencl_device_vendor_id == VENDOR_ID_INTEL_SDK) && (device_param->opencl_device_type & CL_DEVICE_TYPE_GPU))
|
||||||
{
|
{
|
||||||
// self-test failed
|
return true;
|
||||||
if ((device_param->opencl_device_vendor_id == VENDOR_ID_INTEL_SDK) && (device_param->opencl_device_type & CL_DEVICE_TYPE_GPU))
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// hangs somewhere in zlib inflate
|
// hangs somewhere in zlib inflate
|
||||||
|
Loading…
Reference in New Issue
Block a user