Torch not compiled with CUDA enabled (in anaconda environment)

I am new to pytorch and I am trying to understand how to enable CUDA in an anaconda environment.

I have created my conda env with the following commands

conda create --name env_name
conda activate env_name
conda install -c conda-forge -c pytorch python=3.7 pytorch torchvision cudatoolkit=10.1 opencv numpy pillow

Then I run the following file:

import torch
import torchvision

print("PyTorch Version: ",torch.__version__)
print("Torchvision Version: ",torchvision.__version__)

if torch.cuda.is_available():
    print("if torch.cuda.is_available() returns TRUE")
else:
    print("if torch.cuda.is_available() returns FALSE")

torch.zeros(1).cuda()

And I get

ython sources/torch_cuda_setup_check.py 
PyTorch Version:  1.10.0
Torchvision Version:  0.10.0a0
if torch.cuda.is_available() returns FALSE
Traceback (most recent call last):
  File "sources/torch_cuda_setup_check.py", line 12, in <module>
    torch.zeros(1).cuda()
  File "/home/fabrizioschiano/anaconda3/envs/deeplabv3finetuning/lib/python3.7/site-packages/torch/cuda/__init__.py", line 208, in _lazy_init
    raise AssertionError("Torch not compiled with CUDA enabled")
AssertionError: Torch not compiled with CUDA enabled

Could you help me understanding how to install a version of torch which has CUDA enabled?

I am sure that my system has a GPU.

More details about my system can be found below.

I am on Ubuntu 20.04

The command:

nvcc --version

gives the following output

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Sun_Jul_28_19:07:16_PDT_2019
Cuda compilation tools, release 10.1, V10.1.243

The command:

nvidia-smi

gives the following output

Tue Nov 23 17:44:11 2021       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.82.00    Driver Version: 470.82.00    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  On |                  N/A |
| N/A   54C    P0    25W /  N/A |    833MiB /  7973MiB |      1%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      1082      G   /usr/lib/xorg/Xorg                102MiB |
|    0   N/A  N/A      1693      G   /usr/lib/xorg/Xorg                405MiB |
|    0   N/A  N/A      1823      G   /usr/bin/gnome-shell              130MiB |
|    0   N/A  N/A      2306      G   ...AAAAAAAAA= --shared-files      139MiB |
|    0   N/A  N/A      4719      G   .../debug.log --shared-files        2MiB |
|    0   N/A  N/A     13922      G   ...AAAAAAAAA= --shared-files       37MiB |
+-----------------------------------------------------------------------------+

I think I found the culpript but still I cannot find a solution to my problem

When I run

conda install -c conda-forge -c pytorch python=3.7 pytorch torchvision cudatoolkit=10.1 opencv numpy pillow

I installed the following packages (among others)

  python             conda-forge/linux-64::python-3.7.12-hb7a2778_100_cpython
  python_abi         conda-forge/linux-64::python_abi-3.7-2_cp37m
  pytorch            conda-forge/linux-64::pytorch-1.10.0-cpu_py37hf3cc979_0
  pytorch-cpu        conda-forge/linux-64::pytorch-cpu-1.10.0-cpu_py37h718b53a_0
  qt                 conda-forge/linux-64::qt-5.12.9-hda022c4_4

As you can see, it seems that the versions of pytorch installed are CPU only. Correct?

Command:

conda install -c conda-forge -c pytorch python=3.7 pytorch torchvision cudatoolkit=10.1 opencv numpy pillow

Result:

Collecting package metadata (current_repodata.json): done
Solving environment: done


==> WARNING: A newer version of conda exists. <==
  current version: 4.10.1
  latest version: 4.10.3

Please update conda by running

    $ conda update -n base -c defaults conda



## Package Plan ##

  environment location: /home/fabrizioschiano/anaconda3/envs/deeplabv3finetuning

  added / updated specs:
    - cudatoolkit=10.1
    - numpy
    - opencv
    - pillow
    - python=3.7
    - pytorch
    - torchvision


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    hdf5-1.12.1                |nompi_h2750804_102         3.5 MB  conda-forge
    libpq-13.5                 |       hd57d9b9_0         2.8 MB  conda-forge
    ------------------------------------------------------------
                                           Total:         6.3 MB

