WSL2 + CUDA + GeForce RTX 3090 not working

Hi there,

For the life of me I cannot get PyTorch to work with CUDA in WSL2. I’ve been struggling with this problem for a couple of days now, and I’ve followed about every tutorial you can find online about how to make Torch+CUDA+WSL2 work (including Nvidia’s and this one). Any help is much appreciated.

Windows/WSL2 specs:
Windows 11, OS build 22000.376
WSL2 kernel: 5.10.60.1-microsoft-standard-WSL2
Ubuntu 20.04

GPU specs:
Nvidia GeForce RTX 3090
Nvidia Driver Version: 510.06 (from nvidia-smi)
Cuda Version supported up to 11.6 (from nvidia-smi)

I installed PyTorch with CUDA support using conda packages: conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch (using Python 3.8.12)

However, running torch.cuda.is_available() returns False and e.g. torch.zeros(1).cuda() gives RuntimeError: No CUDA GPUs are available

Here’s the output from collect_env.py:

Collecting environment information…
PyTorch version: 1.10.1
Is debug build: False
CUDA used to build PyTorch: 11.3
ROCM used to build PyTorch: N/A
OS: Ubuntu 20.04.3 LTS (x86_64)
GCC version: (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
Clang version: Could not collect
CMake version: version 3.16.3
Libc version: glibc-2.31
Python version: 3.8.12 | packaged by conda-forge | (default, Oct 12 2021, 21:57:06) [GCC 9.4.0] (64-bit runtime)
Python platform: Linux-5.10.60.1-microsoft-standard-WSL2-x86_64-with-glibc2.10
Is CUDA available: False
CUDA runtime version: Could not collect
GPU models and configuration: GPU 0: NVIDIA GeForce RTX 3090
Nvidia driver version: 510.06
cuDNN version: Probably one of the following:
/usr/lib/x86_64-linux-gnu/libcudnn.so.8.3.1
/usr/lib/x86_64-linux-gnu/libcudnn_adv_infer.so.8.3.1
/usr/lib/x86_64-linux-gnu/libcudnn_adv_train.so.8.3.1
/usr/lib/x86_64-linux-gnu/libcudnn_cnn_infer.so.8.3.1
/usr/lib/x86_64-linux-gnu/libcudnn_cnn_train.so.8.3.1
/usr/lib/x86_64-linux-gnu/libcudnn_ops_infer.so.8.3.1
/usr/lib/x86_64-linux-gnu/libcudnn_ops_train.so.8.3.1
HIP runtime version: N/A
MIOpen runtime version: N/A
Versions of relevant libraries:
[pip3] numpy==1.21.2
[pip3] torch==1.10.1
[pip3] torchaudio==0.10.1
[pip3] torchvision==0.11.2
[conda] blas 1.0 mkl
[conda] cudatoolkit 11.3.1 h2bc3f7f_2
[conda] ffmpeg 4.3 hf484d3e_0 pytorch
[conda] mkl 2021.4.0 h06a4308_640
[conda] mkl-service 2.4.0 py38h95df7f1_0 conda-forge
[conda] mkl_fft 1.3.1 py38h8666266_1 conda-forge
[conda] mkl_random 1.2.2 py38h1abd341_0 conda-forge
[conda] numpy 1.21.2 py38h20f2e39_0
[conda] numpy-base 1.21.2 py38h79a1101_0
[conda] pytorch 1.10.1 py3.8_cuda11.3_cudnn8.2.0_0 pytorch
[conda] pytorch-mutex 1.0 cuda pytorch
[conda] torchaudio 0.10.1 py38_cu113 pytorch
[conda] torchvision 0.11.2 py38_cu113 pytorch

I’ve tried building PyTorch from source as well, build is successful but alas the same problem persists.

For completeness sake, I should mention that if I install PyTorch with cudatoolkit=10.2 then the GPU is found (torch.cuda.is_available returns True), but since GeForce RTX 3090 isn’t supported by CUDA 10 an error is produced for e.g. torch.zeros(1).cuda() saying that NVIDIA GeForce RTX 3090 with CUDA capability sm_86 is not compatible with the current PyTorch installation.

When installing PyTorch in Windows (using conda and cudatoolkit=11.3) everything works perfectly.