GPU wont work
#1
Greetings, good people!

Last time i used hashcat somewhere around 1.5 years ago. And everything worked fine if i remember it correctly.

But few days ago i tried launch benchmark, and hashcat refused to work with GPU. Output are next:
Code:
hashcat (v6.2.5) starting in benchmark mode Benchmarking uses hand-optimized kernel code by default. You can use it in your cracking session by setting the -O option. Note: Using optimized kernel code limits the maximum supported password length. To disable the optimized kernel code in benchmark mode, use the -w option. Successfully initialized NVIDIA CUDA library. Failed to initialize NVIDIA RTC library. * Device #1: CUDA SDK Toolkit not installed or incorrectly installed.             CUDA SDK Toolkit required for proper device support and utilization.             Falling back to OpenCL runtime. * Device #1: This hardware has outdated CUDA compute capability (3.0).             For modern OpenCL performance, upgrade to hardware that supports             CUDA compute capability version 5.0 (Maxwell) or higher. * Device #1: WARNING! Kernel exec timeout is not disabled.             This may cause "CL_OUT_OF_RESOURCES" or related errors.             To disable the timeout, see: https://hashcat.net/q/timeoutpatch nvmlDeviceGetCurrPcieLinkWidth(): Not Supported nvmlDeviceGetClockInfo(): Not Supported nvmlDeviceGetClockInfo(): Not Supported nvmlDeviceGetTemperatureThreshold(): Not Supported nvmlDeviceGetTemperatureThreshold(): Not Supported nvmlDeviceGetUtilizationRates(): Not Supported OpenCL API (OpenCL 3.0 CUDA 11.4.309) - Platform #1 [NVIDIA Corporation] ======================================================================== * Device #1: NVIDIA GeForce GTX 650, 832/973 MB (243 MB allocatable), 2MCU OpenCL API (OpenCL 2.1 LINUX) - Platform #2 [Intel(R) Corporation] ================================================================== * Device #2: Intel(R) Core(TM) i7-3770K CPU @ 3.50GHz, skipped Benchmark relevant options: =========================== * --optimized-kernel-enable ------------------- * Hash-Mode 0 (MD5) ------------------- * Device #1: Not enough allocatable device memory for this attack. Started: Tue Jan 10 09:37:00 2023 Stopped: Tue Jan 10 09:37:03 2023

Soooo.... in few days i tried couple thing.

Installing CUDA toolkit (as error suggests) from nvidia website turned out as a big failure, because its latest version, which obviously doesn't support 650. Also it for some reason installs latest driver. After this system doesn't load into GUI and shows some messages (see attachment).

Installing CUDA toolkit via
Code:
sudo apt install nvidia-cuda-toolkit
installs 11.5 something version and gives output in which it tells me that:
1) will be installed:
Code:
  libaccinj64-11.5 libcub-dev libcublas11 libcublaslt11 libcudart11.0 libcufft10 libcufftw10 libcuinj64-11.5 libcupti-dev libcupti-doc libcupti11.5 libcurand10 libcusolver11 libcusolvermg11 libcusparse11 libnppc11 libnppial11 libnppicc11 libnppidei11 libnppif11 libnppig11 libnppim11 libnppist11 libnppisu11 libnppitc11 libnpps11 libnvblas11 libnvidia-compute-495 libnvidia-compute-510 libnvidia-ml-dev libnvjpeg11 libnvrtc-builtins11.5 libnvrtc11.2 libnvtoolsext1 libnvvm4 libtbb-dev libtbb12 libtbbmalloc2 libthrust-dev libvdpau-dev node-html5shiv nsight-compute nsight-compute-target nsight-systems nsight-systems-target nvidia-cuda-dev nvidia-cuda-gdb nvidia-cuda-toolkit-doc nvidia-profiler nvidia-visual-profiler
2) will be deleted:     (Why it deletes 470* packages?)
Code:
  libnvidia-compute-470 libnvidia-compute-470:i386 libnvidia-decode-470 libnvidia-decode-470:i386 libnvidia-encode-470 libnvidia-encode-470:i386 nvidia-compute-utils-470 nvidia-driver-470 nvidia-utils-470
