在深度学习领域,GPU加速已成为提升模型训练效率的标配。对于Ubuntu 18.04用户而言,正确配置CUDA和CUDNN环境是开启GPU加速的第一步。本文将带你从零开始,完成CUDA 10.2与CUDNN 7.6.5的完整安装流程,涵盖图形界面管理、环境变量配置以及常见问题排查。
在开始安装前,我们需要确保系统环境符合要求。首先确认NVIDIA驱动已正确安装:
bash复制nvidia-smi
输出示例:
code复制+-----------------------------------------------------------------------------+
| NVIDIA-SMI 450.80.02 Driver Version: 450.80.02 CUDA Version: 10.2 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce RTX 2080 Off | 00000000:01:00.0 On | N/A |
| 30% 45C P8 10W / 215W | 256MiB / 7982MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
关键检查点:
提示:如果nvidia-smi命令报错,说明驱动未正确安装,需先解决驱动问题再继续。
访问NVIDIA开发者网站,选择CUDA Toolkit 10.2版本。根据系统配置选择:
| 选项 | 推荐值 |
|---|---|
| 操作系统 | Linux → x86_64 → Ubuntu → 18.04 |
| 安装类型 | runfile (local) |
下载命令示例:
bash复制wget https://developer.download.nvidia.com/compute/cuda/10.2/Prod/local_installers/cuda_10.2.89_440.33.01_linux.run
CUDNN需要NVIDIA开发者账号登录后下载。在归档版本中找到对应CUDA 10.2的CUDNN 7.6.5:
为避免安装冲突,需要临时关闭显示管理器:
bash复制sudo systemctl stop lightdm # 或gdm3
此时系统会切换到命令行界面,使用Ctrl+Alt+F1~F6登录终端。
进入下载目录,运行安装程序:
bash复制sudo sh cuda_10.2.89_440.33.01_linux.run
安装过程中需注意:
安装完成后,添加环境变量到~/.bashrc:
bash复制export PATH=/usr/local/cuda-10.2/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export CUDA_HOME=/usr/local/cuda-10.2
应用更改:
bash复制source ~/.bashrc
验证安装:
bash复制nvcc -V
预期输出应显示CUDA 10.2版本信息。
解压下载的CUDNN包:
bash复制tar -xzvf cudnn-10.2-linux-x64-v7.6.5.32.tgz
执行安装命令:
bash复制sudo cp cuda/include/cudnn.h /usr/local/cuda-10.2/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-10.2/lib64/
sudo chmod a+r /usr/local/cuda-10.2/include/cudnn.h
sudo chmod a+r /usr/local/cuda-10.2/lib64/libcudnn*
验证安装:
bash复制cat /usr/local/cuda-10.2/include/cudnn.h | grep CUDNN_MAJOR -A 2
输出应显示CUDNN版本号为7.6.5。
bash复制sudo systemctl start lightdm
如果遇到问题,可尝试重启系统:
bash复制sudo reboot
安装PyTorch测试环境:
bash复制conda create -n test_env python=3.7
conda activate test_env
conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cudatoolkit=10.2 -c pytorch
验证GPU可用性:
python复制import torch
print(torch.cuda.is_available()) # 应输出True
print(torch.backends.cudnn.version()) # 应显示7610(对应7.6.5)
常见错误组合:
解决方案矩阵:
| 问题现象 | 可能原因 | 解决方法 |
|---|---|---|
| nvcc -V报错 | PATH未正确设置 | 检查.bashrc配置 |
| 训练时CUDA错误 | CUDNN版本不匹配 | 重新安装指定版本 |
| GPU不可用 | 驱动版本过低 | 升级NVIDIA驱动 |
如果重启后无法进入图形界面:
bash复制cat /etc/X11/default-display-manager
bash复制sudo apt install --reinstall lightdm
多版本CUDA管理技巧:
bash复制# 使用alternatives系统管理多版本
sudo update-alternatives --install /usr/local/cuda cuda /usr/local/cuda-10.2 100
sudo update-alternatives --config cuda
bash复制sudo nvidia-smi -pm 1
bash复制sudo nvidia-smi -lgc <clock_speed>
python复制torch.backends.cudnn.benchmark = True
实际部署中,建议定期检查驱动和CUDA的更新,但生产环境应保持版本稳定。我在多个项目中使用这套配置组合,相比新版本反而遇到更少的兼容性问题,特别是与TensorFlow 1.x和早期PyTorch版本的配合更为稳定。