【WSL2笔记4】 PyTorch深度学习框架的多环境CUDA安装配置

本文详细介绍了如何在WSL2环境下,使用Conda管理多个Python环境,并针对不同环境安装对应版本的PyTorch与CUDA。首先,通过在根环境安装独立的CUDA ToolKit,然后在每个Python虚拟环境中安装指定版本的PyTorch(如PyTorch 2.0.0+ CUDA 11.8和PyTorch 1.13.1+ CUDA 11.7),并验证CUDA支持。

1、 Conda多环境下的不同CUDA版本实现

1.1 实现思路

1.1.1 根环境(base)安装最新独立版本CUDA ToolKit工具包

NVIDIA CUDA ToolKit
https://developer.nvidia.com/cuda-downloads

安装与显卡驱动匹配的最新版本CUDA ToolKit

详见【WSL2笔记2】 搭建深度学习开发环境
https://blog.youkuaiyun.com/fuweipeng2012/article/details/129980680

1.1.2 在不同的Python虚拟子环境,根据需求,安装相应版本的CUDA和cuDDN

conda install cudatoolkit=版本号

Conda 安装的CUDA ToolKit 包含了CUDA和cuDDN
Conda虚拟环境调用的是子环境下的CUDA ToolKit的CUDA/cuDDN,不是调用根环境版本的CUDA工具包
虚拟子环境CUDA ToolKit版本一定要低于本机根环境的独立CUDA版本

2、 Python 3.10 + PyTorch 2.0.0 + CUDA 11.8

2.1 创建Python310环境

创建
conda create -n py310 python=3.10
激活
conda activate py310

(base) xf@VP01:~/ai/env$ conda create -n py310 python=3.10
Collecting package metadata (current_repodata.json): done
Solving environment: done

## Package Plan ##

  environment location: /home/xf/anaconda3/envs/py310

  added / updated specs:
    - python=3.10


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    certifi-2022.12.7          |  py310h06a4308_0         150 KB  defaults
    pip-23.0.1                 |  py310h06a4308_0         2.6 MB  defaults
    python-3.10.10             |       h7a1cb2a_2        26.9 MB  defaults
    setuptools-65.6.3          |  py310h06a4308_0         1.2 MB  defaults
    tzdata-2023c               |       h04d1e81_0         116 KB  defaults
    wheel-0.38.4               |  py310h06a4308_0          64 KB  defaults
    ------------------------------------------------------------
                                           Total:        31.0 MB

The following NEW packages will be INSTALLED:

  _libgcc_mutex      anaconda/pkgs/main/linux-64::_libgcc_mutex-0.1-main
  _openmp_mutex      anaconda/pkgs/main/linux-64::_openmp_mutex-5.1-1_gnu
  bzip2              anaconda/pkgs/main/linux-64::bzip2-1.0.8-h7b6447c_0
  ca-certificates    anaconda/pkgs/main/linux-64::ca-certificates-2023.01.10-h06a4308_0
  certifi            anaconda/pkgs/main/linux-64::certifi-2022.12.7-py310h06a4308_0
  ld_impl_linux-64   anaconda/pkgs/main/linux-64::ld_impl_linux-64-2.38-h1181459_1
  libffi             anaconda/pkgs/main/linux-64::libffi-3.4.2-h6a678d5_6
  libgcc-ng          anaconda/pkgs/main/linux-64::libgcc-ng-11.2.0-h1234567_1
  libgomp            anaconda/pkgs/main/linux-64::libgomp-11.2.0-h1234567_1
  libstdcxx-ng       anaconda/pkgs/main/linux-64::libstdcxx-ng-11.2.0-h1234567_1
  libuuid            anaconda/pkgs/main/linux-64::libuuid-1.41.5-h5eee18b_0
  ncurses            anaconda/pkgs/main/linux-64::ncurses-6.4-h6a678d5_0
  openssl            anaconda/pkgs/main/linux-64::openssl-1.1.1t-h7f8727e_0
  pip                anaconda/pkgs/main/linux-64::pip-23.0.1-py310h06a4308_0
  python             anaconda/pkgs/main/linux-64::python-3.10.10-h7a1cb2a_2
  readline           anaconda/pkgs/main/linux-64::readline-8.2-h5eee18b_0
  setuptools         anaconda/pkgs/main/linux-64::setuptools-65.6.3-py310h06a4308_0
  sqlite             anaconda/pkgs/main/linux-64::sqlite-3.41.1-h5eee18b_0
  tk                 anaconda/pkgs/main/linux-64::tk-8.6.12-h1ccaba5_0
  tzdata             anaconda/pkgs/main/noarch::tzdata-2023c-h04d1e81_0
  wheel              anaconda/pkgs/main/linux-64::wheel-0.38.4-py310h06a4308_0
  xz                 anaconda/pkgs/main/linux-64::xz-5.2.10-h5eee18b_1
  zlib               anaconda/pkgs/main/linux-64::zlib-1.2.13-h5eee18b_0


Proceed ([y]/n)? y


Downloading and Extracting Packages

Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
#     $ conda activate py310
#
# To deactivate an active environment, use
#
#     $ conda deactivate

(base) xf@VP01:~/ai/env$ conda activate py310
(py310) xf@VP01:~/ai/env$

2.2 安装PyTorch200 GPU版本

2.2.1 官网链接

PyTorch最新版
https://pytorch.org/get-started/locally/

Lunix系统PyTorch CUDA 对Python版本的要求 >= Python 3.7

Installing on Linux
Python

