mirror of
https://github.com/hashcat/hashcat.git
synced 2025-07-04 22:02:36 +00:00
Change amdhip64.dll installation path detection strategy
This commit is contained in:
parent
137d9e89e6
commit
d10ffbb461
@ -4384,6 +4384,17 @@ int backend_ctx_init (hashcat_ctx_t *hashcat_ctx)
|
|||||||
hip_close (hashcat_ctx);
|
hip_close (hashcat_ctx);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined (_WIN)
|
||||||
|
if ((rc_hip_init == 0) && (rc_hiprtc_init == -1))
|
||||||
|
{
|
||||||
|
event_log_warning (hashcat_ctx, "Support for HIPRTC was dropped by AMD Adrenalin Edition 22.7.1 and later.");
|
||||||
|
event_log_warning (hashcat_ctx, "This is not a hashcat problem.");
|
||||||
|
event_log_warning (hashcat_ctx, NULL);
|
||||||
|
event_log_warning (hashcat_ctx, "Please install the AMD HIP SDK");
|
||||||
|
event_log_warning (hashcat_ctx, NULL);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Load and map HIPRTC library calls
|
* Load and map HIPRTC library calls
|
||||||
*/
|
*/
|
||||||
@ -4401,17 +4412,6 @@ int backend_ctx_init (hashcat_ctx_t *hashcat_ctx)
|
|||||||
hiprtc_close (hashcat_ctx);
|
hiprtc_close (hashcat_ctx);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((rc_hip_init == 0) && (rc_hiprtc_init == -1))
|
|
||||||
{
|
|
||||||
#if defined (_WIN)
|
|
||||||
event_log_warning (hashcat_ctx, "Support for HIPRTC was dropped by AMD Adrenalin Edition 22.7.1 and later.");
|
|
||||||
event_log_warning (hashcat_ctx, "This is not a hashcat problem.");
|
|
||||||
event_log_warning (hashcat_ctx, NULL);
|
|
||||||
event_log_warning (hashcat_ctx, "Please install the AMD HIP SDK");
|
|
||||||
event_log_warning (hashcat_ctx, NULL);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check if both HIP and HIPRTC were load successful
|
* Check if both HIP and HIPRTC were load successful
|
||||||
*/
|
*/
|
||||||
@ -7149,6 +7149,39 @@ int backend_ctx_devices_init (hashcat_ctx_t *hashcat_ctx, const int comptime)
|
|||||||
device_param->pcie_bus = amdtopo.pcie.bus;
|
device_param->pcie_bus = amdtopo.pcie.bus;
|
||||||
device_param->pcie_device = amdtopo.pcie.device;
|
device_param->pcie_device = amdtopo.pcie.device;
|
||||||
device_param->pcie_function = amdtopo.pcie.function;
|
device_param->pcie_function = amdtopo.pcie.function;
|
||||||
|
|
||||||
|
if (user_options->stdout_flag == false)
|
||||||
|
{
|
||||||
|
// recommend HIP
|
||||||
|
|
||||||
|
if ((backend_ctx->hip == NULL) || (backend_ctx->hiprtc == NULL))
|
||||||
|
{
|
||||||
|
if (user_options->backend_ignore_hip == false)
|
||||||
|
{
|
||||||
|
if (backend_ctx->rc_hip_init == -1)
|
||||||
|
{
|
||||||
|
event_log_warning (hashcat_ctx, "Failed to initialize the AMD main driver HIP runtime library. Please install the AMD HIP SDK.");
|
||||||
|
event_log_warning (hashcat_ctx, NULL);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
event_log_warning (hashcat_ctx, "Successfully initialized the AMD main driver HIP runtime library.");
|
||||||
|
event_log_warning (hashcat_ctx, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (backend_ctx->rc_hiprtc_init == -1)
|
||||||
|
{
|
||||||
|
event_log_warning (hashcat_ctx, "Failed to initialize AMD HIP RTC library. Please install the AMD HIP SDK.");
|
||||||
|
event_log_warning (hashcat_ctx, NULL);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
event_log_warning (hashcat_ctx, "Successfully initialized AMD HIP RTC library.");
|
||||||
|
event_log_warning (hashcat_ctx, NULL);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((device_param->opencl_platform_vendor_id == VENDOR_ID_NV) && (device_param->opencl_device_vendor_id == VENDOR_ID_NV))
|
if ((device_param->opencl_platform_vendor_id == VENDOR_ID_NV) && (device_param->opencl_device_vendor_id == VENDOR_ID_NV))
|
||||||
|
@ -8,9 +8,39 @@
|
|||||||
#include "memory.h"
|
#include "memory.h"
|
||||||
#include "event.h"
|
#include "event.h"
|
||||||
#include "ext_hip.h"
|
#include "ext_hip.h"
|
||||||
|
#include "shared.h"
|
||||||
|
|
||||||
#include "dynloader.h"
|
#include "dynloader.h"
|
||||||
|
|
||||||
|
char *hipDllPath (char *hipSDKPath)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
AMD HIP DLLs is stored at "C:\Program Files\ROCm\X.Y\bin\amdhip64_X.dll"
|
||||||
|
|
||||||
|
This function can return complete dll path based on major release version
|
||||||
|
X.Y parsed from the ENV variable HIP_PATH.
|
||||||
|
*/
|
||||||
|
|
||||||
|
const char *marker = "\\ROCm\\";
|
||||||
|
|
||||||
|
int major = 0;
|
||||||
|
int minor = 0;
|
||||||
|
|
||||||
|
const char *version_start = strstr (hipSDKPath, marker);
|
||||||
|
|
||||||
|
if (version_start == NULL) return NULL;
|
||||||
|
|
||||||
|
version_start += strlen (marker); // now points at "6.2\\"
|
||||||
|
|
||||||
|
if (sscanf (version_start, "%d.%d", &major, &minor) != 2) return NULL;
|
||||||
|
|
||||||
|
char *hipdllpath = NULL;
|
||||||
|
|
||||||
|
hc_asprintf (&hipdllpath, "%s\\bin\\amdhip64_%d.dll", hipSDKPath, major);
|
||||||
|
|
||||||
|
return (hipdllpath);
|
||||||
|
}
|
||||||
|
|
||||||
int hip_init (void *hashcat_ctx)
|
int hip_init (void *hashcat_ctx)
|
||||||
{
|
{
|
||||||
backend_ctx_t *backend_ctx = ((hashcat_ctx_t *) hashcat_ctx)->backend_ctx;
|
backend_ctx_t *backend_ctx = ((hashcat_ctx_t *) hashcat_ctx)->backend_ctx;
|
||||||
@ -20,7 +50,22 @@ int hip_init (void *hashcat_ctx)
|
|||||||
memset (hip, 0, sizeof (HIP_PTR));
|
memset (hip, 0, sizeof (HIP_PTR));
|
||||||
|
|
||||||
#if defined (_WIN)
|
#if defined (_WIN)
|
||||||
hip->lib = hc_dlopen ("amdhip64.dll");
|
char *hipSDKPath = getenv ("HIP_PATH");
|
||||||
|
|
||||||
|
if (hipSDKPath == NULL) return -1;
|
||||||
|
|
||||||
|
char *hipdllpath = hipDllPath (hipSDKPath);
|
||||||
|
|
||||||
|
if (hipdllpath)
|
||||||
|
{
|
||||||
|
hip->lib = hc_dlopen (hipdllpath);
|
||||||
|
|
||||||
|
free (hipdllpath);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
#elif defined (__APPLE__)
|
#elif defined (__APPLE__)
|
||||||
hip->lib = hc_dlopen ("fixme.dylib");
|
hip->lib = hc_dlopen ("fixme.dylib");
|
||||||
#elif defined (__CYGWIN__)
|
#elif defined (__CYGWIN__)
|
||||||
|
Loading…
Reference in New Issue
Block a user