Ubuntu 中深度学习环境配置完整流程
1 显卡驱动
支持 CUDA 的所有显卡型号: Link
- 查询显卡型号
lspci -nn | grep VGA
即 Vendor ID:Device ID
为 10de:21c4,在浏览器或者 Link 中搜索。
- 填写显卡信息: Link
- 选择要下载的版本(可以选个新一点的 )
- 运行
.run
文件
sudo sh ./NVIDIA-Linux-x86_64-*.run
- 测试
nvidia-smi
2 CUDA
参考文档: Link
- 选择要安装的版本: Link
- 先通过
nvidia-smi
查看驱动支持的 CUDA 最高版本,我的最高版本为 11.8 - 然后在此范围内选择项目中比较常用的 CUDA 版本,只要低于最高版本都可以
- 查询本机系统信息
uname -m && cat /etc/*release
- 选择你的平台,下载相应的
.run
文件并运行
安装完成后,得到下面的输出信息。
- 修改
PATH
和LD_LIBRARY_PATH
变量来设置开发环境
参考文档: Link
vim ~/.bashrc
# 添加以下内容
# >>> cuda >>>
export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
# <<< cuda <<<
- 测试
nvcc -V
3 cuDNN
3.1 cuDNN 9.0.0 之前版本
- 安装
Zlib
sudo apt install zlib1g
- 下载 cuDNN: Link,要注册个帐号
- 根据安装的 CUDA 版本选择 cuDNN 版本,可以选新一点的
- 下载压缩包
# 解压下载的文件
tar -xvf cudnn-linux-x86_64-8.x.x.x_cudaX.Y-archive.tar.xz
# 复制到 CUDA 的目录下
sudo cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda/include
sudo cp -P cudnn-*-archive/lib/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
- 测试(有点麻烦,可以忽略)
sudo apt-get install libcudnn8=${cudnn_version}-1+${cuda_version}
sudo apt-get install libcudnn8-dev=${cudnn_version}-1+${cuda_version}
sudo apt-get install libcudnn8-samples=${cudnn_version}-1+${cuda_version}
${cudnn_version} = 8.x.x.x
${cuda_version} = cuda12.1 or cuda11.8…
Note: 以自己安装的版本为准!
cp -r /usr/src/cudnn_samples_v8/ $HOME
cd $HOME/cudnn_samples_v8/mnistCUDNN
make clean && make
./mnistCUDNN
如果 cuDNN 正确安装和运行,你会看到类似以下的信息:Test passed!
3.2 cuDNN 9.0.0 之后版本
参考文档: Link
cuDNN 9 可以与之前的 cuDNN 版本共存,如果有旧版本的 cuDNN,安装 cuDNN 9 时不会自动删除旧版本。
之后,如果要在旧版本与新版本之间切换,执行 sudo update-alternatives --config libcudnn
并选择相应的 cuDNN 版本。
-
选择安装的版本: Link
-
选择你的平台,下载相应的软件包
wget https://developer.download.nvidia.com/compute/cudnn/9.2.1/local_installers/cudnn-local-repo-ubuntu2004-9.2.1_1.0-1_amd64.deb
sudo dpkg -i cudnn-local-repo-ubuntu2004-9.2.1_1.0-1_amd64.deb
sudo cp /var/cudnn-local-repo-ubuntu2004-9.2.1/cudnn-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
- 安装 cuDNN
- Install for CUDA 11, run:
sudo apt-get -y install cudnn9-cuda-11
- Install for CUDA 12, run:
sudo apt-get -y install cudnn9-cuda-12
3.3 pip 安装 cuDNN 9.0.0 之后版本
参考文档: Link
NVIDIA 提供了通过 pip 安装 cuDNN 的 Python Wheels,但是在 pip 环境之外使用 cuDNN 时,还须配置主机环境。
- 更新 pip 和 wheel 模块
python3 -m pip install --upgrade pip wheel
- 安装 cuDNN
- Install for CUDA 11
python3 -m pip install nvidia-cudnn-cu11
若要指定 cuDNN 版本,运行:
python3 -m pip install nvidia-cudnn-cu11==9.x.y.z
- Install for CUDA 12
python3 -m pip install nvidia-cudnn-cu12
若要指定 cuDNN 版本,运行:
python3 -m pip install nvidia-cudnn-cu12==9.x.y.z
4 torch
-
根据项目需要确定要安装的版本
-
下载
.whl
文件: Link
-
安装 torch
conda activate xxx
pip install torch-*+cu*-cp*-cp*m-linux_x86_64.whl
- 测试
python
>>> import torch
>>> torch.cuda.is_available()
True
>>> torch.__version__
'1.11.0+cu113'
5 torchvision
- 根据 torch 选择对应的 torchvision 版本: Link
- 下载
.whl
文件: Link
- 安装 torchvision
conda activate xxx
pip install torchvision-*+cu*-cp*-cp*m-linux_x86_64.whl
- 测试
python
>>> import torchvision
>>> torchvision.__version__
'0.12.0+cu113'