3) installed and doesn't need anymore:
Code:
  libnvidia-egl-wayland1 libnvidia-extra-470 libnvidia-fbc1-470 libnvidia-fbc1-470:i386 libnvidia-gl-470 libnvidia-ifr1-470 libnvidia-ifr1-470:i386 libxnvctrl0 nvidia-dkms-470 nvidia-kernel-common-470 nvidia-kernel-source-470 nvidia-prime nvidia-settings screen-resolution-extra
4) recommended package:
Code:
libnvcuvid1
5) suggested packages:
Code:
libtbb-doc libvdpau-doc nodejs

Before installing staff above
Code:
nvidia-smi
gives me
Code:
Tue Jan 10 10:07:41 2023      +-----------------------------------------------------------------------------+ | NVIDIA-SMI 470.161.03  Driver Version: 470.161.03  CUDA Version: 11.4    | |-------------------------------+----------------------+----------------------+ | GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC | | Fan  Temp  Perf  Pwr:Usage/Cap|        Memory-Usage | GPU-Util  Compute M. | |                              |                      |              MIG M. | |===============================+======================+======================| |  0  NVIDIA GeForce ...  Off  | 00000000:01:00.0 N/A |                  N/A | | 30%  36C    P8    N/A /  N/A |    243MiB /  973MiB |    N/A      Default | |                              |                      |                  N/A | +-------------------------------+----------------------+----------------------+                                                                               +-----------------------------------------------------------------------------+ | Processes:                                                                  | |  GPU  GI  CI        PID  Type  Process name                  GPU Memory | |        ID  ID                                                  Usage      | |=============================================================================| |  No running processes found                                                | +-----------------------------------------------------------------------------+
and
Code:
nvcc --version
gives
Code:
nvcc: Command not found.
Also
Code:
lspci -s 01:00.0 -v
output is
Code:
01:00.0 VGA compatible controller: NVIDIA Corporation GK107 [GeForce GTX 650] (rev a1) (prog-if 00 [VGA controller]) Subsystem: Gigabyte Technology Co., Ltd GK107 [GeForce GTX 650] Flags: bus master, fast devsel, latency 0, IRQ 27 Memory at f6000000 (32-bit, non-prefetchable) [size=16M] Memory at e0000000 (64-bit, prefetchable) [size=256M] Memory at f0000000 (64-bit, prefetchable) [size=32M] I/O ports at e000 [size=128] Expansion ROM at 000c0000 [virtual] [disabled] [size=128K] Capabilities: <access denied> Kernel driver in use: nvidia Kernel modules: nvidiafb, nouveau, nvidia_drm, nvidia
and
Code:
hashcat -I
tells that
Code:
hashcat (v6.2.5) starting in backend information mode Successfully initialized NVIDIA CUDA library. Failed to initialize NVIDIA RTC library. * Device #1: CUDA SDK Toolkit not installed or incorrectly installed.             CUDA SDK Toolkit required for proper device support and utilization.             Falling back to OpenCL runtime. OpenCL Info: ============ OpenCL Platform ID #1   Vendor..: NVIDIA Corporation   Name....: NVIDIA CUDA   Version.: OpenCL 3.0 CUDA 11.4.309   Backend Device ID #1     Type...........: GPU     Vendor.ID......: 32     Vendor.........: NVIDIA Corporation     Name...........: NVIDIA GeForce GTX 650     Version........: OpenCL 3.0 CUDA     Processor(s)...: 2     Clock..........: 1110     Memory.Total...: 973 MB (limited to 243 MB allocatable in one block)     Memory.Free....: 640 MB     OpenCL.Version.: OpenCL C 1.2     Driver.Version.: 470.161.03     PCI.Addr.BDF...: 01:00.0 OpenCL Platform ID #2   Vendor..: Intel(R) Corporation   Name....: Intel(R) CPU Runtime for OpenCL(TM) Applications   Version.: OpenCL 2.1 LINUX   Backend Device ID #2     Type...........: CPU     Vendor.ID......: 8     Vendor.........: Intel(R) Corporation     Name...........: Intel(R) Core(TM) i7-3770K CPU @ 3.50GHz     Version........: OpenCL 2.1 (Build 0)     Processor(s)...: 8     Clock..........: 3500     Memory.Total...: 24002 MB (limited to 3000 MB allocatable in one block)     Memory.Free....: 11969 MB     OpenCL.Version.: OpenCL C 2.0     Driver.Version.: 18.1.0.0920