The following NEW packages will be INSTALLED:

  _libgcc_mutex      conda-forge/linux-64::_libgcc_mutex-0.1-conda_forge
  _openmp_mutex      conda-forge/linux-64::_openmp_mutex-4.5-1_llvm
  alsa-lib           conda-forge/linux-64::alsa-lib-1.2.3-h516909a_0
  bzip2              conda-forge/linux-64::bzip2-1.0.8-h7f98852_4
  c-ares             conda-forge/linux-64::c-ares-1.18.1-h7f98852_0
  ca-certificates    conda-forge/linux-64::ca-certificates-2021.10.8-ha878542_0
  cairo              conda-forge/linux-64::cairo-1.16.0-h6cf1ce9_1008
  cffi               conda-forge/linux-64::cffi-1.15.0-py37h036bc23_0
  cudatoolkit        conda-forge/linux-64::cudatoolkit-10.1.243-h036e899_9
  dbus               conda-forge/linux-64::dbus-1.13.6-h48d8840_2
  expat              conda-forge/linux-64::expat-2.4.1-h9c3ff4c_0
  ffmpeg             conda-forge/linux-64::ffmpeg-4.3.2-hca11adc_1
  fontconfig         conda-forge/linux-64::fontconfig-2.13.1-hba837de_1005
  freeglut           conda-forge/linux-64::freeglut-3.2.1-h9c3ff4c_2
  freetype           conda-forge/linux-64::freetype-2.10.4-h0708190_1
  future             conda-forge/linux-64::future-0.18.2-py37h89c1867_4
  gettext            conda-forge/linux-64::gettext-0.19.8.1-h73d1719_1008
  glib               conda-forge/linux-64::glib-2.70.1-h780b84a_0
  glib-tools         conda-forge/linux-64::glib-tools-2.70.1-h780b84a_0
  gmp                conda-forge/linux-64::gmp-6.2.1-h58526e2_0
  gnutls             conda-forge/linux-64::gnutls-3.6.13-h85f3911_1
  graphite2          conda-forge/linux-64::graphite2-1.3.13-h58526e2_1001
  gst-plugins-base   conda-forge/linux-64::gst-plugins-base-1.18.5-hf529b03_2
  gstreamer          conda-forge/linux-64::gstreamer-1.18.5-h9f60fe5_2
  harfbuzz           conda-forge/linux-64::harfbuzz-3.1.1-h83ec7ef_0
  hdf5               conda-forge/linux-64::hdf5-1.12.1-nompi_h2750804_102
  icu                conda-forge/linux-64::icu-68.2-h9c3ff4c_0
  jasper             conda-forge/linux-64::jasper-2.0.33-ha77e612_0
  jbig               conda-forge/linux-64::jbig-2.1-h7f98852_2003
  jpeg               conda-forge/linux-64::jpeg-9d-h36c2ea0_0
  krb5               conda-forge/linux-64::krb5-1.19.2-hcc1bbae_3
  lame               conda-forge/linux-64::lame-3.100-h7f98852_1001
  lcms2              conda-forge/linux-64::lcms2-2.12-hddcbb42_0
  ld_impl_linux-64   conda-forge/linux-64::ld_impl_linux-64-2.36.1-hea4e1c9_2
  lerc               conda-forge/linux-64::lerc-3.0-h9c3ff4c_0
  libblas            conda-forge/linux-64::libblas-3.9.0-12_linux64_mkl
  libcblas           conda-forge/linux-64::libcblas-3.9.0-12_linux64_mkl
  libclang           conda-forge/linux-64::libclang-11.1.0-default_ha53f305_1
  libcurl            conda-forge/linux-64::libcurl-7.80.0-h2574ce0_0
  libdeflate         conda-forge/linux-64::libdeflate-1.8-h7f98852_0
  libedit            conda-forge/linux-64::libedit-3.1.20191231-he28a2e2_2
  libev              conda-forge/linux-64::libev-4.33-h516909a_1
  libevent           conda-forge/linux-64::libevent-2.1.10-h9b69904_4
  libffi             conda-forge/linux-64::libffi-3.4.2-h7f98852_5
  libgcc-ng          conda-forge/linux-64::libgcc-ng-11.2.0-h1d223b6_11
  libgfortran-ng     conda-forge/linux-64::libgfortran-ng-11.2.0-h69a702a_11
  libgfortran5       conda-forge/linux-64::libgfortran5-11.2.0-h5c6108e_11
  libglib            conda-forge/linux-64::libglib-2.70.1-h174f98d_0
  libglu             conda-forge/linux-64::libglu-9.0.0-he1b5a44_1001
  libiconv           conda-forge/linux-64::libiconv-1.16-h516909a_0
  liblapack          conda-forge/linux-64::liblapack-3.9.0-12_linux64_mkl
  liblapacke         conda-forge/linux-64::liblapacke-3.9.0-12_linux64_mkl
  libllvm11          conda-forge/linux-64::libllvm11-11.1.0-hf817b99_2
  libnghttp2         conda-forge/linux-64::libnghttp2-1.43.0-h812cca2_1
  libnsl             conda-forge/linux-64::libnsl-2.0.0-h7f98852_0
  libogg             conda-forge/linux-64::libogg-1.3.4-h7f98852_1
  libopencv          conda-forge/linux-64::libopencv-4.5.3-py37hbfc4018_5
  libopus            conda-forge/linux-64::libopus-1.3.1-h7f98852_1
  libpng             conda-forge/linux-64::libpng-1.6.37-h21135ba_2
  libpq              conda-forge/linux-64::libpq-13.5-hd57d9b9_0
  libprotobuf        conda-forge/linux-64::libprotobuf-3.18.1-h780b84a_0
  libssh2            conda-forge/linux-64::libssh2-1.10.0-ha56f1ee_2
  libstdcxx-ng       conda-forge/linux-64::libstdcxx-ng-11.2.0-he4da1e4_11
  libtiff            conda-forge/linux-64::libtiff-4.3.0-h6f004c6_2
  libuuid            conda-forge/linux-64::libuuid-2.32.1-h7f98852_1000
  libvorbis          conda-forge/linux-64::libvorbis-1.3.7-h9c3ff4c_0
  libwebp-base       conda-forge/linux-64::libwebp-base-1.2.1-h7f98852_0
  libxcb             conda-forge/linux-64::libxcb-1.13-h7f98852_1004
  libxkbcommon       conda-forge/linux-64::libxkbcommon-1.0.3-he3ba5ed_0
  libxml2            conda-forge/linux-64::libxml2-2.9.12-h72842e0_0
  libzlib            conda-forge/linux-64::libzlib-1.2.11-h36c2ea0_1013
  llvm-openmp        conda-forge/linux-64::llvm-openmp-12.0.1-h4bd325d_1
  lz4-c              conda-forge/linux-64::lz4-c-1.9.3-h9c3ff4c_1
  mkl                conda-forge/linux-64::mkl-2021.4.0-h8d4b97c_729
  mysql-common       conda-forge/linux-64::mysql-common-8.0.27-ha770c72_1
  mysql-libs         conda-forge/linux-64::mysql-libs-8.0.27-hfa10184_1
  ncurses            conda-forge/linux-64::ncurses-6.2-h58526e2_4
  nettle             conda-forge/linux-64::nettle-3.6-he412f7d_0
  ninja              conda-forge/linux-64::ninja-1.10.2-h4bd325d_1
  nspr               conda-forge/linux-64::nspr-4.32-h9c3ff4c_1
  nss                conda-forge/linux-64::nss-3.72-hb5efdd6_0
  numpy              conda-forge/linux-64::numpy-1.21.4-py37h31617e3_0
  olefile            conda-forge/noarch::olefile-0.46-pyh9f0ad1d_1
  opencv             conda-forge/linux-64::opencv-4.5.3-py37h89c1867_5
  openh264           conda-forge/linux-64::openh264-2.1.1-h780b84a_0
  openjpeg           conda-forge/linux-64::openjpeg-2.4.0-hb52868f_1
  openssl            conda-forge/linux-64::openssl-1.1.1l-h7f98852_0
  pcre               conda-forge/linux-64::pcre-8.45-h9c3ff4c_0
  pillow             conda-forge/linux-64::pillow-8.4.0-py37h0f21c89_0
  pip                conda-forge/noarch::pip-21.3.1-pyhd8ed1ab_0
  pixman             conda-forge/linux-64::pixman-0.40.0-h36c2ea0_0
  pthread-stubs      conda-forge/linux-64::pthread-stubs-0.4-h36c2ea0_1001
  py-opencv          conda-forge/linux-64::py-opencv-4.5.3-py37h6531663_5
  pycparser          conda-forge/noarch::pycparser-2.21-pyhd8ed1ab_0
  python             conda-forge/linux-64::python-3.7.12-hb7a2778_100_cpython
  python_abi         conda-forge/linux-64::python_abi-3.7-2_cp37m
  pytorch            conda-forge/linux-64::pytorch-1.10.0-cpu_py37hf3cc979_0
  pytorch-cpu        conda-forge/linux-64::pytorch-cpu-1.10.0-cpu_py37h718b53a_0
  qt                 conda-forge/linux-64::qt-5.12.9-hda022c4_4
  readline           conda-forge/linux-64::readline-8.1-h46c0cb4_0
  setuptools         conda-forge/linux-64::setuptools-59.2.0-py37h89c1867_0
  sleef              conda-forge/linux-64::sleef-3.5.1-h9b69904_2
  sqlite             conda-forge/linux-64::sqlite-3.36.0-h9cd32fc_2
  tbb                conda-forge/linux-64::tbb-2021.4.0-h4bd325d_1
  tk                 conda-forge/linux-64::tk-8.6.11-h27826a3_1
  torchvision        conda-forge/linux-64::torchvision-0.10.1-py37h9e046cd_0_cpu
  typing_extensions  conda-forge/noarch::typing_extensions-4.0.0-pyha770c72_0
  wheel              conda-forge/noarch::wheel-0.37.0-pyhd8ed1ab_1
  x264               conda-forge/linux-64::x264-1!161.3030-h7f98852_1
  xorg-fixesproto    conda-forge/linux-64::xorg-fixesproto-5.0-h7f98852_1002
  xorg-inputproto    conda-forge/linux-64::xorg-inputproto-2.3.2-h7f98852_1002
  xorg-kbproto       conda-forge/linux-64::xorg-kbproto-1.0.7-h7f98852_1002
  xorg-libice        conda-forge/linux-64::xorg-libice-1.0.10-h7f98852_0
  xorg-libsm         conda-forge/linux-64::xorg-libsm-1.2.3-hd9c2040_1000
  xorg-libx11        conda-forge/linux-64::xorg-libx11-1.7.2-h7f98852_0
  xorg-libxau        conda-forge/linux-64::xorg-libxau-1.0.9-h7f98852_0
  xorg-libxdmcp      conda-forge/linux-64::xorg-libxdmcp-1.1.3-h7f98852_0
  xorg-libxext       conda-forge/linux-64::xorg-libxext-1.3.4-h7f98852_1
  xorg-libxfixes     conda-forge/linux-64::xorg-libxfixes-5.0.3-h7f98852_1004
  xorg-libxi         conda-forge/linux-64::xorg-libxi-1.7.10-h7f98852_0
  xorg-libxrender    conda-forge/linux-64::xorg-libxrender-0.9.10-h7f98852_1003
  xorg-renderproto   conda-forge/linux-64::xorg-renderproto-0.11.1-h7f98852_1002
  xorg-xextproto     conda-forge/linux-64::xorg-xextproto-7.3.0-h7f98852_1002
  xorg-xproto        conda-forge/linux-64::xorg-xproto-7.0.31-h7f98852_1007
  xz                 conda-forge/linux-64::xz-5.2.5-h516909a_1
  zlib               conda-forge/linux-64::zlib-1.2.11-h36c2ea0_1013
  zstd               conda-forge/linux-64::zstd-1.5.0-ha95c52a_0