Python 3.7 or greater is generally installed by default on any of our supported Linux distributions, which meets our recommendation.

Win系统PyTorch CUDA 对Python版本的要求 >= Python 3.7 <= Python 3.9

Installing on Windows
Python

Currently, PyTorch on Windows only supports Python 3.7-3.9; Python 2.x is not supported.

2.2.2 Conda安装方法

conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia

package                      |      build
-----------------------------|-----------------
> pytorch-2.0.0              |      py3.10_cuda11.8_cudnn8.7.0_0        1.41 GB  pytorch
...
> torchaudio-2.0.0           |      py310_cu118                         7.5 MB  pytorch
...
> torchvision-0.15.0         |      py310_cu118                         8.0 MB  pytorch

在安装包列表中了解即将安装的是否CUDA版本, 第2列版本build中带_cu118,说明是CUDA加速版本

(py310) xf@VP01:~/ai/env$ conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia
Collecting package metadata (current_repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.
Collecting package metadata (repodata.json): done
Solving environment: done

## Package Plan ##

  environment location: /home/xf/anaconda3/envs/py310

  added / updated specs:
    - pytorch
    - pytorch-cuda=11.8
    - torchaudio
    - torchvision


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    blas-1.0                   |              mkl           6 KB  defaults
    brotlipy-0.7.0             |py310h7f8727e_1002         712 KB  defaults
    cffi-1.15.1                |  py310h5eee18b_3         243 KB  defaults
    cryptography-39.0.1        |  py310h9ce1e76_0         1.4 MB  defaults
    filelock-3.9.0             |  py310h06a4308_0          18 KB  defaults
    flit-core-3.8.0            |  py310h06a4308_0          84 KB  defaults
    gmpy2-2.1.2                |  py310heeb90bb_0         517 KB  defaults
    idna-3.4                   |  py310h06a4308_0          97 KB  defaults
    jinja2-3.1.2               |  py310h06a4308_0         215 KB  defaults
    markupsafe-2.1.1           |  py310h7f8727e_0          34 KB  defaults
    mkl-service-2.4.0          |  py310h7f8727e_0         177 KB  defaults
    mkl_fft-1.3.1              |  py310hd6ae3a3_0         567 KB  defaults
    mkl_random-1.2.2           |  py310h00e6091_0        1009 KB  defaults
    mpmath-1.2.1               |  py310h06a4308_0         769 KB  defaults
    networkx-2.8.4             |  py310h06a4308_1         2.7 MB  defaults
    numpy-1.23.5               |  py310hd5efca6_0          10 KB  defaults
    numpy-base-1.23.5          |  py310h8e6c178_0         6.7 MB  defaults
    pillow-9.4.0               |  py310h6a678d5_0         730 KB  defaults
    pyopenssl-23.0.0           |  py310h06a4308_0          97 KB  defaults
    pysocks-1.7.1              |  py310h06a4308_0          28 KB  defaults
    pytorch-2.0.0              |py3.10_cuda11.8_cudnn8.7.0_0        1.41 GB  pytorch
    requests-2.28.1            |  py310h06a4308_1         100 KB  defaults
    sympy-1.11.1               |  py310h06a4308_0        11.8 MB  defaults
    torchaudio-2.0.0           |      py310_cu118         7.5 MB  pytorch
    torchtriton-2.0.0          |            py310        62.6 MB  pytorch
    torchvision-0.15.0         |      py310_cu118         8.0 MB  pytorch
    typing_extensions-4.4.0    |  py310h06a4308_0          46 KB  defaults
    urllib3-1.26.15            |  py310h06a4308_0         199 KB  defaults
    ------------------------------------------------------------
                                           Total:        1.51 GB

The following NEW packages will be INSTALLED:

  blas               anaconda/pkgs/main/linux-64::blas-1.0-mkl
  brotlipy           anaconda/pkgs/main/linux-64::brotlipy-0.7.0-py310h7f8727e_1002
  cffi               anaconda/pkgs/main/linux-64::cffi-1.15.1-py310h5eee18b_3
  charset-normalizer anaconda/pkgs/main/noarch::charset-normalizer-2.0.4-pyhd3eb1b0_0
  cryptography       anaconda/pkgs/main/linux-64::cryptography-39.0.1-py310h9ce1e76_0
  cuda-cudart        nvidia/linux-64::cuda-cudart-11.8.89-0
  cuda-cupti         nvidia/linux-64::cuda-cupti-11.8.87-0
  cuda-libraries     nvidia/linux-64::cuda-libraries-11.8.0-0
  cuda-nvrtc         nvidia/linux-64::cuda-nvrtc-11.8.89-0
  cuda-nvtx          nvidia/linux-64::cuda-nvtx-11.8.86-0
  cuda-runtime       nvidia/linux-64::cuda-runtime-11.8.0-0
  ffmpeg             pytorch/linux-64::ffmpeg-4.3-hf484d3e_0
  filelock           anaconda/pkgs/main/linux-64::filelock-3.9.0-py310h06a4308_0
  flit-core          anaconda/pkgs/main/linux-64::flit-core-3.8.0-py310h06a4308_0
  freetype           anaconda/pkgs/main/linux-64::freetype-2.12.1-h4a9f257_0
  giflib             anaconda/pkgs/main/linux-64::giflib-5.2.1-h5eee18b_3
  gmp                anaconda/pkgs/main/linux-64::gmp-6.2.1-h295c915_3
  gmpy2              anaconda/pkgs/main/linux-64::gmpy2-2.1.2-py310heeb90bb_0
  gnutls             anaconda/pkgs/main/linux-64::gnutls-3.6.15-he1e5248_0
  idna               anaconda/pkgs/main/linux-64::idna-3.4-py310h06a4308_0
  intel-openmp       anaconda/pkgs/main/linux-64::intel-openmp-2021.4.0-h06a4308_3561
  jinja2             anaconda/pkgs/main/linux-64::jinja2-3.1.2-py310h06a4308_0
  jpeg               anaconda/pkgs/main/linux-64::jpeg-9e-h5eee18b_1
  lame               anaconda/pkgs/main/linux-64::lame-3.100-h7b6447c_0
  lcms2              anaconda/pkgs/main/linux-64::lcms2-2.12-h3be6417_0
  lerc               anaconda/pkgs/main/linux-64::lerc-3.0-h295c915_0
  libcublas          nvidia/linux-64::libcublas-11.11.3.6-0
  libcufft           nvidia/linux-64::libcufft-10.9.0.58-0
  libcufile          nvidia/linux-64::libcufile-1.6.0.25-0
  libcurand          nvidia/linux-64::libcurand-10.3.2.56-0
  libcusolver        nvidia/linux-64::libcusolver-11.4.1.48-0
  libcusparse        nvidia/linux-64::libcusparse-11.7.5.86-0
  libdeflate         anaconda/pkgs/main/linux-64::libdeflate-1.17-h5eee18b_0
  libiconv           anaconda/pkgs/main/linux-64::libiconv-1.16-h7f8727e_2
  libidn2            anaconda/pkgs/main/linux-64::libidn2-2.3.2-h7f8727e_0
  libnpp             nvidia/linux-64::libnpp-11.8.0.86-0
  libnvjpeg          nvidia/linux-64::libnvjpeg-11.9.0.86-0
  libpng             anaconda/pkgs/main/linux-64::libpng-1.6.39-h5eee18b_0
  libtasn1           anaconda/pkgs/main/linux-64::libtasn1-4.19.0-h5eee18b_0
  libtiff            anaconda/pkgs/main/linux-64::libtiff-4.5.0-h6a678d5_2
  libunistring       anaconda/pkgs/main/linux-64::libunistring-0.9.10-h27cfd23_0
  libwebp            anaconda/pkgs/main/linux-64::libwebp-1.2.4-h11a3e52_1
  libwebp-base       anaconda/pkgs/main/linux-64::libwebp-base-1.2.4-h5eee18b_1
  lz4-c              anaconda/pkgs/main/linux-64::lz4-c-1.9.4-h6a678d5_0
  markupsafe         anaconda/pkgs/main/linux-64::markupsafe-2.1.1-py310h7f8727e_0
  mkl                anaconda/pkgs/main/linux-64::mkl-2021.4.0-h06a4308_640
  mkl-service        anaconda/pkgs/main/linux-64::mkl-service-2.4.0-py310h7f8727e_0
  mkl_fft            anaconda/pkgs/main/linux-64::mkl_fft-1.3.1-py310hd6ae3a3_0
  mkl_random         anaconda/pkgs/main/linux-64::mkl_random-1.2.2-py310h00e6091_0
  mpc                anaconda/pkgs/main/linux-64::mpc-1.1.0-h10f8cd9_1
  mpfr               anaconda/pkgs/main/linux-64::mpfr-4.0.2-hb69a4c5_1
  mpmath             anaconda/pkgs/main/linux-64::mpmath-1.2.1-py310h06a4308_0
  nettle             anaconda/pkgs/main/linux-64::nettle-3.7.3-hbbd107a_1
  networkx           anaconda/pkgs/main/linux-64::networkx-2.8.4-py310h06a4308_1
  numpy              anaconda/pkgs/main/linux-64::numpy-1.23.5-py310hd5efca6_0
  numpy-base         anaconda/pkgs/main/linux-64::numpy-base-1.23.5-py310h8e6c178_0
  openh264           anaconda/pkgs/main/linux-64::openh264-2.1.1-h4ff587b_0
  pillow             anaconda/pkgs/main/linux-64::pillow-9.4.0-py310h6a678d5_0
  pycparser          anaconda/pkgs/main/noarch::pycparser-2.21-pyhd3eb1b0_0
  pyopenssl          anaconda/pkgs/main/linux-64::pyopenssl-23.0.0-py310h06a4308_0
  pysocks            anaconda/pkgs/main/linux-64::pysocks-1.7.1-py310h06a4308_0
  pytorch            pytorch/linux-64::pytorch-2.0.0-py3.10_cuda11.8_cudnn8.7.0_0
  pytorch-cuda       pytorch/linux-64::pytorch-cuda-11.8-h7e8668a_3
  pytorch-mutex      pytorch/noarch::pytorch-mutex-1.0-cuda
  requests           anaconda/pkgs/main/linux-64::requests-2.28.1-py310h06a4308_1
  six                anaconda/pkgs/main/noarch::six-1.16.0-pyhd3eb1b0_1
  sympy              anaconda/pkgs/main/linux-64::sympy-1.11.1-py310h06a4308_0
  torchaudio         pytorch/linux-64::torchaudio-2.0.0-py310_cu118
  torchtriton        pytorch/linux-64::torchtriton-2.0.0-py310
  torchvision        pytorch/linux-64::torchvision-0.15.0-py310_cu118
  typing_extensions  anaconda/pkgs/main/linux-64::typing_extensions-4.4.0-py310h06a4308_0
  urllib3            anaconda/pkgs/main/linux-64::urllib3-1.26.15-py310h06a4308_0
  zstd               anaconda/pkgs/main/linux-64::zstd-1.5.4-hc292b87_0


Proceed ([y]/n)?


Downloading and Extracting Packages
networkx-2.8.4       | 2.7 MB    | ################################################################################ | 100%
flit-core-3.8.0      | 84 KB     | ################################################################################ | 100%
pyopenssl-23.0.0     | 97 KB     | ################################################################################ | 100%
markupsafe-2.1.1     | 34 KB     | ################################################################################ | 100%
torchvision-0.15.0   | 8.0 MB    | ################################################################################ | 100%
numpy-1.23.5         | 10 KB     | ################################################################################ | 100%
numpy-base-1.23.5    | 6.7 MB    | ################################################################################ | 100%
jinja2-3.1.2         | 215 KB    | ################################################################################ | 100%
requests-2.28.1      | 100 KB    | ################################################################################ | 100%
mpmath-1.2.1         | 769 KB    | ################################################################################ | 100%
pytorch-2.0.0        | 1.41 GB   | ################################################################################ | 100%
pysocks-1.7.1        | 28 KB     | ################################################################################ | 100%
typing_extensions-4. | 46 KB     | ################################################################################ | 100%
blas-1.0             | 6 KB      | ################################################################################ | 100%
pillow-9.4.0         | 730 KB    | ################################################################################ | 100%
cffi-1.15.1          | 243 KB    | ################################################################################ | 100%
mkl_random-1.2.2     | 1009 KB   | ################################################################################ | 100%
sympy-1.11.1         | 11.8 MB   | ################################################################################ | 100%
torchaudio-2.0.0     | 7.5 MB    | ################################################################################ | 100%
gmpy2-2.1.2          | 517 KB    | ################################################################################ | 100%
idna-3.4             | 97 KB     | ################################################################################ | 100%
mkl-service-2.4.0    | 177 KB    | ################################################################################ | 100%
torchtriton-2.0.0    | 62.6 MB   | ################################################################################ | 100%
cryptography-39.0.1  | 1.4 MB    | ################################################################################ | 100%
filelock-3.9.0       | 18 KB     | ################################################################################ | 100%
mkl_fft-1.3.1        | 567 KB    | ################################################################################ | 100%
urllib3-1.26.15      | 199 KB    | ################################################################################ | 100%
brotlipy-0.7.0       | 712 KB    | ################################################################################ | 100% 
 ... (more hidden) ...

Preparing transaction: done
Verifying transaction: done
Executing transaction: done
(py310) xf@VP01:~/ai/env$

2.2.3 list确认已装CUDA ToolKit和pytorch支持CUDA版本

conda list

# Name                    Version                             Build    Channel
...
> cuda-cudart               11.8.89                               0    nvidia
> cuda-cupti                11.8.87                               0    nvidia
> cuda-libraries            11.8.0                                0    nvidia
> cuda-nvrtc                11.8.89                               0    nvidia
> cuda-nvtx                 11.8.86                               0    nvidia
> cuda-runtime              11.8.0                                0    nvidia
...
> pytorch                   2.0.0      py3.10_cuda11.8_cudnn8.7.0_0    pytorch
> pytorch-cuda              11.8                         h7e8668a_3    pytorch
> pytorch-mutex             1.0                                cuda    pytorch
...
> torchaudio                2.0.0                       py310_cu118    pytorch
...
> torchvision               0.15.0                      py310_cu118    pytorch

列出conda安装包列表,确认安装的PyTorch是否CUDA版本, 第3列版本build中带_cu118,说明是CUDA加速版本

(py310) xf@VP01:~/ai/env$ conda list
# packages in environment at /home/xf/anaconda3/envs/py310:
#
# Name                    Version                   Build  Channel
_libgcc_mutex             0.1                        main    defaults
_openmp_mutex             5.1                       1_gnu    defaults
blas                      1.0                         mkl    defaults
brotlipy                  0.7.0           py310h7f8727e_1002    defaults
bzip2                     1.0.8                h7b6447c_0    defaults
ca-certificates           2023.01.10           h06a4308_0    defaults
certifi                   2022.12.7       py310h06a4308_0    defaults
cffi                      1.15.1          py310h5eee18b_3    defaults
charset-normalizer        2.0.4              pyhd3eb1b0_0    defaults
cryptography              39.0.1          py310h9ce1e76_0    defaults
cuda-cudart               11.8.89                       0    nvidia
cuda-cupti                11.8.87                       0    nvidia
cuda-libraries            11.8.0                        0    nvidia
cuda-nvrtc                11.8.89                       0    nvidia
cuda-nvtx                 11.8.86                       0    nvidia
cuda-runtime              11.8.0                        0    nvidia
ffmpeg                    4.3                  hf484d3e_0    pytorch
filelock                  3.9.0           py310h06a4308_0    defaults
flit-core                 3.8.0           py310h06a4308_0    defaults
freetype                  2.12.1               h4a9f257_0    defaults
giflib                    5.2.1                h5eee18b_3    defaults
gmp                       6.2.1                h295c915_3    defaults
gmpy2                     2.1.2           py310heeb90bb_0    defaults
gnutls                    3.6.15               he1e5248_0    defaults
idna                      3.4             py310h06a4308_0    defaults
intel-openmp              2021.4.0          h06a4308_3561    defaults
jinja2                    3.1.2           py310h06a4308_0    defaults
jpeg                      9e                   h5eee18b_1    defaults
lame                      3.100                h7b6447c_0    defaults
lcms2                     2.12                 h3be6417_0    defaults
ld_impl_linux-64          2.38                 h1181459_1    defaults
lerc                      3.0                  h295c915_0    defaults
libcublas                 11.11.3.6                     0    nvidia
libcufft                  10.9.0.58                     0    nvidia
libcufile                 1.6.0.25                      0    nvidia
libcurand                 10.3.2.56                     0    nvidia
libcusolver               11.4.1.48                     0    nvidia
libcusparse               11.7.5.86                     0    nvidia
libdeflate                1.17                 h5eee18b_0    defaults
libffi                    3.4.2                h6a678d5_6    defaults
libgcc-ng                 11.2.0               h1234567_1    defaults
libgomp                   11.2.0               h1234567_1    defaults
libiconv                  1.16                 h7f8727e_2    defaults
libidn2                   2.3.2                h7f8727e_0    defaults
libnpp                    11.8.0.86                     0    nvidia
libnvjpeg                 11.9.0.86                     0    nvidia
libpng                    1.6.39               h5eee18b_0    defaults
libstdcxx-ng              11.2.0               h1234567_1    defaults
libtasn1                  4.19.0               h5eee18b_0    defaults
libtiff                   4.5.0                h6a678d5_2    defaults
libunistring              0.9.10               h27cfd23_0    defaults
libuuid                   1.41.5               h5eee18b_0    defaults
libwebp                   1.2.4                h11a3e52_1    defaults
libwebp-base              1.2.4                h5eee18b_1    defaults
lz4-c                     1.9.4                h6a678d5_0    defaults
markupsafe                2.1.1           py310h7f8727e_0    defaults
mkl                       2021.4.0           h06a4308_640    defaults
mkl-service               2.4.0           py310h7f8727e_0    defaults
mkl_fft                   1.3.1           py310hd6ae3a3_0    defaults
mkl_random                1.2.2           py310h00e6091_0    defaults
mpc                       1.1.0                h10f8cd9_1    defaults
mpfr                      4.0.2                hb69a4c5_1    defaults
mpmath                    1.2.1                    pypi_0    pypi
ncurses                   6.4                  h6a678d5_0    defaults
nettle                    3.7.3                hbbd107a_1    defaults
networkx                  2.8.4           py310h06a4308_1    defaults
numpy                     1.23.5          py310hd5efca6_0    defaults
numpy-base                1.23.5          py310h8e6c178_0    defaults
openh264                  2.1.1                h4ff587b_0    defaults
openssl                   1.1.1t               h7f8727e_0    defaults
pillow                    9.4.0           py310h6a678d5_0    defaults
pip                       23.0.1          py310h06a4308_0    defaults
pycparser                 2.21               pyhd3eb1b0_0    defaults
pyopenssl                 23.0.0          py310h06a4308_0    defaults
pysocks                   1.7.1           py310h06a4308_0    defaults
python                    3.10.10              h7a1cb2a_2    defaults
pytorch                   2.0.0           py3.10_cuda11.8_cudnn8.7.0_0    pytorch
pytorch-cuda              11.8                 h7e8668a_3    pytorch
pytorch-mutex             1.0                        cuda    pytorch
readline                  8.2                  h5eee18b_0    defaults
requests                  2.28.1          py310h06a4308_1    defaults
setuptools                65.6.3          py310h06a4308_0    defaults
six                       1.16.0             pyhd3eb1b0_1    defaults
sqlite                    3.41.1               h5eee18b_0    defaults
sympy                     1.11.1          py310h06a4308_0    defaults
tk                        8.6.12               h1ccaba5_0    defaults
torchaudio                2.0.0               py310_cu118    pytorch
torchtriton               2.0.0                     py310    pytorch
torchvision               0.15.0              py310_cu118    pytorch
typing_extensions         4.4.0           py310h06a4308_0    defaults
tzdata                    2023c                h04d1e81_0    defaults
urllib3                   1.26.15         py310h06a4308_0    defaults
wheel                     0.38.4          py310h06a4308_0    defaults
xz                        5.2.10               h5eee18b_1    defaults
zlib                      1.2.13               h5eee18b_0    defaults
zstd                      1.5.4                hc292b87_0    defaults

从上面的结果我们已知cuda已经安装,但我们没有使用 cudatoolkit=11.8 安装,为什么cudatoolkit自己就装上了:

#CUDA 11.6
conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.6 -c pytorch -c conda-forge

#CUDA 11.7
conda install pytorch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 pytorch-cuda=11.7 -c pytorch -c nvidia

对比官方给的安装命令,发现从pytorch 1.13开始,cudatoolkit=11.6 改为了 pytorch-cuda=11.7
本节中使用pytorch-cuda=11.8,相当于安装cudatoolkit=11.8

2.2.4 验证PyTorch CUDA

python -c "import torch;print(torch.cuda.is_available())"

(py310) xf@VP01:~/ai/env$ python -c "import torch;print(torch.cuda.is_available())"
True

3、 Python 3.7 + PyTorch 1.13.1 + CUDA 11.7

3.1 创建Python37环境

创建
conda create -n py37 python=3.7
激活
conda activate py37

(py310) xf@VP01:~$ conda deactivate
(base) xf@VP01:~$ conda create -n py37 python=3.7
Collecting package metadata (current_repodata.json): done
Solving environment: done

## Package Plan ##

  environment location: /home/xf/anaconda3/envs/py37

  added / updated specs:
    - python=3.7


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    _libgcc_mutex-0.1          |             main           3 KB  defaults
    _openmp_mutex-5.1          |            1_gnu          21 KB  defaults
    ca-certificates-2023.01.10 |       h06a4308_0         120 KB  defaults
    certifi-2022.12.7          |   py37h06a4308_0         150 KB  defaults
    ld_impl_linux-64-2.38      |       h1181459_1         654 KB  defaults
    libffi-3.4.2               |       h6a678d5_6         136 KB  defaults
    libgcc-ng-11.2.0           |       h1234567_1         5.3 MB  defaults
    libgomp-11.2.0             |       h1234567_1         474 KB  defaults
    libstdcxx-ng-11.2.0        |       h1234567_1         4.7 MB  defaults
    ncurses-6.4                |       h6a678d5_0         914 KB  defaults
    openssl-1.1.1t             |       h7f8727e_0         3.7 MB  defaults
    pip-22.3.1                 |   py37h06a4308_0         2.7 MB  defaults
    python-3.7.16              |       h7a1cb2a_0        44.8 MB  defaults
    readline-8.2               |       h5eee18b_0         357 KB  defaults
    setuptools-65.6.3          |   py37h06a4308_0         1.1 MB  defaults
    sqlite-3.41.1              |       h5eee18b_0         1.2 MB  defaults
    tk-8.6.12                  |       h1ccaba5_0         3.0 MB  defaults
    wheel-0.38.4               |   py37h06a4308_0          63 KB  defaults
    xz-5.2.10                  |       h5eee18b_1         429 KB  defaults
    zlib-1.2.13                |       h5eee18b_0         103 KB  defaults
    ------------------------------------------------------------
                                           Total:        70.0 MB

The following NEW packages will be INSTALLED:

  _libgcc_mutex      anaconda/pkgs/main/linux-64::_libgcc_mutex-0.1-main
  _openmp_mutex      anaconda/pkgs/main/linux-64::_openmp_mutex-5.1-1_gnu
  ca-certificates    anaconda/pkgs/main/linux-64::ca-certificates-2023.01.10-h06a4308_0
  certifi            anaconda/pkgs/main/linux-64::certifi-2022.12.7-py37h06a4308_0
  ld_impl_linux-64   anaconda/pkgs/main/linux-64::ld_impl_linux-64-2.38-h1181459_1
  libffi             anaconda/pkgs/main/linux-64::libffi-3.4.2-h6a678d5_6
  libgcc-ng          anaconda/pkgs/main/linux-64::libgcc-ng-11.2.0-h1234567_1
  libgomp            anaconda/pkgs/main/linux-64::libgomp-11.2.0-h1234567_1
  libstdcxx-ng       anaconda/pkgs/main/linux-64::libstdcxx-ng-11.2.0-h1234567_1
  ncurses            anaconda/pkgs/main/linux-64::ncurses-6.4-h6a678d5_0
  openssl            anaconda/pkgs/main/linux-64::openssl-1.1.1t-h7f8727e_0
  pip                anaconda/pkgs/main/linux-64::pip-22.3.1-py37h06a4308_0
  python             anaconda/pkgs/main/linux-64::python-3.7.16-h7a1cb2a_0
  readline           anaconda/pkgs/main/linux-64::readline-8.2-h5eee18b_0
  setuptools         anaconda/pkgs/main/linux-64::setuptools-65.6.3-py37h06a4308_0
  sqlite             anaconda/pkgs/main/linux-64::sqlite-3.41.1-h5eee18b_0
  tk                 anaconda/pkgs/main/linux-64::tk-8.6.12-h1ccaba5_0
  wheel              anaconda/pkgs/main/linux-64::wheel-0.38.4-py37h06a4308_0
  xz                 anaconda/pkgs/main/linux-64::xz-5.2.10-h5eee18b_1
  zlib               anaconda/pkgs/main/linux-64::zlib-1.2.13-h5eee18b_0


Proceed ([y]/n)? y


Downloading and Extracting Packages

Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
#     $ conda activate py37
#
# To deactivate an active environment, use
#
#     $ conda deactivate

(base) xf@VP01:~$
(py37) xf@VP01:~$

3.2 安装PyTorch113 GPU版本

3.2.1 官网链接

PyTorch历史版本
https://pytorch.org/get-started/previous-versions/

深度学习开源框架大多在Python 3.7环境,我们以PyTorch 1.13.1为例安装CUDA 11.7版本

3.2.2 Conda安装方法

conda install pytorch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 pytorch-cuda=11.7 -c pytorch -c nvidia

package                      |      build
-----------------------------|-----------------
	cuda-cudart-11.7.99        |                0         194 KB  nvidia
    cuda-cupti-11.7.101        |                0        22.9 MB  nvidia
    cuda-libraries-11.7.1      |                0           1 KB  nvidia
    cuda-nvrtc-11.7.99         |                0        17.3 MB  nvidia
    cuda-nvtx-11.7.91          |                0          57 KB  nvidia
    cuda-runtime-11.7.1        |                0           1 KB  nvidia
...
    pytorch-1.13.1             |py3.7_cuda11.7_cudnn8.5.0_0        1.14 GB  pytorch
    pytorch-cuda-11.7          |       h778d358_3           7 KB  pytorch
...
    torchaudio-0.13.1          |       py37_cu117         6.5 MB  pytorch
    torchvision-0.14.1         |       py37_cu117        29.5 MB  pytorch

在安装包列表中了解即将安装的是否CUDA版本, 第2列版本build中带_cu117,说明是CUDA加速版本

(py37) xf@VP01:~$ conda install pytorch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 pytorch-cuda=11.7 -c pytorch -c nvidia
Collecting package metadata (current_repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Collecting package metadata (repodata.json): done
Solving environment: done

## Package Plan ##

  environment location: /home/xf/anaconda3/envs/py37

  added / updated specs:
    - pytorch-cuda=11.7
    - pytorch==1.13.1
    - torchaudio==0.13.1
    - torchvision==0.14.1


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    brotlipy-0.7.0             |py37h27cfd23_1003         320 KB  defaults
    bzip2-1.0.8                |       h7b6447c_0          78 KB  defaults
    cffi-1.15.1                |   py37h5eee18b_3         240 KB  defaults
    cryptography-39.0.1        |   py37h9ce1e76_0         1.4 MB  defaults
    cuda-cudart-11.7.99        |                0         194 KB  nvidia
    cuda-cupti-11.7.101        |                0        22.9 MB  nvidia
    cuda-libraries-11.7.1      |                0           1 KB  nvidia
    cuda-nvrtc-11.7.99         |                0        17.3 MB  nvidia
    cuda-nvtx-11.7.91          |                0          57 KB  nvidia
    cuda-runtime-11.7.1        |                0           1 KB  nvidia
    idna-3.4                   |   py37h06a4308_0          91 KB  defaults
    libcublas-11.10.3.66       |                0       286.1 MB  nvidia
    libcufft-10.7.2.124        |       h4fbf590_0        93.6 MB  nvidia
    libcusolver-11.4.0.1       |                0        78.7 MB  nvidia
    libcusparse-11.7.4.91      |                0       151.1 MB  nvidia
    libnpp-11.7.4.75           |                0       129.3 MB  nvidia
    libnvjpeg-11.8.0.2         |                0         2.2 MB  nvidia
    mkl-service-2.4.0          |   py37h7f8727e_0          56 KB  defaults
    mkl_fft-1.3.1              |   py37hd3c417c_0         172 KB  defaults
    mkl_random-1.2.2           |   py37h51133e4_0         287 KB  defaults
    numpy-1.21.5               |   py37h6c91a56_3          10 KB  defaults
    numpy-base-1.21.5          |   py37ha15fc14_3         4.8 MB  defaults
    pillow-9.4.0               |   py37h6a678d5_0         721 KB  defaults
    pyopenssl-23.0.0           |   py37h06a4308_0          96 KB  defaults
    pysocks-1.7.1              |           py37_1          27 KB  defaults
    pytorch-1.13.1             |py3.7_cuda11.7_cudnn8.5.0_0        1.14 GB  pytorch
    pytorch-cuda-11.7          |       h778d358_3           7 KB  pytorch
    requests-2.28.1            |   py37h06a4308_0          92 KB  defaults
    torchaudio-0.13.1          |       py37_cu117         6.5 MB  pytorch
    torchvision-0.14.1         |       py37_cu117        29.5 MB  pytorch
    typing_extensions-4.3.0    |   py37h06a4308_0          42 KB  defaults
    urllib3-1.26.14            |   py37h06a4308_0         195 KB  defaults
    ------------------------------------------------------------
                                           Total:        1.95 GB

The following NEW packages will be INSTALLED:

  blas               anaconda/pkgs/main/linux-64::blas-1.0-mkl
  brotlipy           anaconda/pkgs/main/linux-64::brotlipy-0.7.0-py37h27cfd23_1003
  bzip2              anaconda/pkgs/main/linux-64::bzip2-1.0.8-h7b6447c_0
  cffi               anaconda/pkgs/main/linux-64::cffi-1.15.1-py37h5eee18b_3
  charset-normalizer anaconda/pkgs/main/noarch::charset-normalizer-2.0.4-pyhd3eb1b0_0
  cryptography       anaconda/pkgs/main/linux-64::cryptography-39.0.1-py37h9ce1e76_0
  cuda-cudart        nvidia/linux-64::cuda-cudart-11.7.99-0
  cuda-cupti         nvidia/linux-64::cuda-cupti-11.7.101-0
  cuda-libraries     nvidia/linux-64::cuda-libraries-11.7.1-0
  cuda-nvrtc         nvidia/linux-64::cuda-nvrtc-11.7.99-0
  cuda-nvtx          nvidia/linux-64::cuda-nvtx-11.7.91-0
  cuda-runtime       nvidia/linux-64::cuda-runtime-11.7.1-0
  ffmpeg             pytorch/linux-64::ffmpeg-4.3-hf484d3e_0
  freetype           anaconda/pkgs/main/linux-64::freetype-2.12.1-h4a9f257_0
  giflib             anaconda/pkgs/main/linux-64::giflib-5.2.1-h5eee18b_3
  gmp                anaconda/pkgs/main/linux-64::gmp-6.2.1-h295c915_3
  gnutls             anaconda/pkgs/main/linux-64::gnutls-3.6.15-he1e5248_0
  idna               anaconda/pkgs/main/linux-64::idna-3.4-py37h06a4308_0
  intel-openmp       anaconda/pkgs/main/linux-64::intel-openmp-2021.4.0-h06a4308_3561
  jpeg               anaconda/pkgs/main/linux-64::jpeg-9e-h5eee18b_1
  lame               anaconda/pkgs/main/linux-64::lame-3.100-h7b6447c_0
  lcms2              anaconda/pkgs/main/linux-64::lcms2-2.12-h3be6417_0
  lerc               anaconda/pkgs/main/linux-64::lerc-3.0-h295c915_0
  libcublas          nvidia/linux-64::libcublas-11.10.3.66-0
  libcufft           nvidia/linux-64::libcufft-10.7.2.124-h4fbf590_0
  libcufile          nvidia/linux-64::libcufile-1.6.0.25-0
  libcurand          nvidia/linux-64::libcurand-10.3.2.56-0
  libcusolver        nvidia/linux-64::libcusolver-11.4.0.1-0
  libcusparse        nvidia/linux-64::libcusparse-11.7.4.91-0
  libdeflate         anaconda/pkgs/main/linux-64::libdeflate-1.17-h5eee18b_0
  libiconv           anaconda/pkgs/main/linux-64::libiconv-1.16-h7f8727e_2
  libidn2            anaconda/pkgs/main/linux-64::libidn2-2.3.2-h7f8727e_0
  libnpp             nvidia/linux-64::libnpp-11.7.4.75-0
  libnvjpeg          nvidia/linux-64::libnvjpeg-11.8.0.2-0
  libpng             anaconda/pkgs/main/linux-64::libpng-1.6.39-h5eee18b_0
  libtasn1           anaconda/pkgs/main/linux-64::libtasn1-4.19.0-h5eee18b_0
  libtiff            anaconda/pkgs/main/linux-64::libtiff-4.5.0-h6a678d5_2
  libunistring       anaconda/pkgs/main/linux-64::libunistring-0.9.10-h27cfd23_0
  libwebp            anaconda/pkgs/main/linux-64::libwebp-1.2.4-h11a3e52_1
  libwebp-base       anaconda/pkgs/main/linux-64::libwebp-base-1.2.4-h5eee18b_1
  lz4-c              anaconda/pkgs/main/linux-64::lz4-c-1.9.4-h6a678d5_0
  mkl                anaconda/pkgs/main/linux-64::mkl-2021.4.0-h06a4308_640
  mkl-service        anaconda/pkgs/main/linux-64::mkl-service-2.4.0-py37h7f8727e_0
  mkl_fft            anaconda/pkgs/main/linux-64::mkl_fft-1.3.1-py37hd3c417c_0
  mkl_random         anaconda/pkgs/main/linux-64::mkl_random-1.2.2-py37h51133e4_0
  nettle             anaconda/pkgs/main/linux-64::nettle-3.7.3-hbbd107a_1
  numpy              anaconda/pkgs/main/linux-64::numpy-1.21.5-py37h6c91a56_3
  numpy-base         anaconda/pkgs/main/linux-64::numpy-base-1.21.5-py37ha15fc14_3
  openh264           anaconda/pkgs/main/linux-64::openh264-2.1.1-h4ff587b_0
  pillow             anaconda/pkgs/main/linux-64::pillow-9.4.0-py37h6a678d5_0
  pycparser          anaconda/pkgs/main/noarch::pycparser-2.21-pyhd3eb1b0_0
  pyopenssl          anaconda/pkgs/main/linux-64::pyopenssl-23.0.0-py37h06a4308_0
  pysocks            anaconda/pkgs/main/linux-64::pysocks-1.7.1-py37_1
  pytorch            pytorch/linux-64::pytorch-1.13.1-py3.7_cuda11.7_cudnn8.5.0_0
  pytorch-cuda       pytorch/linux-64::pytorch-cuda-11.7-h778d358_3
  pytorch-mutex      pytorch/noarch::pytorch-mutex-1.0-cuda
  requests           anaconda/pkgs/main/linux-64::requests-2.28.1-py37h06a4308_0
  six                anaconda/pkgs/main/noarch::six-1.16.0-pyhd3eb1b0_1
  torchaudio         pytorch/linux-64::torchaudio-0.13.1-py37_cu117
  torchvision        pytorch/linux-64::torchvision-0.14.1-py37_cu117
  typing_extensions  anaconda/pkgs/main/linux-64::typing_extensions-4.3.0-py37h06a4308_0
  urllib3            anaconda/pkgs/main/linux-64::urllib3-1.26.14-py37h06a4308_0
  zstd               anaconda/pkgs/main/linux-64::zstd-1.5.4-hc292b87_0


Proceed ([y]/n)?

Downloading and Extracting Packages

Preparing transaction: done
Verifying transaction: done
Executing transaction: done
(py37) xf@VP01:~$

3.2.3 list确认已装CUDA ToolKit和pytorch是否支持CUDA版本

conda list

# Name                    Version                             Build    Channel
...
cuda-cudart               11.7.99                       0    nvidia
cuda-cupti                11.7.101                      0    nvidia
cuda-libraries            11.7.1                        0    nvidia
cuda-nvrtc                11.7.99                       0    nvidia
cuda-nvtx                 11.7.91                       0    nvidia
cuda-runtime              11.7.1                        0    nvidia
...
python                    3.7.16               h7a1cb2a_0    defaults
pytorch                   1.13.1          py3.7_cuda11.7_cudnn8.5.0_0    pytorch
pytorch-cuda              11.7                 h778d358_3    pytorch
...
torchaudio                0.13.1               py37_cu117    pytorch
torchvision               0.14.1               py37_cu117    pytorch

列出conda安装包列表

  • 确认安装的PyTorch是否CUDA版本
    第3列版本build中带_cu117,说明是CUDA加速版本
  • 确认cuda runtime版本 11.7
    cuda-* 相关版本11.7.*

3.2.4 验证PyTorch CUDA

python -c "import torch;print(torch.cuda.is_available())"

(py37) xf@VP01:~$ python -c "import torch;print(torch.cuda.is_available())"
True
(py37) xf@VP01:~$

本章完

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值