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.