Proceed ([y]/n)? y


Downloading and Extracting Packages
hdf5-1.12.1          | 3.5 MB    | ################################################################################################################################################## | 100% 
libpq-13.5           | 2.8 MB    | ################################################################################################################################################## | 100% 
Preparing transaction: done
Verifying transaction: done
Executing transaction: | By downloading and using the CUDA Toolkit conda packages, you accept the terms and conditions of the CUDA End User License Agreement (EULA): https://docs.nvidia.com/cuda/eula/index.html

done

I tried to remove pytorch from my anaconda environment with:

conda remove pytorch pytorch-cpu

then I reinstalled pytorch with the instructions from here:

which led me to the following command:

conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch

This is the output of this command which seems to be still installing pytorch with cpu and not for CUDA.

conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch
Collecting package metadata (current_repodata.json): done
Solving environment: done


==> WARNING: A newer version of conda exists. <==
  current version: 4.10.1
  latest version: 4.10.3

Please update conda by running

    $ conda update -n base -c defaults conda



## Package Plan ##

  environment location: /home/fabrizioschiano/anaconda3/envs/deeplabv3finetuning

  added / updated specs:
    - cudatoolkit=11.3
    - pytorch
    - torchaudio
    - torchvision


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    cpuonly-1.0                |                0           2 KB  pytorch
    ninja-1.10.2               |   py37hd09550d_3         1.5 MB
    pytorch-1.7.0              |      py3.7_cpu_0        59.5 MB  pytorch
    torchaudio-0.7.0           |             py37         9.8 MB  pytorch
    torchvision-0.8.1          |         py37_cpu        17.2 MB  pytorch
    ------------------------------------------------------------
                                           Total:        88.0 MB

