跳转至

CUDA版本切换

注意:如果没有二次编译代码的需求,不需要单独安装CUDA。

此文档所示内容,仅作为便利之用,不作为所提供设备的服务质量范畴。

注意

nvidia-smi 右上角的CUDA Version并非当前cuda版本,此处表示当前驱动最高支持的cuda版本!!!
nvidia-smi 右上角的CUDA Version并非当前cuda版本,此处表示当前驱动最高支持的cuda版本!!!
nvidia-smi 右上角的CUDA Version并非当前cuda版本,此处表示当前驱动最高支持的cuda版本!!!

1. 查看当前cuda版本

1.1 Winodws镜像

打开文件夹 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA,里面就是当前默认安装的cuda。

alt text

这里看到的是系统默认的cuda,并不表示conda环境中的cuda版本

1.2 Linux ( Ubuntu )镜像

ldconfig -p | grep cuda
    libnvrtc.so.12 (libc6,x86-64) => /usr/local/cuda-12.4/targets/x86_64-linux/lib/libnvrtc.so.12
    libnvrtc.so (libc6,x86-64) => /usr/local/cuda-12.4/targets/x86_64-linux/lib/libnvrtc.so
    libnvrtc-builtins.so.12.4 (libc6,x86-64) => /usr/local/cuda-12.4/targets/x86_64-linux/lib/libnvrtc-builtins.so.12.4
    libnvrtc-builtins.so (libc6,x86-64) => /usr/local/cuda-12.4/targets/x86_64-linux/lib/libnvrtc-builtins.so

输出的内容.so后的数字即为版本号。

1.3 Conda虚拟环境中

在切换到所需的 conda虚拟环境 之后,也可以通过以下命令来查看当前的版本:

(torch212-py39-cuda118) root@xxx:~# conda list
# packages in environment at /opt/anaconda3/envs/torch212-py39-cuda118:
#
# Name                    Version                   Build  Channel
_libgcc_mutex             0.1                        main
_openmp_mutex             5.1                       1_gnu
asttokens                 2.0.5              pyhd3eb1b0_0    main
backcall                  0.2.0              pyhd3eb1b0_0    main
blas                      1.0                         mkl    main
brotli-python             1.0.9            py39h6a678d5_7    main
bzip2                     1.0.8                h7b6447c_0    main
ca-certificates           2023.08.22           h06a4308_0    main
certifi                   2023.11.17       py39h06a4308_0    main
cffi                      1.15.1           py39h74dc2b5_0    main
charset-normalizer        2.0.4              pyhd3eb1b0_0    main
comm                      0.1.2            py39h06a4308_0    main
cryptography              41.0.3           py39h130f0dd_0    main
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
cudatoolkit               11.8.0               h6a678d5_0    main
cudnn                     8.9.2.26               cuda11_0    main

找到上面结果中的cudatoolkit,他的版本,既是当前环境的cuda版本。

2. 安装其他版本的CUDA

2.1 conda虚拟环境(推荐)

1. 查找所需版本的cuda版本