After reboot,
Code:
hashcat -b
runs without those yellow and red error, except for one:
Code:
10:24 []dima@dima-desktop:/home/dima>hashcat -b hashcat (v6.2.5) starting in benchmark mode Benchmarking uses hand-optimized kernel code by default. You can use it in your cracking session by setting the -O option. Note: Using optimized kernel code limits the maximum supported password length. To disable the optimized kernel code in benchmark mode, use the -w option. ----->    cuInit(): forward compatibility was attempted on non supported HW OpenCL API (OpenCL 2.1 LINUX) - Platform #1 [Intel(R) Corporation] ================================================================== * Device #1: Intel(R) Core(TM) i7-3770K CPU @ 3.50GHz, 11969/24002 MB (3000 MB allocatable), 8MCU Benchmark relevant options: =========================== * --optimized-kernel-enable ------------------- * Hash-Mode 0 (MD5) ------------------- Speed.#1.........:  248.5 MH/s (33.57ms) @ Accel:1024 Loops:1024 Thr:1 Vec:4 ---------------------- * Hash-Mode 100 (SHA1) ---------------------- ^Z Suspended

Of course, "disabling" GPU at all is not a solution. Debug command shows next:
Code:
10:25 []dima@dima-desktop:/home/dima>hashcat -I hashcat (v6.2.5) starting in backend information mode cuInit(): forward compatibility was attempted on non supported HW OpenCL Info: ============ OpenCL Platform ID #1   Vendor..: Intel(R) Corporation   Name....: Intel(R) CPU Runtime for OpenCL(TM) Applications   Version.: OpenCL 2.1 LINUX   Backend Device ID #1     Type...........: CPU     Vendor.ID......: 8     Vendor.........: Intel(R) Corporation     Name...........: Intel(R) Core(TM) i7-3770K CPU @ 3.50GHz     Version........: OpenCL 2.1 (Build 0)     Processor(s)...: 8     Clock..........: 3500     Memory.Total...: 24002 MB (limited to 3000 MB allocatable in one block)     Memory.Free....: 11969 MB     OpenCL.Version.: OpenCL C 2.0     Driver.Version.: 18.1.0.0920
Code:
10:27 []dima@dima-desktop:/home/dima>nvidia-smi nvidia-smi: Command not found.
Code:
10:29 []dima@dima-desktop:/home/dima>nvcc --version nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2021 NVIDIA Corporation Built on Thu_Nov_18_09:45:30_PST_2021 Cuda compilation tools, release 11.5, V11.5.119 Build cuda_11.5.r11.5/compiler.30672275_0 10:29 []dima@dima-desktop:/home/dima>

Also i tried to install this, but didn't understood the result:
https://ubuntu.pkgs.org/20.04/cuda-amd64...4.deb.html

Its already too many letters, so i am gonna ask about what bothers me:
1) some suggests that 650 is too old and simply does not going to work, is there a chance that this is true? (but that strange, because only thing that changed over 1.5 years is ubuntu version - 20.04 to 22.04)
2) why cuda also installs drivers in one scenario, and deletes everything that has 470 in name in another?
3) i am pretty sure that i should see built in GPU into CPU as separate device, but where is it?

Any suggestions?


Attached Files
.jpg   IMG_20230108_225910-min.jpg (Size: 166.67 KB / Downloads: 3)
Reply
#2
CUDA SDK and Drivers have to fit to each other to work properly, newest sdk will install newest driver by default, so when using legacy driver 470* you have to know which cuda version you need or do some workarounds, see infos for cuda-compat installtions mentioned there
https://docs.nvidia.com/deploy/cuda-comp...index.html
Reply