mirror of
https://github.com/hashcat/hashcat.git
synced 2024-11-22 16:18:09 +00:00
Find alias devices across different backend API's
This commit is contained in:
parent
6fd936b43a
commit
495d89f831
@ -996,6 +996,10 @@ typedef struct hc_device_param
|
||||
{
|
||||
int device_id;
|
||||
|
||||
// this occurs if the same device (pci address) is used by multiple backend API
|
||||
int device_id_alias_cnt;
|
||||
int device_id_alias_buf[DEVICES_MAX];
|
||||
|
||||
u8 pcie_bus;
|
||||
u8 pcie_device;
|
||||
u8 pcie_function;
|
||||
|
@ -46,7 +46,7 @@ static bool is_same_device (const hc_device_param_t *src, const hc_device_param_
|
||||
return true;
|
||||
}
|
||||
|
||||
static int backend_ctx_find_duplicate_devices (hashcat_ctx_t *hashcat_ctx)
|
||||
static int backend_ctx_find_alias_devices (hashcat_ctx_t *hashcat_ctx)
|
||||
{
|
||||
backend_ctx_t *backend_ctx = hashcat_ctx->backend_ctx;
|
||||
|
||||
@ -68,9 +68,18 @@ static int backend_ctx_find_duplicate_devices (hashcat_ctx_t *hashcat_ctx)
|
||||
|
||||
if (is_same_device (device_param_src, device_param_dst) == false) continue;
|
||||
|
||||
device_param_src->device_id_alias_buf[device_param_src->device_id_alias_cnt] = device_param_dst->device_id;
|
||||
device_param_src->device_id_alias_cnt++;
|
||||
|
||||
device_param_dst->device_id_alias_buf[device_param_dst->device_id_alias_cnt] = device_param_src->device_id;
|
||||
device_param_dst->device_id_alias_cnt++;
|
||||
|
||||
if (device_param_dst->is_opencl == true)
|
||||
{
|
||||
device_param_dst->skipped = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
@ -579,7 +588,7 @@ int nvrtc_init (hashcat_ctx_t *hashcat_ctx)
|
||||
memset (nvrtc, 0, sizeof (NVRTC_PTR));
|
||||
|
||||
#if defined (_WIN)
|
||||
nvrtc->lib = hc_dlopen ("nvrtc");
|
||||
nvrtc->lib = hc_dlopen ("c:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v10.1\\nvrtc.lib");
|
||||
#elif defined (__APPLE__)
|
||||
nvrtc->lib = hc_dlopen ("/System/Library/Frameworks/NVRTC.framework/NVRTC");
|
||||
#elif defined (__CYGWIN__)
|
||||
@ -764,7 +773,7 @@ int cuda_init (hashcat_ctx_t *hashcat_ctx)
|
||||
memset (cuda, 0, sizeof (CUDA_PTR));
|
||||
|
||||
#if defined (_WIN)
|
||||
cuda->lib = hc_dlopen ("cuda");
|
||||
cuda->lib = hc_dlopen ("c:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v10.1\\cuda.lib");
|
||||
#elif defined (__APPLE__)
|
||||
cuda->lib = hc_dlopen ("/System/Library/Frameworks/CUDA.framework/CUDA");
|
||||
#elif defined (__CYGWIN__)
|
||||
@ -3812,6 +3821,8 @@ int backend_ctx_devices_init (hashcat_ctx_t *hashcat_ctx, const int comptime)
|
||||
|
||||
device_param->cuda_device = cuda_device;
|
||||
|
||||
device_param->is_cuda = true;
|
||||
|
||||
// device_name
|
||||
|
||||
char *device_name = (char *) hcmalloc (HCBUFSIZ_TINY);
|
||||
@ -4119,6 +4130,8 @@ int backend_ctx_devices_init (hashcat_ctx_t *hashcat_ctx, const int comptime)
|
||||
|
||||
device_param->opencl_platform = opencl_platform;
|
||||
|
||||
device_param->is_opencl = true;
|
||||
|
||||
// opencl_device_type
|
||||
|
||||
cl_device_type opencl_device_type;
|
||||
@ -4942,7 +4955,7 @@ int backend_ctx_devices_init (hashcat_ctx_t *hashcat_ctx, const int comptime)
|
||||
|
||||
if (user_options->force == false)
|
||||
{
|
||||
backend_ctx_find_duplicate_devices (hashcat_ctx);
|
||||
backend_ctx_find_alias_devices (hashcat_ctx);
|
||||
}
|
||||
|
||||
// additional check to see if the user has chosen a device that is not within the range of available devices (i.e. larger than devices_cnt)
|
||||
|
@ -682,7 +682,15 @@ void opencl_info (hashcat_ctx_t *hashcat_ctx)
|
||||
u32 device_maxclock_frequency = device_param->device_maxclock_frequency;
|
||||
u64 device_global_mem = device_param->device_global_mem;
|
||||
|
||||
if (device_param->device_id_alias_cnt)
|
||||
{
|
||||
event_log_info (hashcat_ctx, "Backend Device ID #%d (alias: #%d)", device_id + 1, device_param->device_id_alias_buf[0] + 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
event_log_info (hashcat_ctx, "Backend Device ID #%d", device_id + 1);
|
||||
}
|
||||
|
||||
event_log_info (hashcat_ctx, " Name...........: %s", device_name);
|
||||
event_log_info (hashcat_ctx, " Processor(s)...: %u", device_processors);
|
||||
event_log_info (hashcat_ctx, " Clock..........: %u", device_maxclock_frequency);
|
||||
@ -735,7 +743,15 @@ void opencl_info (hashcat_ctx_t *hashcat_ctx)
|
||||
char *opencl_device_version = device_param->opencl_device_version;
|
||||
char *opencl_driver_version = device_param->opencl_driver_version;
|
||||
|
||||
if (device_param->device_id_alias_cnt)
|
||||
{
|
||||
event_log_info (hashcat_ctx, " Backend Device ID #%d (alias: #%d)", device_id + 1, device_param->device_id_alias_buf[0] + 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
event_log_info (hashcat_ctx, " Backend Device ID #%d", device_id + 1);
|
||||
}
|
||||
|
||||
event_log_info (hashcat_ctx, " Type...........: %s", ((opencl_device_type & CL_DEVICE_TYPE_CPU) ? "CPU" : ((opencl_device_type & CL_DEVICE_TYPE_GPU) ? "GPU" : "Accelerator")));
|
||||
event_log_info (hashcat_ctx, " Vendor.ID......: %u", opencl_device_vendor_id);
|
||||
event_log_info (hashcat_ctx, " Vendor.........: %s", opencl_device_vendor);
|
||||
@ -789,7 +805,7 @@ void opencl_info_compact (hashcat_ctx_t *hashcat_ctx)
|
||||
|
||||
if ((device_param->skipped == false) && (device_param->skipped_warning == false))
|
||||
{
|
||||
event_log_info (hashcat_ctx, "* Device #%u: %s, %" PRIu64 " MB allocatable, %uMCU",
|
||||
event_log_info (hashcat_ctx, "* Device #%u: %s, %" PRIu64 " MB, %uMCU",
|
||||
device_id + 1,
|
||||
device_name,
|
||||
device_global_mem / 1024 / 1024,
|
||||
|
Loading…
Reference in New Issue
Block a user