From fee37ac4c30a2dd4c6744cab329bca050da61ab7 Mon Sep 17 00:00:00 2001 From: jsteube Date: Sun, 3 Mar 2019 11:39:18 +0100 Subject: [PATCH] Migrate unroll handling for -m 8000 from OpenCL/inc_vendor.cl to module_jit_build_options() --- OpenCL/inc_vendor.cl | 7 ++++--- src/modules/module_08000.c | 14 +++++++++++++- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/OpenCL/inc_vendor.cl b/OpenCL/inc_vendor.cl index ad7d263b8..813c9a45a 100644 --- a/OpenCL/inc_vendor.cl +++ b/OpenCL/inc_vendor.cl @@ -105,6 +105,10 @@ // generic vendors: those algos have shown that they produce better results on both amd and nv when not unrolled // so we can assume they will produce better results on other vendors as well +#ifdef NO_UNROLL +#undef _unroll +#endif + #if KERN_TYPE == 1420 #undef _unroll #endif @@ -194,9 +198,6 @@ #ifdef IS_AMD #ifdef IS_GPU -#if KERN_TYPE == 8000 -#undef _unroll -#endif #if KERN_TYPE == 8200 #undef _unroll #endif diff --git a/src/modules/module_08000.c b/src/modules/module_08000.c index ed12c9a1e..4e57f12ff 100644 --- a/src/modules/module_08000.c +++ b/src/modules/module_08000.c @@ -56,6 +56,18 @@ u32 module_pw_max (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED con return pw_max; } +char *module_jit_build_options (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra, MAYBE_UNUSED const hashes_t *hashes, MAYBE_UNUSED const hc_device_param_t *device_param) +{ + char *jit_build_options = NULL; + + if ((device_param->device_vendor_id == VENDOR_ID_AMD) && (device_param->has_vperm == false)) + { + hc_asprintf (&jit_build_options, "-D NO_UNROLL"); + } + + return jit_build_options; +} + int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED void *digest_buf, MAYBE_UNUSED salt_t *salt, MAYBE_UNUSED void *esalt_buf, MAYBE_UNUSED void *hook_salt_buf, MAYBE_UNUSED hashinfo_t *hash_info, const char *line_buf, MAYBE_UNUSED const int line_len) { u32 *digest = (u32 *) digest_buf; @@ -181,7 +193,7 @@ void module_init (module_ctx_t *module_ctx) module_ctx->module_hook23 = MODULE_DEFAULT; module_ctx->module_hook_salt_size = MODULE_DEFAULT; module_ctx->module_hook_size = MODULE_DEFAULT; - module_ctx->module_jit_build_options = MODULE_DEFAULT; + module_ctx->module_jit_build_options = module_jit_build_options; module_ctx->module_jit_cache_disable = MODULE_DEFAULT; module_ctx->module_kernel_accel_max = MODULE_DEFAULT; module_ctx->module_kernel_accel_min = MODULE_DEFAULT;