The following NEW packages will be INSTALLED:

  cpuonly            pytorch/noarch::cpuonly-1.0-0
  libuv              pkgs/main/linux-64::libuv-1.40.0-h7b6447c_0
  ninja              pkgs/main/linux-64::ninja-1.10.2-py37hd09550d_3
  pytorch            pytorch/linux-64::pytorch-1.7.0-py3.7_cpu_0
  torchaudio         pytorch/linux-64::torchaudio-0.7.0-py37
  torchvision        pytorch/linux-64::torchvision-0.8.1-py37_cpu
  typing_extensions  pkgs/main/noarch::typing_extensions-3.10.0.2-pyh06a4308_0

The following packages will be UPDATED:

  cudatoolkit        conda-forge::cudatoolkit-10.1.243-h03~ --> pkgs/main::cudatoolkit-11.3.1-h2bc3f7f_2


Proceed ([y]/n)? y


Downloading and Extracting Packages
ninja-1.10.2         | 1.5 MB    | ################################################################################################################################################## | 100% 
cpuonly-1.0          | 2 KB      | ################################################################################################################################################## | 100% 
torchaudio-0.7.0     | 9.8 MB    | ################################################################################################################################################## | 100% 
torchvision-0.8.1    | 17.2 MB   | ################################################################################################################################################## | 100% 
pytorch-1.7.0        | 59.5 MB   | ################################################################################################################################################## | 100% 
Preparing transaction: done
Verifying transaction: done
Executing transaction: - By downloading and using the CUDA Toolkit conda packages, you accept the terms and conditions of the CUDA End User License Agreement (EULA): https://docs.nvidia.com/cuda/eula/index.html

done

Do you have any suggestions?

In the end, I switched from Conda to virtualenv and it worked at the first try.

I created my virtualenv with virtualenv virtualenv_name

Then I did

workon virtualenv_name

then, I installed pytorch as it is specified on the official pytorch website (but selecting pip instead of conda) as package manager (Start Locally | PyTorch).

conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch

This worked for me and now I have a CUDA-enabled version of pytorch on my machine.