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