root@xxxx:~# conda search cudatoolkit -c nvidia -c conda-forge
Loading channels: done
# Name                       Version           Build  Channel
cudatoolkit                      9.0      h13b8566_0  pkgs/main
cudatoolkit                      9.2               0  nvidia
cudatoolkit                      9.2               0  pkgs/main
cudatoolkit                  9.2.148     h33e3169_12  conda-forge
cudatoolkit                  9.2.148     h33e3169_13  conda-forge
cudatoolkit                  9.2.148     h60dc4a4_10  conda-forge
cudatoolkit                  9.2.148     h60dc4a4_11  conda-forge
cudatoolkit                  9.2.148     h80a95b2_10  conda-forge
cudatoolkit                  9.2.148      h80a95b2_6  conda-forge
cudatoolkit                  9.2.148      h80a95b2_7  conda-forge
cudatoolkit                  9.2.148      h80a95b2_8  conda-forge
cudatoolkit                  9.2.148      h80a95b2_9  conda-forge
cudatoolkit                 10.0.130               0  nvidia
cudatoolkit                 10.0.130               0  pkgs/main
cudatoolkit                 10.0.130     h8c5a6a4_10  conda-forge
cudatoolkit                 10.0.130     h8c5a6a4_11  conda-forge
cudatoolkit                 10.0.130     h9ed11e1_12  conda-forge
cudatoolkit                 10.0.130     h9ed11e1_13  conda-forge
cudatoolkit                 10.0.130     hf841e97_10  conda-forge
cudatoolkit                 10.0.130      hf841e97_6  conda-forge
cudatoolkit                 10.0.130      hf841e97_7  conda-forge
cudatoolkit                 10.0.130      hf841e97_8  conda-forge
cudatoolkit                 10.0.130      hf841e97_9  conda-forge
cudatoolkit                 10.1.168               0  pkgs/main
cudatoolkit                 10.1.243     h036e899_10  conda-forge
cudatoolkit                 10.1.243      h036e899_6  conda-forge
cudatoolkit                 10.1.243      h036e899_7  conda-forge
cudatoolkit                 10.1.243      h036e899_8  nvidia
cudatoolkit                 10.1.243      h036e899_8  conda-forge
cudatoolkit                 10.1.243      h036e899_9  conda-forge
cudatoolkit                 10.1.243      h6bb024c_0  nvidia
cudatoolkit                 10.1.243      h6bb024c_0  pkgs/main
cudatoolkit                 10.1.243     h6d9799a_12  conda-forge
cudatoolkit                 10.1.243     h6d9799a_13  conda-forge
cudatoolkit                 10.1.243     h8cb64d8_10  conda-forge
cudatoolkit                 10.1.243     h8cb64d8_11  conda-forge
cudatoolkit                  10.2.89      h6bb024c_0  nvidia
cudatoolkit                  10.2.89     h713d32c_10  conda-forge
cudatoolkit                  10.2.89     h713d32c_11  conda-forge
cudatoolkit                  10.2.89     h8f6ccaa_10  conda-forge
cudatoolkit                  10.2.89      h8f6ccaa_6  conda-forge
cudatoolkit                  10.2.89      h8f6ccaa_7  conda-forge
cudatoolkit                  10.2.89      h8f6ccaa_8  nvidia
cudatoolkit                  10.2.89      h8f6ccaa_8  conda-forge
cudatoolkit                  10.2.89      h8f6ccaa_9  conda-forge
cudatoolkit                  10.2.89     hdec6ad0_12  conda-forge
cudatoolkit                  10.2.89     hdec6ad0_13  conda-forge
cudatoolkit                  10.2.89      hfd86e86_0  pkgs/main
cudatoolkit                  10.2.89      hfd86e86_1  pkgs/main
cudatoolkit                   11.0.3     h15472ef_10  conda-forge
cudatoolkit                   11.0.3      h15472ef_6  conda-forge
cudatoolkit                   11.0.3      h15472ef_7  conda-forge
cudatoolkit                   11.0.3      h15472ef_8  nvidia
cudatoolkit                   11.0.3      h15472ef_8  conda-forge
cudatoolkit                   11.1.1      h6406543_9  conda-forge
cudatoolkit                   11.1.1     ha002fc5_10  conda-forge
cudatoolkit                   11.1.1     ha002fc5_11  conda-forge
cudatoolkit                   11.1.1     hb139c0e_12  conda-forge
cudatoolkit                   11.1.1     hb139c0e_13  conda-forge
cudatoolkit                  11.1.74      h6bb024c_0  nvidia
cudatoolkit                   11.2.0      h73cb219_7  conda-forge
cudatoolkit                   11.2.0      h73cb219_8  nvidia
cudatoolkit                   11.2.0      h73cb219_8  conda-forge
cudatoolkit                   11.2.0      h73cb219_9  conda-forge
cudatoolkit                   11.2.1      h8204236_8  nvidia
cudatoolkit                   11.2.1      h8204236_8  conda-forge
cudatoolkit                   11.2.1      h8204236_9  conda-forge
cudatoolkit                   11.2.2     hbe64b41_10  conda-forge
cudatoolkit                   11.2.2     hbe64b41_11  conda-forge
cudatoolkit                   11.2.2     hc23eb0c_12  conda-forge
cudatoolkit                   11.2.2     hc23eb0c_13  conda-forge
cudatoolkit                   11.2.2     he111cf0_10  conda-forge
...

