cuInit(): no CUDA-capable device is detected on WSL2 The-Distribution-Which-Does-Not-Handle-OpenCL-Well (Kali)
#1
running device query:
Code:
./deviceQuery Starting...

CUDA Device Query (Runtime API) version (CUDART static linking)

Detected 1 CUDA Capable device(s)

Device 0: "NVIDIA GeForce RTX 3080 Ti"
  CUDA Driver Version / Runtime Version          12.2 / 12.2
  CUDA Capability Major/Minor version number:    8.6
  Total amount of global memory:                12288 MBytes (12884377600 bytes)
  (80) Multiprocessors, (128) CUDA Cores/MP:    10240 CUDA Cores
  GPU Max Clock rate:                            1665 MHz (1.66 GHz)
  Memory Clock rate:                            9501 Mhz
  Memory Bus Width:                              384-bit
  L2 Cache Size:                                6291456 bytes
  Maximum Texture Dimension Size (x,y,z)        1D=(131072), 2D=(131072, 65536), 3D=(16384, 16384, 16384)
  Maximum Layered 1D Texture Size, (num) layers  1D=(32768), 2048 layers
  Maximum Layered 2D Texture Size, (num) layers  2D=(32768, 32768), 2048 layers
  Total amount of constant memory:              65536 bytes
  Total amount of shared memory per block:      49152 bytes
  Total number of registers available per block: 65536
  Warp size:                                    32
  Maximum number of threads per multiprocessor:  1536
  Maximum number of threads per block:          1024
  Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
  Max dimension size of a grid size    (x,y,z): (2147483647, 65535, 65535)
  Maximum memory pitch:                          2147483647 bytes
  Texture alignment:                            512 bytes
  Concurrent copy and kernel execution:          Yes with 1 copy engine(s)
  Run time limit on kernels:                    Yes
  Integrated GPU sharing Host Memory:            No
  Support host page-locked memory mapping:      Yes
  Alignment requirement for Surfaces:            Yes
  Device has ECC support:                        Disabled
  Device supports Unified Addressing (UVA):      Yes
  Device supports Compute Preemption:            Yes
  Supports Cooperative Kernel Launch:            Yes
  Supports MultiDevice Co-op Kernel Launch:      No
  Device PCI Domain ID / Bus ID / location ID:  0 / 1 / 0
  Compute Mode:
    < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >

deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 12.2, CUDA Runtime Version = 12.2, NumDevs = 1, Device0 = NVIDIA GeForce RTX 3080 Ti
Result = PASS


running hashcat -I:
Code:
hashcat -I
hashcat (v6.2.6) starting in backend information mode

cuInit(): no CUDA-capable device is detected

OpenCL Info:
============

OpenCL Platform ID #1
  Vendor..: The pocl project
  Name....: Portable Computing Language
  Version.: OpenCL 3.0 PoCL 4.0+debian  Linux, None+Asserts, RELOC, SPIR, LLVM 15.0.7, SLEEF, DISTRO, POCL_DEBUG

  Backend Device ID #1
    Type...........: CPU
    Vendor.ID......: 128
    Vendor.........: GenuineIntel
    Name...........: cpu-haswell-13th Gen Intel(R) Core(TM) i7-13700KF
    Version........: OpenCL 3.0 PoCL HSTR: cpu-x86_64-pc-linux-gnu-haswell
    Processor(s)...: 24
    Clock..........: 3417
    Memory.Total...: 13851 MB (limited to 2048 MB allocatable in one block)
    Memory.Free....: 6893 MB
    Local.Memory...: 2048 KB
    OpenCL.Version.: OpenCL C 1.2 PoCL
    Driver.Version.: 4.0+debian

Code:
nvidia-smi
Sun Sep 24 13:55:35 2023
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.125.06  Driver Version: 537.42      CUDA Version: 12.2    |
|-------------------------------+----------------------+----------------------+
| 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 ...  On  | 00000000:01:00.0  On |                  N/A |
|  0%  59C    P8    66W / 350W |  1011MiB / 12288MiB |      1%      Default |
|                              |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU  GI  CI        PID  Type  Process name                  GPU Memory |
|        ID  ID                                                  Usage      |
|=============================================================================|
|    0  N/A  N/A      100      G  /Xwayland                      N/A      |
+-----------------------------------------------------------------------------+
Reply
#2
It seems you're encountering an issue with CUDA on WSL2 with The-Distribution-Which-Does-Not-Handle-OpenCL-Well (Kali) Linux.
To resolve this problem, you can follow these steps:

1. Check Your WSL2 Configuration:
  - Ensure that you have WSL2 properly installed and configured on your Windows machine.
  - Make sure you have the necessary drivers for your GPU installed on your Windows host machine.

2. Update The-Distribution-Which-Does-Not-Handle-OpenCL-Well (Kali) Linux:
  - Open your The-Distribution-Which-Does-Not-Handle-OpenCL-Well (Kali) Linux terminal.
  - Run the following commands to update your The-Distribution-Which-Does-Not-Handle-OpenCL-Well (Kali) Linux distribution:
Code:
sudo apt update
sudo apt upgrade



3. Install NVIDIA Drivers for WSL:
  - Install the NVIDIA drivers for WSL by running the following commands:
Code:
    sudo apt install nvidia-driver


4. Reboot Your System:
  - After installing the drivers, reboot your computer to ensure the changes take effect.

