From 81c2ab2ded3eb32e09c062ab6d960a0536d5dec7 Mon Sep 17 00:00:00 2001 From: jsteube Date: Thu, 21 Sep 2017 16:27:27 +0200 Subject: [PATCH] OpenCL Runtime: On AMD GPU, recommend AMD ROCm driver for Linux --- docs/changes.txt | 1 + docs/readme.txt | 4 ++-- src/opencl.c | 7 ++++++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/docs/changes.txt b/docs/changes.txt index 410cb50c4..aede0901d 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -77,6 +77,7 @@ - OpenCL Kernels: Declared all include functions as static to reduce binary kernel cache size - OpenCL Kernels: On AMD GPU, optimized kernels for use with AMD ROCm driver - OpenCL Kernels: Removed some include functions that are no longer needed to reduce compile time +- OpenCL Runtime: On AMD GPU, recommend AMD ROCm driver for Linux - OpenCL Runtime: Fall back to 64 threads default (from 256) on AMD GPU to prevent creating too many workitems - OpenCL Runtime: Forcing OpenCL 1.2 no longer needed. Option removed from build options - Restore: Fixed the version number used in the restore file header diff --git a/docs/readme.txt b/docs/readme.txt index 5eb29f200..e2add272c 100644 --- a/docs/readme.txt +++ b/docs/readme.txt @@ -1,11 +1,11 @@ hashcat v4.0.0 ============== +AMD GPUs on Linux require "RadeonOpenCompute (ROCm)" Software Platform (1.6.0 or later) AMD GPUs on Windows require "AMD Radeon Software Crimson Edition" (15.12 or later) -AMD GPUs on Linux require "AMDGPU-PRO Driver" (16.40 or later) Intel CPUs require "OpenCL Runtime for Intel Core and Intel Xeon Processors" (16.1.1 or later) -Intel GPUs on Windows require "OpenCL Driver for Intel Iris and Intel HD Graphics" Intel GPUs on Linux require "OpenCL 2.0 GPU Driver Package for Linux" (2.0 or later) +Intel GPUs on Windows require "OpenCL Driver for Intel Iris and Intel HD Graphics" NVIDIA GPUs require "NVIDIA Driver" (367.x or later) ## diff --git a/src/opencl.c b/src/opencl.c index a10d34de5..b1d32794e 100644 --- a/src/opencl.c +++ b/src/opencl.c @@ -456,7 +456,7 @@ int ocl_init (hashcat_ctx_t *hashcat_ctx) #if defined (__linux__) event_log_warning (hashcat_ctx, "* AMD GPUs on Linux require this runtime and/or driver:"); - event_log_warning (hashcat_ctx, " \"AMDGPU-PRO Driver\" (16.40 or later)"); + event_log_warning (hashcat_ctx, " \"RadeonOpenCompute (ROCm)\" Software Platform (1.6.0 or later)"); #elif defined (_WIN) event_log_warning (hashcat_ctx, "* AMD GPUs on Windows require this runtime and/or driver:"); event_log_warning (hashcat_ctx, " \"AMD Radeon Software Crimson Edition\" (15.12 or later)"); @@ -3306,6 +3306,10 @@ int opencl_ctx_devices_init (hashcat_ctx_t *hashcat_ctx, const int comptime) #if defined (__linux__) if (device_param->is_rocm == false) { + // ROCm is so much better, give the user some hint. + // They can still use --force to use AMDGPU-Pro. + + /* // AMDGPU-PRO Driver 16.40 and higher if (atoi (device_param->driver_version) >= 2117) amd_warn = false; // AMDGPU-PRO Driver 16.50 is known to be broken @@ -3315,6 +3319,7 @@ int opencl_ctx_devices_init (hashcat_ctx_t *hashcat_ctx, const int comptime) // AMDGPU-PRO Driver 17.10 is known to be broken if (atoi (device_param->driver_version) == 2348) amd_warn = true; // AMDGPU-PRO Driver 17.20 (2416) is fine, doesn't need check will match >= 2117 + */ } else {