以下是针对 Ubuntu 20.04 安装 CUDA 和 cuDNN 的详细教程,包含版本选择、步骤解释、验证方法及常见问题解决方案:
lspci | grep -i nvidia # 查看是否有 NVIDIA GPU
nvidia-smi # 若已安装驱动,会显示 GPU 状态
# 卸载旧的 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*
# 添加官方驱动仓库
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
# 安装推荐驱动(自动选择最佳版本)
sudo ubuntu-drivers autoinstall
# 或手动安装指定驱动版本(如 525)
sudo apt install nvidia-driver-525 -y
sudo reboot
nvidia-smi # 应显示驱动版本和 GPU 信息
nvidia-settings # 图形界面工具,可查看详细信息
# 下载并配置仓库优先级(确保 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/ /"
sudo apt-get update
sudo apt-get install cuda -y
# 编辑 ~/.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
# 查看 CUDA 版本
nvcc --version
# 运行示例程序(需编译)
cd /usr/local/cuda-11.8/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery
# 输出应显示 "Result = PASS"
cudnn-linux-x64-v8.9.5.25.tgz
)。tar -xzvf cudnn-linux-x64-v8.9.5.25.tgz
# 复制文件到 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
# 编写测试代码(保存为 cudnnTest.cu)
nano cudnnTest.cu
cudnnTest.cu 内容:
#include
#include
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)
# 若重启后黑屏,尝试进入 TTY 终端(Ctrl+Alt+F2)
# 卸载驱动并重新安装
sudo apt-get purge nvidia* -y
sudo apt-get install nvidia-driver-525 -y
sudo reboot
~/.bashrc
或 ~/.zshrc
中的路径是否正确。source ~/.bashrc
或重新登录终端。# 安装开发工具包
sudo apt-get install build-essential freeglut3-dev
# 重新编译示例
cd /usr/local/cuda-11.8/samples/1_Utilities/deviceQuery
sudo make clean && sudo make
# 若提示权限不足,使用 sudo 或修改文件权限
sudo chmod +x /usr/local/cuda-11.8/bin/*
CUDA 与驱动版本不匹配:
# 查看驱动版本
nvidia-smi
# 确保 CUDA 版本与驱动兼容(如驱动 525 需 CUDA 11.8)
# 指定 CUDA 版本安装(如 CUDA 11.8)
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
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 的安装与验证。