2. 安装cudatoolkit

conda install cudatoolkit==xx.xx -c nvidia -c conda-forge

这里的 xx.xx 替换为前面找到的版本号

2.2 使用安装包安装

提示

我们不建议您执行这个操作。
如自行安装CUDA/显卡驱动导致机器无法使用,本公司不承担任何售后。

1. Windows系统

  • 下载CUDA

    • 下载地址:桌面 -> 常用软件 -> CUDA

      alt text

  • 安装: 运行所需版本的exe文件安装即可。

这里安装cuda之后,在conda中,依然是优先使用conda中安装的 cudatoolkit版本对应的cuda。

2. Ubuntu Linux

提示

如非二次编译需求,请勿修改系统默认的 驱动/cuda 版本。

根据所需版本,直接复制表格中的安装命令。

版本 安装命令 安装路径
cuda_9.0 sudo bash /public-share/常用软件/CUDA/cuda_9.0.176_384.81_linux.run --toolkit --silent --no-drm --toolkitpath=/usr/local/cuda-9.0 --override /usr/local/cuda_9.0
cuda_9.1 sudo bash /public-share/常用软件/CUDA/cuda_9.1.85_387.26_linux.run --toolkit --silent --no-drm --toolkitpath=/usr/local/cuda-9.1 --override /usr/local/cuda_9.1
cuda_9.2 sudo bash /public-share/常用软件/CUDA/cuda_9.2.148_396.37_linux.run --toolkit --silent --no-drm --toolkitpath=/usr/local/cuda-9.2 --override /usr/local/cuda_9.2
cuda_10.0 sudo bash /public-share/常用软件/CUDA/cuda_10.0.130_410.48_linux.run --toolkit --silent --no-drm --toolkitpath=/usr/local/cuda-10.0 --override /usr/local/cuda_10.0
cuda_10.1 sudo bash /public-share/常用软件/CUDA/cuda_10.1.243_418.87.00_linux.run --toolkit --silent --no-drm --installpath=/usr/local/cuda-10.1 --override /usr/local/cuda_10.1
cuda_10.2 sudo bash /public-share/常用软件/CUDA/cuda_10.2.89_440.33.01_linux.run --toolkit --silent --no-drm --installpath=/usr/local/cuda-10.2 --override /usr/local/cuda_10.2
cuda_11.0 sudo bash /public-share/常用软件/CUDA/cuda_11.0.3_450.51.06_linux.run --toolkit --silent --no-drm --installpath=/usr/local/cuda-11.0 --override /usr/local/cuda_11.0
cuda_11.1 sudo bash /public-share/常用软件/CUDA/cuda_11.1.1_455.32.00_linux.run --toolkit --silent --no-drm --installpath=/usr/local/cuda-11.1 --override /usr/local/cuda_11.1
cuda_11.2 sudo bash /public-share/常用软件/CUDA/cuda_11.2.2_460.32.03_linux.run --toolkit --silent --no-drm --installpath=/usr/local/cuda-11.2 --override /usr/local/cuda_11.2
cuda_11.3 sudo bash /public-share/常用软件/CUDA/cuda_11.3.1_465.19.01_linux.run --toolkit --silent --no-drm --installpath=/usr/local/cuda-11.3 --override /usr/local/cuda_11.3
cuda_11.4 sudo bash /public-share/常用软件/CUDA/cuda_11.4.4_470.82.01_linux.run --toolkit --silent --no-drm --installpath=/usr/local/cuda-11.4 --override /usr/local/cuda_11.4
cuda_11.5 sudo bash /public-share/常用软件/CUDA/cuda_11.5.2_495.29.05_linux.run --toolkit --silent --no-drm --installpath=/usr/local/cuda-11.5 --override /usr/local/cuda_11.5
cuda_11.6 sudo bash /public-share/常用软件/CUDA/cuda_11.6.2_510.47.03_linux.run --toolkit --silent --no-drm --installpath=/usr/local/cuda-11.6 --override /usr/local/cuda_11.6
cuda_11.7 sudo bash /public-share/常用软件/CUDA/cuda_11.7.1_515.65.01_linux.run --toolkit --silent --no-drm --installpath=/usr/local/cuda-11.7 --override /usr/local/cuda_11.7
cuda_11.8 sudo bash /public-share/常用软件/CUDA/cuda_11.8.0_520.61.05_linux.run --toolkit --silent --no-drm --installpath=/usr/local/cuda-11.8 --override /usr/local/cuda_11.8
cuda_12.0 sudo bash /public-share/常用软件/CUDA/cuda_12.0.1_525.85.12_linux.run --toolkit --silent --no-drm --installpath=/usr/local/cuda-12.0 /usr/local/cuda_12.0
cuda_12.1 sudo bash /public-share/常用软件/CUDA/cuda_12.1.1_530.30.02_linux.run --toolkit --silent --no-drm --installpath=/usr/local/cuda-12.1 /usr/local/cuda_12.1
cuda_12.2 sudo bash /public-share/常用软件/CUDA/cuda_12.2.2_535.104.05_linux.ru --toolkit --silent --no-drm --installpath=/usr/local/cuda-12.2 /usr/local/cuda_12.2
cuda_12.3 sudo bash /public-share/常用软件/CUDA/cuda_12.3.2_545.23.08_linux.run --toolkit --silent --no-drm --installpath=/usr/local/cuda-12.3 /usr/local/cuda_12.3
cuda_12.4 sudo bash /public-share/常用软件/CUDA/cuda_12.4.1_550.54.15_linux.run --toolkit --silent --no-drm --installpath=/usr/local/cuda-12.4 /usr/local/cuda_12.4
cuda_12.5 sudo bash /public-share/常用软件/CUDA/cuda_12.5.1_555.42.06_linux.run --toolkit --silent --no-drm --installpath=/usr/local/cuda-12.5 /usr/local/cuda_12.5
cuda_12.6 sudo bash /public-share/常用软件/CUDA/cuda_12.6.3_560.35.05_linux.run --toolkit --silent --no-drm --installpath=/usr/local/cuda-12.6 /usr/local/cuda_12.6

