From 96a2c36f53a382d3fc8c43be83d3903327e4fca2 Mon Sep 17 00:00:00 2001 From: Jens Steube Date: Sat, 1 Feb 2020 19:32:03 +0100 Subject: [PATCH] Reduce CUDA Toolkit minimum version to 9.0 (even 8.0 should be sufficient) --- docs/changes.txt | 2 +- docs/readme.txt | 2 +- src/backend.c | 28 ++++++++++++++++++---------- 3 files changed, 20 insertions(+), 12 deletions(-) diff --git a/docs/changes.txt b/docs/changes.txt index 957117e86..a4062b5f2 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -155,7 +155,7 @@ - OpenCL Kernels: Moved "gpu_decompress", "gpu_memset" and "gpu_atinit" into shared.cl in order to reduce compile time - OpenCL Options: Removed --opencl-platforms filter in order to force backend device numbers to stay constant - Parsers: switched from strtok() to strtok_r() for thread safety -- Requirements: Add new requirement for NVIDIA GPU: CUDA Toolkit (10.1 or later) +- Requirements: Add new requirement for NVIDIA GPU: CUDA Toolkit (9.0 or later) - Requirements: Update runtime check for minimum NVIDIA driver version from 367.x to 418.56 or later - Test Script: Switched from /bin/bash to generic /bin/sh and updated code accordingly diff --git a/docs/readme.txt b/docs/readme.txt index 49a32db75..a524e8421 100644 --- a/docs/readme.txt +++ b/docs/readme.txt @@ -15,7 +15,7 @@ AMD GPUs on Windows require "AMD Radeon Software Crimson Edition" (15.12 or late Intel CPUs require "OpenCL Runtime for Intel Core and Intel Xeon Processors" (16.1.1 or later) 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" (418.56 or later) and "CUDA Toolkit" (10.1 or later) +NVIDIA GPUs require "NVIDIA Driver" (418.56 or later) and "CUDA Toolkit" (9.0 or later) ## ## Features diff --git a/src/backend.c b/src/backend.c index 91d8ddd5d..f7d73058a 100644 --- a/src/backend.c +++ b/src/backend.c @@ -697,10 +697,10 @@ int nvrtc_init (hashcat_ctx_t *hashcat_ctx) char dllname[100]; - for (int major = 20; major >= 10; major--) // older than 3.x do not ship _v2 functions anyway - // older than 7.x does not support sm 5.x - // older than 8.x does not have documentation archive online, no way to check if nvrtc support whatever we need - // older than 10.x is just a theoretical limit since we define 10.1 as the minimum required version + for (int major = 20; major >= 9; major--) // older than 3.x do not ship _v2 functions anyway + // older than 7.x does not support sm 5.x + // older than 8.x does not have documentation archive online, no way to check if nvrtc support whatever we need + // older than 9.x is just a theoretical limit since we define 9.0 as the minimum required version { for (int minor = 20; minor >= 0; minor--) { @@ -4920,6 +4920,16 @@ int backend_ctx_init (hashcat_ctx_t *hashcat_ctx) backend_ctx->nvrtc_driver_version = nvrtc_driver_version; + if (nvrtc_driver_version < 9000) + { + event_log_error (hashcat_ctx, "Outdated NVIDIA NVRTC driver version '%d' detected!", nvrtc_driver_version); + + event_log_warning (hashcat_ctx, "See hashcat.net for officially supported NVIDIA CUDA Toolkit versions."); + event_log_warning (hashcat_ctx, NULL); + + return -1; + } + // cuda version int cuda_driver_version = 0; @@ -4928,11 +4938,9 @@ int backend_ctx_init (hashcat_ctx_t *hashcat_ctx) backend_ctx->cuda_driver_version = cuda_driver_version; - // some pre-check - - if ((nvrtc_driver_version < 10000) || (cuda_driver_version < 10000)) + if (cuda_driver_version < 9000) { - event_log_error (hashcat_ctx, "Outdated NVIDIA CUDA Toolkit version '%d' detected!", cuda_driver_version); + event_log_error (hashcat_ctx, "Outdated NVIDIA CUDA driver version '%d' detected!", cuda_driver_version); event_log_warning (hashcat_ctx, "See hashcat.net for officially supported NVIDIA CUDA Toolkit versions."); event_log_warning (hashcat_ctx, NULL); @@ -5001,7 +5009,7 @@ int backend_ctx_init (hashcat_ctx_t *hashcat_ctx) event_log_warning (hashcat_ctx, "* NVIDIA GPUs require this runtime and/or driver (both):"); event_log_warning (hashcat_ctx, " \"NVIDIA Driver\" (418.56 or later)"); - event_log_warning (hashcat_ctx, " \"CUDA Toolkit\" (10.1 or later)"); + event_log_warning (hashcat_ctx, " \"CUDA Toolkit\" (9.0 or later)"); event_log_warning (hashcat_ctx, NULL); return -1; @@ -5283,7 +5291,7 @@ int backend_ctx_init (hashcat_ctx_t *hashcat_ctx) event_log_warning (hashcat_ctx, "* NVIDIA GPUs require this runtime and/or driver (both):"); event_log_warning (hashcat_ctx, " \"NVIDIA Driver\" (418.56 or later)"); - event_log_warning (hashcat_ctx, " \"CUDA Toolkit\" (10.1 or later)"); + event_log_warning (hashcat_ctx, " \"CUDA Toolkit\" (9.0 or later)"); event_log_warning (hashcat_ctx, NULL); return -1;