12-02-2021, 06:16 PM
(06-29-2020, 02:36 AM)TheAleph Wrote: Hi again!
Finally i was able to make hashcat to work with the CUDA SDK !!
The problem was related with the nvrtc.dll which was not loading and thus the if ((rc_cuda_init == 0) && (rc_nvrtc_init == 0)) on backend_ctx_init() was not executing!
OBS: The cuda_init() function is working fine now and nvcuda.dll is properly loaded after the driver was updated.
The dll was not loaded because on:
#elif defined (__CYGWIN__)
nvrtc->lib = hc_dlopen ("nvrtc.dll");
an incorrect name was being used
So just change the wrong name to the one of the dll which is on my system
#elif defined (__CYGWIN__)
//nvrtc->lib = hc_dlopen ("nvrtc.dll");
nvrtc->lib = hc_dlopen ("nvrtc64_110_0.dll");
and after rebuild the application the issue was fixed!!
Of course the modification must be done in a way that it work properly on any CUDA Toolkit SDks and to do that we can use the same code that the one used on:
#if defined (_WIN)
where it is used a logic to try the different posibles names of the dll or it could be possible to remove the elif defined (__CYGWIN__) branch and just use.
#if defined (_WIN) || defined (__CYGWIN__) instead of #if defined (_WIN)
which is what i finally did on the source.
To sumarize:
1) I have installed the latest NVIDIA driver 451.48
2) I have installed the latest CUDA Toolkit SDK (11.0 RC)
3) I have modified the backend.c source file to use the correct nvrtc DLL name on my system
and finally now it is working!
Just for the record with CUDA there is a 9,01% of increase on the speed of my kernel regarding OpenCL backend.
Many thanks
BR
Where can I find the backend.c source file? I can't find it.
Thanks in advance