如需其他版本,请查看 /public-share/常用软件/CUDA/ 文件夹,根据需要选择所需版本的 .run 文件安装即可。

安装之后,正常情况下,会自动创建/usr/local/cuda/usr/local/cuda_x.x的软链,如果环境变量设置正确,则可以通过执行nvcc -V来查看当前CUDA版本。

3. 使用切换工具

1. Ubuntu Linux

  • 在终端中执行:

    sudo -i bash /public-share/scripts/switch_cuda.sh
    
  • 会来到如下界面

    alt text

  • 根据需要选择即可

如自行调整过系统环境变量设置,此工具可能会失效。

2. Windows

暂时没有工具提供。

4. 其他补充

  • 显卡和所支持的cuda版本的对应关系:
    • CUDA9.x:1060、1070、1070Ti、1080
    • CUDA10.x:1060、1070、1070Ti、1080、1660Ti、1660S、2080Ti
    • CUDA11.0~11.3:1060、1070、1070Ti、1080、2080Ti、3060、3070、3080、3080Ti、3090、3090Ti
    • CUDA11.3:1060、1070、1070Ti、1080、2080Ti、3060、3070、3080、3080Ti、3090、3090Ti、4060Ti、4070Ti、4090
    • CUDA12.x:1060、1070、1070Ti、1080、2080Ti、3060、3070、3080、3080Ti、3090、3090Ti、4060Ti、4070Ti、4090
  • 执行 nvidia-smi 命令后,返回结果右上角显示的 CUDA Version 为当前驱动所支持的CUDA最高版本,而非当前CUDA版本。

    alt text