作为CSDN资深博主,这篇文章会兼顾零基础友好性生产级实操性,覆盖CUDA Toolkit、cuDNN、TensorRT核心库的安装,同时拆解双系统下的核心差异和高频踩坑点,适合AI开发、深度学习训练/推理场景的开发者参考。

一、前置准备:核心概念与环境检查

1.1 核心组件作用(新手必看)

  • CUDA Toolkit:NVIDIA推出的GPU计算平台,提供GPU编程的核心API、编译器、驱动等,是所有GPU加速库的基础。
  • cuDNN:针对深度学习优化的GPU加速库,专门用于卷积、池化等神经网络核心操作,是TensorFlow/PyTorch的必备依赖。
  • TensorRT:NVIDIA的高性能推理优化库,用于将训练好的模型优化为GPU推理引擎,提升部署效率(可选,进阶用)。

1.2 环境兼容性检查

安装前必须确认硬件/软件兼容性,否则会出现“装了用不了”的情况:

  1. GPU型号检查:仅NVIDIA显卡支持CUDA,且需满足算力要求(算力≥3.5,如GTX 10系列/RTX 20/30/40系列、Tesla V100/A100等)。

    • Windows:右键桌面→NVIDIA控制面板→系统信息→组件,查看“NVCUDA.DLL”对应的CUDA版本(显卡驱动内置的CUDA运行时版本)。
    • Linux:终端执行 nvidia-smi,查看右上角“CUDA Version”(驱动支持的最高CUDA版本)。
  2. 驱动版本匹配:CUDA Toolkit需与显卡驱动版本对应(例如CUDA 12.2需驱动≥535.86.05),具体参考NVIDIA官方兼容表

  3. 系统版本

    • Windows:Win10/11 64位(推荐专业版)。
    • Linux:Ubuntu 20.04/22.04 LTS(最稳定,CentOS需额外适配)。

二、Windows系统安装流程(以CUDA 12.2 + cuDNN 8.9为例)

2.1 安装CUDA Toolkit

  1. 下载安装包

访问NVIDIA CUDA下载页,选择:

  • 操作系统:Windows

  • 架构:x86_64

  • 版本:10/11

  • 安装类型:exe (local)(本地安装包,避免在线安装失败)。

  1. 运行安装程序

    • 第一步选择“自定义安装”(必选,避免安装冗余组件)。
    • 取消勾选“NVIDIA GeForce Experience”(非必需),保留“CUDA Toolkit”“Driver Components”(若当前驱动版本低于要求,需勾选更新;若已满足,可取消驱动更新)。
    • 安装路径建议默认(C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2),避免中文路径。
  2. 验证安装

    • 打开CMD,执行 nvcc -V(注意大写V),若输出CUDA版本、编译器信息,说明安装成功。
    • 检查环境变量:系统变量中需包含CUDA_PATH(指向安装目录)、PATH中包含CUDA_PATH\binCUDA_PATH\lib\x64(安装程序会自动配置,若缺失需手动添加)。

2.2 安装cuDNN

  1. 下载cuDNN

访问cuDNN下载页(需登录NVIDIA账号),选择与CUDA版本匹配的cuDNN(如CUDA 12.2对应cuDNN 8.9),下载“cuDNN Library for Windows”。

  1. 解压并复制文件

解压下载的压缩包,将以下文件复制到CUDA安装目录对应位置:

  • include\cudnn*.hC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2\include
  • lib\x64\cudnn*.libC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2\lib\x64
  • bin\cudnn*.dllC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2\bin
  1. 验证cuDNN

打开CMD,执行 cd C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2\extras\demo_suite,运行 deviceQuery.exe,若输出“Result = PASS”,说明CUDA+cuDNN适配正常。

2.3 (可选)安装TensorRT

  1. 下载与CUDA版本匹配的TensorRT(TensorRT下载页),选择Windows版本。
  2. 解压后,将libbin目录添加到系统PATH,将include目录添加到CUDA的include目录。
  3. 验证:通过Python安装tensorrt包(pip install tensorrt==8.6.1,版本需匹配),执行import tensorrt无报错即成功。

三、Linux系统安装流程(Ubuntu 22.04 + CUDA 12.2 + cuDNN 8.9)

3.1 前期准备:禁用nouveau驱动

Linux默认的nouveau开源驱动会与NVIDIA驱动冲突,需先禁用:

  1. 编辑黑名单文件:sudo vim /etc/modprobe.d/blacklist-nouveau.conf,添加:
    blacklist nouveau
    options nouveau modeset=0
    
  2. 更新内核:sudo update-initramfs -u,重启系统:sudo reboot
  3. 验证禁用:lsmod | grep nouveau,无输出则禁用成功。

