linux安装 Nvidia驱动/CUDA Toolkit/cuDNN
一、CUDA、cuDNN简介
CUDA(Compute Unified Device Architecture)是由NVIDIA公司开发的一种通用并行计算平台和编程模型。它允许开发者利用GPU(图形处理器)的强大并行计算能力来高效处理各种计算密集型任务。CUDA不仅仅是硬件技术,它还包括一套完整的软件生态系统,提供从底层编程接口到高层应用框架的一系列工具,使得非图形领域的应用程序能够利用GPU进行加速。
cuDNN(CUDA Deep Neural Network)是NVIDIA提供的针对深度神经网络计算的GPU加速库。它是NVIDIA Deep Learning SDK的一部分,为标准例程如前向和反向卷积、池化层、归一化和激活层等提供了高度优化的实现。cuDNN旨在帮助深度学习研究人员和开发者实现高性能的GPU加速,使他们能够专注于训练神经网络和开发软件应用,而不必深入底层的GPU编程细节。
二、安装NVIDIA显卡驱动程序
匹配原则
显卡驱动与CUDA版本兼容性。
NVIDIA 显卡驱动需满足 CUDA Toolkit 的最低要求(CUDA Toolkit Release Notes )。例如,CUDA 11.8 需驱动版本 ≥ 515.43.04,CUDA 12.x 需驱动 ≥ 535.54.03。
GPU 算力与 CUDA 版本对应关系
查询算力:https://developer.nvidia.com/cuda-gpus#compute
显卡的算力决定了支持的CUDA版本。NVIDIA显卡的算力是通过Compute Capability(CC)来衡量的,不同的显卡有不同的CC值。例如,NVIDIA的RTX A2000显卡的算力为8.6,即CC为8.61。CUDA版本需要支持显卡的CC值,否则会出现兼容性问题。
1. 查看显卡设备:
1 | mvb@4090-6:$ lspci -nn | grep -i vga |
- 10de 是NVIDIA的厂商ID
- 2685 是设备ID,对应RTX 4090
2. 安装对应的显卡驱动
Nvidia 驱动下载页:https://www.nvidia.com/drivers
选择与自己显卡对应的版本,点击开始搜索——获取下载——立即下载,下载完成后点击运行安装即可。
3.检验驱动是否安装成功
终端输入nvidia-smi查看驱动信息
三、安装CUDA Toolkit
CUDA官方下载地址:1. https://developer.nvidia.com/cuda-toolkit-archive 2. https://developer.nvidia.com/cuda-downloads
终端输入nvidia-smi查看CUDA的驱动版本CUDA Version。如果CUDA Version: 12.8,说明本机可以支持 <=12.8 版本的 CUDA Toolkit 安装。

1 | wget https://developer.download.nvidia.com/compute/cuda/12.8.0/local_installers/cuda_12.8.0_570.86.10_linux.run |
可以在联网机器下载好runfile,传到内网机器。注意最好是runfile,其他格式rpm可能会安装失败。注意!如果已经提前装过驱动,在安装的时候把驱动项去掉。
配置环境变量:编辑 ~/.bashrc ,文件末尾添加:
1 | export PATH=/usr/local/cuda-12.6/bin:$PATH |
验证环境变量:运行以下命令,确保配置成功:
1 | echo $PATH |
确保 CUDA 安装和配置正确:
1 | nvcc --version # 检查nvcc版本 |
四、安装cuDNN
cuDNN官方下载地址:cuDNN Archive | NVIDIA Developer
进入官网选择和自己的CUDA匹配的cuDNN版本,下载到本地
解压文件
1 | tar -xf cudnn-linux-x86_64-8.9.7.29_cuda12-archive.tar.xz |
*如果下载的是.deb,就按官网流程操作
将include 和 lib 中的内容分别复制到 /usr/local/cuda-12.4/targets/x86_64-linux/ 的对应目录下
1 | cd cudnn-linux-x86_64-8.9.7.29_cuda12-archive |
确保复制的文件有正确的权限
1 | sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn* |
验证安装检查 cuDNN 版本:
1 | cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2 |
输出示例:
1 | #define CUDNN_MAJOR 9 |
