Conda 配置 CUDA/CuDNN/PyTorch

希望在服务器上重新配置一套 Python / Pytorch / CUDA / CuDNN 环境。之前的环境为了兼容一些旧项目 (点名 TVM) 而使用了各个驱动和软件包的较低版本,导致运行新项目时易产生兼容性问题。

在 Conda 中完成配置。

安装 Anaconda3

安装命令如下。

1
2
chmod 777 Anaconda3-2024.10-1-Linux-x86_64.sh 
./Anaconda3-2024.10-1-Linux-x86_64.sh

交互内容使用默认选项即可。

1
2
3
4
5
6
7
# Do you accept the license terms? [yes|no]
# >>> yes
# ...
# You can undo this by running `conda init --reverse $SHELL`? [yes|no]
# [no] >>> no
# ...
# Thank you for installing Anaconda3!

环境变量设置

在 /etc/profile 中配置 Conda 路径,如下。

1
2
3
# vim /etc/profile
export PATH=/root/anaconda3/bin:$PATH
$ source /etc/profile

检查 Conda 版本,有输出即为安装成功。

1
conda -V  # 24.9.2

创建 Python 环境

以 Python 3.11 为例,创建 Conda 环境

1
conda create -n torch python=3.11

执行初始化检查,并刷新 .bashrc

1
2
conda init
source /root/.bashrc

笔者这里使用 python3 才能看到 Conda 安装的 Python 版本,这是因为此前使用 alias 进行过 Python 版本切换。

1
2
conda activate torch
python3 -V # 3.11.11

安装 CUDA & CuDNN

采用 CudaToolkit 方式安装 CUDA。首先查看当前 Nvidia Driver 支持的最高版本,然后执行如下命令

1
(torch) conda install nvidia/label/cuda-12.2.2::cuda-toolkit

查找 CuDNN 可用版本

1
(torch) conda search cudnn

输出如下

1
2
3
4
5
Loading channels: done
# Name Version Build Channel
# cudnn 7.0.5 cuda8.0_0 pkgs/main
# cudnn 8.9.2.26 cuda11_0 pkgs/main
# cudnn 9.1.1.17 cuda12_1 pkgs/main

安装指定版本

1
(torch) conda install cudnn=9.1

安装 PyTorch

参考 PyTorch 官网提供的 Instruction 安装 PyTorch (p.s. 现在对 Rocm 支持越来越好了,AMD YES)

1
conda install pytorch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 pytorch-cuda=12.1 -c pytorch -c nvidia

首次安装时意外卡在 99%,Ctrl + C 后重新安装,出现如下报错

1
2
3
CondaVerificationError: The package for pytorch located at /root/anaconda3/pkgs/pytorch-2.5.1-py3.11_cuda12.1_cudnn9.1.0_0
appears to be corrupted. The path 'lib/python3.11/site-packages/torch/include/ATen/cuda/CUDAApplyUtils.cuh'
specified in the package manifest cannot be found.

执行如下命令清理损坏的包

1
(torch) conda clean --packages

交互内容使用默认选项即可。

1
2
3
# Will remove 158 (10.90 GB) package(s).
# Proceed ([y]/n)? y
# reinstall

可能在 Solving environment 一行卡住较长时间,耐心等待。

测试

编写一个小脚本测试当前 Conda 环境中安装的驱动和软件包版本。

1
2
3
4
print(torch.backends.cudnn.version())  # 90100
print(torch.__version__) # 2.5.1
print(torch.version.cuda) # 12.1
print(torch.cuda.is_available()) # True

References

  1. Cuda Toolkit | Anaconda.org
  2. Previous PyTorch Versions | PyTorch
  3. Linux环境安装Anaconda(详细图文)_linux安装anaconda-CSDN博客
  4. conda环境中配置cuda+cudnn+pytorch深度学习环境_conda虚拟环境安装cuda-CSDN博客