以下是针对 Ubuntu 20.04 安装 CUDA 和 cuDNN 的详细教程,包含版本选择、步骤解释、验证方法及常见问题解决方案:
一、安装前的准备
1. 硬件与系统要求
- GPU 支持:确保你的 NVIDIA GPU 支持 CUDA(如 RTX 20/30/40 系列、Titan 系列等)。
- 系统版本:Ubuntu 20.04 LTS(64-bit)。
- 最小内存:建议至少 8GB RAM。
2. 检查当前驱动
lspci | grep -i nvidia # 查看是否有 NVIDIA GPU
nvidia-smi # 若已安装驱动,会显示 GPU 状态
3. 确定 CUDA 和 cuDNN 版本
- CUDA 版本:根据你的 GPU 型号和深度学习框架需求选择。例如:
- RTX 30 系列可选 CUDA 11.8(支持最新驱动)。
- 若需 TensorFlow 2.x 或 PyTorch 2.x,CUDA 11.8 和 cuDNN 8.9 是常见组合。
- cuDNN 版本:需与 CUDA 版本严格匹配(如 CUDA 11.8 对应 cuDNN 8.9)。
- 驱动版本:CUDA 11.8 需 NVIDIA 驱动 525.60.13 或更高。
二、安装 NVIDIA 驱动
1. 卸载旧驱动(如有)
# 卸载旧的 NVIDIA 相关包
sudo apt-get purge nvidia* -y
sudo apt autoremove --purge -y
sudo apt-get remove --auto-remove nvidia*
# 删除旧的配置文件
sudo rm -rf /etc/X11/xorg.conf*
2. 安装最新驱动(推荐方法)
# 添加官方驱动仓库
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
# 安装推荐驱动(自动选择最佳版本)
sudo ubuntu-drivers autoinstall
# 或手动安装指定驱动版本(如 525)
sudo apt install nvidia-driver-525 -y
3. 重启系统
sudo reboot
4. 验证驱动安装
nvidia-smi # 应显示驱动版本和 GPU 信息
nvidia-settings # 图形界面工具,可查看详细信息
三、安装 CUDA Toolkit
1. 添加 CUDA 仓库
# 下载并配置仓库优先级(确保 CUDA 优先于其他版本)
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
# 下载公钥
wget https://developer.download.nvidia.com/compute/cuda/keys/deb/repos/ubuntu2004/x86_64/7fa2af80.pub
sudo apt-key add 7fa2af80.pub
# 添加 CUDA 仓库源(以 CUDA 11.8 为例)
sudo apt-add-repository "deb https://developer.download.nvidia.com/compute/cuda/11.8.0/local_debianrepos/cuda-ubuntu2004-pool/ /"
2. 更新并安装 CUDA
sudo apt-get update
sudo apt-get install cuda -y
3. 配置环境变量
# 编辑 ~/.bashrc 或 ~/.zshrc(取决于你的 shell)
nano ~/.bashrc
# 在文件末尾添加以下内容:
export PATH=/usr/local/cuda-11.8/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH
export CUDA_HOME=/usr/local/cuda-11.8
# 使配置生效
source ~/.bashrc
4. 验证 CUDA 安装
# 查看 CUDA 版本
nvcc --version
# 运行示例程序(需编译)
cd /usr/local/cuda-11.8/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery
# 输出应显示 "Result = PASS"
四、安装 cuDNN
1. 下载 cuDNN
- 访问 NVIDIA cuDNN 下载页面。
- 登录 NVIDIA 账户(没有则需注册)。
- 选择版本:根据 CUDA 版本选择对应的 cuDNN:
- CUDA 11.8 对应 cuDNN 8.9.5(下载
cudnn-linux-x64-v8.9.5.25.tgz
)。
- CUDA 11.8 对应 cuDNN 8.9.5(下载
- 下载完成后解压:
tar -xzvf cudnn-linux-x64-v8.9.5.25.tgz
2. 安装 cuDNN
# 复制文件到 CUDA 目录
sudo cp cuda/include/cudnn*.h /usr/local/cuda-11.8/include/
sudo cp cuda/lib/x64/libcudnn* /usr/local/cuda-11.8/lib64/
# 设置权限
sudo chmod a+r /usr/local/cuda-11.8/include/cudnn*.h
sudo chmod a+r /usr/local/cuda-11.8/lib64/libcudnn*
# 创建符号链接(可选)
sudo ln -s /usr/local/cuda-11.8/lib64/libcudnn.so.8.9.5 /usr/local/cuda-11.8/lib64/libcudnn.so
3. 验证 cuDNN
# 编写测试代码(保存为 cudnnTest.cu)
nano cudnnTest.cu
cudnnTest.cu 内容:
#include <cudnn.h>
#include <stdio.h>
int main() {
cudnnHandle_t handle;
cudnnStatus_t status = cudnnCreate(&handle);
if (status != CUDNN_STATUS_SUCCESS) {
printf("cuDNN 初始化失败!\n");
return -1;
}
printf("cuDNN 版本: %d\n", CUDNN_VERSION);
cudnnDestroy(handle);
return 0;
}
编译并运行:
nvcc -o cudnnTest cudnnTest.cu -lcudnn
./cudnnTest
# 输出应显示类似 "cuDNN 版本: 8905"(8.9.5 对应 8905)
五、常见问题解决
1. 驱动冲突导致无法启动 GUI
# 若重启后黑屏,尝试进入 TTY 终端(Ctrl+Alt+F2)
# 卸载驱动并重新安装
sudo apt-get purge nvidia* -y
sudo apt-get install nvidia-driver-525 -y
sudo reboot
2. 环境变量未生效
- 检查
~/.bashrc
或~/.zshrc
中的路径是否正确。 - 确保执行
source ~/.bashrc
或重新登录终端。
3. CUDA 样本程序编译失败
# 安装开发工具包
sudo apt-get install build-essential freeglut3-dev
# 重新编译示例
cd /usr/local/cuda-11.8/samples/1_Utilities/deviceQuery
sudo make clean && sudo make
4. 权限问题
# 若提示权限不足,使用 sudo 或修改文件权限
sudo chmod +x /usr/local/cuda-11.8/bin/*
5. 版本不匹配
-
CUDA 与驱动版本不匹配:
# 查看驱动版本 nvidia-smi # 确保 CUDA 版本与驱动兼容(如驱动 525 需 CUDA 11.8)
六、深度学习框架验证
1. 安装 PyTorch
# 指定 CUDA 版本安装(如 CUDA 11.8)
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
2. 验证 PyTorch
import torch
print(torch.__version__) # 查看版本
print(torch.cuda.is_available()) # 应输出 True
print(torch.cuda.get_device_name(0)) # 显示 GPU 名称
七、附录:版本对应表
CUDA 版本 | cuDNN 版本 | NVIDIA 驱动版本 | 对应深度学习框架 |
---|---|---|---|
11.8 | 8.9.5 | 525.60.13+ | PyTorch 2.1+, TF 2.13+ |
11.7 | 8.6.0 | 515.65.01+ | PyTorch 1.13+, TF 2.11+ |
通过以上步骤,您应该能够顺利完成 CUDA 和 cuDNN 的安装与验证。