Bootstrap

Ubuntu20.04CUDA及cuDNN安装教程

以下是针对 Ubuntu 20.04 安装 CUDAcuDNN 的详细教程,包含版本选择、步骤解释、验证方法及常见问题解决方案:


一、安装前的准备

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)。
  • 下载完成后解压:
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.88.9.5525.60.13+PyTorch 2.1+, TF 2.13+
11.78.6.0515.65.01+PyTorch 1.13+, TF 2.11+

通过以上步骤,您应该能够顺利完成 CUDA 和 cuDNN 的安装与验证。

;