CUDA Toolkit 配置全流程
一 准备与版本选择
- 确认硬件与驱动:执行 nvidia-smi,右上角显示的 CUDA Version 表示驱动当前支持的最高 CUDA 运行时版本,后续安装的 CUDA Toolkit 版本必须小于或等于该值。若命令不可用,请先安装/更新 NVIDIA 驱动。
- 版本匹配要点:深度学习框架(如 TensorFlow/PyTorch)对 CUDA/cuDNN 有严格对应关系,安装前先查框架官方兼容表,避免“装了却不可用”。
- 安装包变化:自 CUDA 13.0 起,Toolkit 安装包不再捆绑驱动(Windows 需单独安装或升级驱动,建议通过 NVIDIA App 管理)。
二 安装 CUDA Toolkit
- Windows
- 从 NVIDIA 官网选择系统与版本下载安装包,建议使用精简或自定义安装;若已装驱动,可在自定义中取消驱动项。安装完成后通常已自动写入环境变量;如未写入,手动将 C:Program FilesNVIDIA GPU Computing ToolkitCUDAvX.Xbin 与 ...libnvvp 加入 Path。
- Linux(Ubuntu 示例)
- 推荐本地或网络安装包(.run 或 .deb)。示例(.run):
- 下载安装包后执行:
- sh cuda_12.4.1_550.54.15_linux.run
- 进入界面仅勾选 CUDA Toolkit(已装驱动则取消驱动),可自定义安装路径(如 /home/用户名/cuda-12.4)。
- 安装完成后按提示配置环境变量(见下一节)。
三 配置环境变量与多版本共存
- Linux 常用变量(写入 ~/.bashrc 或 ~/.zshrc 并执行 source 生效)
- 建议同时设置 CUDA_HOME 指向实际安装目录(如 /usr/local/cuda-12.4 或自定义路径),便于统一管理:
- export CUDA_HOME=/usr/local/cuda-12.4
- export PATH=$CUDA_HOME/bin:$PATH
- export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH
- export LIBRARY_PATH=$CUDA_HOME/lib64:$LIBRARY_PATH
- export C_INCLUDE_PATH=$CUDA_HOME/include:$C_INCLUDE_PATH
- export CPLUS_INCLUDE_PATH=$CUDA_HOME/include:$CPLUS_INCLUDE_PATH
- Windows
- 系统属性 → 高级系统设置 → 环境变量 → 系统变量 Path 中添加:
- C:Program FilesNVIDIA GPU Computing ToolkitCUDAvX.Xbin
- C:Program FilesNVIDIA GPU Computing ToolkitCUDAvX.Xlibnvvp
- 多版本共存与切换(Linux)
- 使用 update-alternatives 管理 nvcc:
- sudo update-alternatives --install /usr/bin/nvcc nvcc /usr/local/cuda-11.7/bin/nvcc 117
- sudo update-alternatives --install /usr/bin/nvcc nvcc /usr/local/cuda-12.1/bin/nvcc 121
- sudo update-alternatives --config nvcc(交互选择默认版本)
四 安装与验证 cuDNN
- 获取与 CUDA 版本匹配的 cuDNN(需注册 NVIDIA 开发者账号),解压后将对应文件复制到 CUDA 安装目录:
- Linux 示例:
- tar -xzvf cudnn-linux-x86_64-8.9.x.x_cuda12-archive.tar.gz
- sudo cp cudnn--archive/include/ /usr/local/cuda/include/
- sudo cp cudnn--archive/lib/ /usr/local/cuda/lib64/
- sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn
- 在 ~/.bashrc 中确保 LD_LIBRARY_PATH 包含 $CUDA_HOME/lib64 并 source 生效
- Windows 示例:将 cuDNN 的 bin/include/lib 内容分别复制到 C:Program FilesNVIDIA GPU Computing ToolkitCUDAvX.X 对应目录
- 验证 cuDNN:
- Linux:cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
- 运行 CUDA Samples 的 deviceQuery(Windows 默认在 C:ProgramDataNVIDIA CorporationCUDA SamplesvX.X)确认设备可识别与驱动正常。
五 快速验证与常见问题
- 基础验证
- 查看工具链:nvcc -V(应输出已安装的 CUDA 版本)
- 查看驱动/GPU:nvidia-smi(右上角 CUDA Version 为驱动支持上限)
- Python/GPU 可用性:
- PyTorch:
- import torch; print(torch.cuda.is_available())(应为 True)
- TensorFlow:
- import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))(应列出 GPU)
- 常见问题与处理
- “nvcc: command not found”:检查 PATH 是否包含 $CUDA_HOME/bin,并确认已 source ~/.bashrc 或重启终端/IDE。
- 版本不匹配:框架所需 CUDA/cuDNN 与已装版本不一致,按框架官方兼容表调整(必要时更换 CUDA 或 框架 版本)。
- cuDNN 初始化失败:权限不足或版本不匹配,确认已将 cuDNN 文件复制到 CUDA 目录并赋予读取权限。
- 多版本混乱:使用 update-alternatives 统一切换 nvcc,并确保 LD_LIBRARY_PATH 指向当前版本目录。