diff --git a/docs/changes.txt b/docs/changes.txt index 2b2711a46..b85524af0 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -19,7 +19,7 @@ ## Technical ## -- Backend Devices: Reduce maximum workitems limited derived from available host memory down from to 8GB to 4GB per backend device +- Back-end devices: In -S mode, limit the number of workitems so that no more than 2GB of host memory is required per backend device - Makefile: Added wildcard include src/modules/module_*.mk directive so that plugin developers can add 3rd party libraries for their plugins - Rejects: Disabled checking of the minimum and maximum length of the password candidate in attack-mode 9 because they are incompatible - POCL: Added a workaround for an issue in POCL that uses a quote character as part of the path itself given to a path for the -I option diff --git a/src/backend.c b/src/backend.c index f4c8efbb4..a7548c95a 100644 --- a/src/backend.c +++ b/src/backend.c @@ -14546,11 +14546,19 @@ int backend_session_begin (hashcat_ctx_t *hashcat_ctx) // In theory this check could be disabled if we check if total video RAM < total host RAM, // but at this point of initialization phase we don't have this information available. - // We need to hard-code some value, let's assume that (in 2021) the host has at least 4GB ram per active GPU + // We need to hard-code some value, let's assume that (in 2021) the host has at least 8GB ram per active GPU - const u64 SIZE_4GB = 4ULL * 1024 * 1024 * 1024; + const u64 SIZE_8GB = 8ULL * 1024 * 1024 * 1024; - u64 accel_limit = SIZE_4GB; + u64 accel_limit = SIZE_8GB; + + // in slow candidate mode we need to keep the buffers on the host alive + // a high accel value doesn't help much here anyway + + if (user_options->slow_candidates == true) + { + accel_limit /= 4; + } // this is device_processors * kernel_threads