5. Verify CUDA Installation:
  - After rebooting, open your The-Distribution-Which-Does-Not-Handle-OpenCL-Well (Kali) Linux terminal again and verify that CUDA is installed correctly:
Code:
    nvcc --version


6. Check CUDA Device:
  - To check if CUDA-capable devices are detected, you can run:
Code:
    nvidia-smi


  - If no devices are detected, it's possible that your GPU is not compatible with WSL2 or there may be a configuration issue on your Windows host.

7. WSL2 Configuration File:
  - Ensure that the `.wslconfig` file on your Windows host is properly configured to support GPU acceleration. You can create or modify this file in your user directory (`C:\Users\<your_username>\.wslconfig`). An example configuration for GPU support might look like this:
Code:
    [wsl2]
    memory=4GB  # Your preferred memory allocation
    processors=2 # Your preferred CPU allocation


8. Check WSL2 Version:
  - Make sure you are using WSL2. You can check the WSL version by running:
Code:
    wsl --list --verbose


9. WSL2 Kernel Update:
  - Ensure that you are using the latest WSL2 kernel. You can update it from the [Microsoft WSL GitHub repository](https://github.com/microsoft/WSL2-Linux-Kernel).

10. Come back to Forum:
  - If you've followed these steps and are still facing issues, I can't help you anymore. Maybe someone else can.
Reply
#3
I met the same question on WSL2 Ubuntu 22.04.

Code:
./deviceQuery Starting...
CUDA Device Query (Runtime API) version (CUDART static linking)
Detected 1 CUDA Capable device(s)
Device 0: "NVIDIA GeForce RTX 4060 Laptop GPU"
  CUDA Driver Version / Runtime Version          12.4 / 12.6
  CUDA Capability Major/Minor version number:    8.9
  Total amount of global memory:                8188 MBytes (8585216000 bytes)
  (024) Multiprocessors, (128) CUDA Cores/MP:    3072 CUDA Cores
  GPU Max Clock rate:                            1890 MHz (1.89 GHz)
  Memory Clock rate:                            8001 Mhz
  Memory Bus Width:                              128-bit
  L2 Cache Size:                                33554432 bytes
  Maximum Texture Dimension Size (x,y,z)        1D=(131072), 2D=(131072, 65536), 3D=(16384, 16384, 16384)
  Maximum Layered 1D Texture Size, (num) layers  1D=(32768), 2048 layers
  Maximum Layered 2D Texture Size, (num) layers  2D=(32768, 32768), 2048 layers
  Total amount of constant memory:              65536 bytes
  Total amount of shared memory per block:      49152 bytes
  Total shared memory per multiprocessor:        102400 bytes
  Total number of registers available per block: 65536
  Warp size:                                    32
  Maximum number of threads per multiprocessor:  1536
  Maximum number of threads per block:          1024
  Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
  Max dimension size of a grid size    (x,y,z): (2147483647, 65535, 65535)
  Maximum memory pitch:                          2147483647 bytes
  Texture alignment:                            512 bytes
  Concurrent copy and kernel execution:          Yes with 1 copy engine(s)
  Run time limit on kernels:                    Yes
  Integrated GPU sharing Host Memory:            No
  Support host page-locked memory mapping:      Yes
  Alignment requirement for Surfaces:            Yes
  Device has ECC support:                        Disabled
  Device supports Unified Addressing (UVA):      Yes
  Device supports Managed Memory:                Yes
  Device supports Compute Preemption:            Yes
  Supports Cooperative Kernel Launch:            Yes
  Supports MultiDevice Co-op Kernel Launch:      No
  Device PCI Domain ID / Bus ID / location ID:  0 / 1 / 0
  Compute Mode:
    < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >
deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 12.4, CUDA Runtime Version = 12.6, NumDevs = 1
Result = PASS

Code:
hashcat -I
hashcat (v6.2.5) starting in backend information mode

cuInit(): no CUDA-capable device is detected

OpenCL Info:
============

OpenCL Platform ID #1
  Vendor..: The pocl project
  Name....: Portable Computing Language
  Version.: OpenCL 2.0 pocl 1.8  Linux, None+Asserts, RELOC, LLVM 11.1.0, SLEEF, DISTRO, POCL_DEBUG

  Backend Device ID #1
    Type...........: CPU
    Vendor.ID......: 128
    Vendor.........: GenuineIntel
    Name...........: pthread-13th Gen Intel(R) Core(TM) i9-13900HX
    Version........: OpenCL 1.2 pocl HSTR: pthread-x86_64-pc-linux-gnu-goldmont
    Processor(s)...: 32
    Clock..........: 2419
    Memory.Total...: 13943 MB (limited to 2048 MB allocatable in one block)
    Memory.Free....: 6939 MB
    OpenCL.Version.: OpenCL C 1.2 pocl
    Driver.Version.: 1.8
Reply
#4
There's no reason to run Hashcat in WSL, it performs just fine on Windows and the extra virtualisation slows it down very significantly and, as you're experiencing, adds a lot of stability problems. Just download the binaries from the top of https://hashcat.net and run it directly in Windows
Reply
#5
(08-18-2024, 07:21 PM)penguinkeeper Wrote: There's no reason to run Hashcat in WSL, it performs just fine on Windows and the extra virtualisation slows it down very significantly and, as you're experiencing, adds a lot of stability problems. Just download the binaries from the top of https://hashcat.net and run it directly in Windows

you should use latest version from here, as the latest official release is also quite old

https://hashcat.net/beta/
Reply