3.2 安装NVIDIA驱动

  1. 查看推荐驱动:ubuntu-drivers devices,输出中“recommended”即为推荐版本。
  2. 安装驱动:sudo apt install nvidia-driver-535(版本需匹配CUDA 12.2)。
  3. 重启后验证:nvidia-smi,输出GPU信息和CUDA版本即成功。

3.3 安装CUDA Toolkit

  1. 下载安装脚本(推荐runfile方式,灵活度更高):

    wget https://developer.download.nvidia.com/compute/cuda/12.2.0/local_installers/cuda_12.2.0_535.54.03_linux.run
    
  2. 运行安装程序:

    sudo sh cuda_12.2.0_535.54.03_linux.run
    
    • 安装界面选择“Continue”,输入“accept”。
    • 取消勾选“Driver”(已单独安装驱动,避免重复),保留“CUDA Toolkit 12.2”。
    • 确认安装路径(默认/usr/local/cuda-12.2),开始安装。
  3. 配置环境变量(永久生效):

编辑~/.bashrc文件:vim ~/.bashrc,添加:

export PATH=/usr/local/cuda-12.2/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-12.2/lib64:$LD_LIBRARY_PATH

生效配置:source ~/.bashrc

  1. 验证:nvcc -V,输出版本信息即成功。

3.4 安装cuDNN

  1. 下载cuDNN的tar包(对应CUDA 12.2),解压:

    tar -xzvf cudnn-linux-x86_64-8.9.2.26_cuda12-archive.tar.xz
    
  2. 复制文件到CUDA目录:

    sudo cp include/cudnn*.h /usr/local/cuda-12.2/include
    sudo cp lib64/libcudnn* /usr/local/cuda-12.2/lib64
    sudo chmod a+r /usr/local/cuda-12.2/include/cudnn*.h /usr/local/cuda-12.2/lib64/libcudnn*
    
  3. 更新缓存:sudo ldconfig

  4. 验证:cat /usr/local/cuda-12.2/include/cudnn_version.h | grep CUDNN_MAJOR -A 2,输出cuDNN版本即成功。

3.5 (可选)安装TensorRT

  1. 下载TensorRT tar包,解压后配置环境变量:

    
    export LD_LIBRARY_PATH=/path/to/TensorRT-8.6.1/lib:$LD_LIBRARY_PATH
    
  2. 安装Python包:pip install tensorrt==8.6.1,验证import tensorrt无报错。

四、高频踩坑点与解决方案

问题场景 解决方案
Windows下nvcc -V提示“不是内部命令” 检查环境变量是否配置,重启CMD/终端(环境变量需重启生效);若仍失败,手动添加CUDA的bin目录到PATH。
Linux下安装驱动后nvidia-smi报错“no devices were found” 确认GPU是否被虚拟化(如VMware需开启显卡直通);检查内核版本是否与驱动兼容,升级内核或降级驱动。
cuDNN安装后PyTorch/TensorFlow提示“找不到cudnn64_8.dll” 确认cuDNN文件已复制到CUDA的bin目录;Windows需重启电脑,Linux需执行ldconfig更新缓存。
CUDA安装提示“空间不足” Windows清理C盘,Linux选择自定义安装路径,仅保留核心组件(取消Samples等非必需项)。

五、版本选择建议

  1. 新手/学习场景:优先选择稳定版(如CUDA 11.8 + cuDNN 8.7),适配绝大多数深度学习框架(PyTorch 2.0+、TensorFlow 2.10+)。
  2. 生产环境:匹配框架官方推荐版本(如PyTorch 2.2推荐CUDA 11.8/12.1),避免最新版(可能存在兼容性问题)。
  3. 多版本共存:Windows可通过修改环境变量切换,Linux可通过软链接(ln -s /usr/local/cuda-12.2 /usr/local/cuda)切换默认版本。

总结

  1. 安装CUDA核心是版本匹配:显卡驱动版本需≥CUDA要求的最低驱动版本,cuDNN/TensorRT需与CUDA主版本一致。
  2. Windows优先选本地安装包+自定义安装,Linux禁用nouveau驱动后用runfile方式安装更灵活。
  3. 验证环节是关键:nvcc -V检查CUDA、nvidia-smi检查驱动、deviceQuery(Windows)/头文件版本(Linux)检查cuDNN,确保每一步都验证成功。
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