一、前置准备 + 注意事项
在开始前,要确认以下几点,避免中途出错:
- 确保你的电脑装有 NVIDIA 显卡。如果不是 NVIDIA,就不能用 CUDA。
- 先安装 / 更新显卡驱动。推荐安装 NVIDIA 提供的最新稳定驱动。没有驱动、驱动不对的情况下,后面 CUDA 安装可能失败或 GPU 无法识别。
- 选择与驱动兼容的 CUDA 版本。运行
nvidia-smi
后,系统驱动会显示一个“CUDA 运行时兼容版本”或驱动版本号,你安装的 CUDA 版本不应高于这个兼容范围。否则可能运行时出错。参考 CSDN 上某篇教程就说这个判断方法。CSDN博客+1 - 准备 Visual Studio / C++ 工具链(如果你打算编译 CUDA 示例或开发 GPU 程序)。Windows 上常用 VS Community + “Desktop development with C++” 模块。
- 下载资料:去 NVIDIA 官网下载匹配版本的 CUDA Toolkit 和 cuDNN(cuDNN 下载需要注册 NVIDIA Developer 账号)。
- 了解安装路径 /环境变量:安装时要记好路径,后续还要配置环境变量(
PATH
/CUDA_PATH
/Include
/Lib
等)。 - 备份或记录:如果系统中已有旧版本 CUDA/cuDNN,建议先记录原环境变量、路径,以防出问题回退。
二、CUDA 在 Windows 下的安装步骤
下面是按顺序的步骤,每一步你操作后确认无误再继续:
1. 查看驱动 / 确认 GPU
- 打开命令提示符(Win+R → 输入
cmd
→ 回车); - 输入:
nvidia-smi
如果成功显示 GPU 型号、驱动版本、CUDA 兼容版本等信息,说明驱动已安装且 GPU 被识别。 - 若
nvidia-smi
报错或不存在,说明驱动有问题,需先安装 /更新驱动。
2. 下载 CUDA Toolkit
- 访问 NVIDIA CUDA Toolkit 下载页面(一般是
developer.nvidia.com/cuda-downloads
或 CUDA archive); - 选择与你 Windows 版本(例如 Windows 10 / Windows 11)、体系结构(x86_64)、版本号(例如 11.8 / 12.x)对应的安装包(推荐下载
exe (local)
或exe (network)
); - 下载完成后,双击运行安装程序。
3. 安装 CUDA Toolkit
安装过程中建议按以下方式:
- 当提示驱动部分时,如果你已经安装了合适的显卡驱动,可以选择跳过驱动部分(取消勾选驱动安装),避免覆盖或冲突。
- 选择“自定义安装”(Custom / Advanced),这样你可以看到每个组件;但通常默认选项也足够。
- 记住安装路径,默认是如:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8
或v12.x
等。 - 安装完成后,安装程序通常会自动把
bin
、libnvvp
路径添加到系统PATH
。安装完成后可能需要重启或重开命令行。
4. 配置环境变量(如有必要 /确认)
如果安装程序已自动添加,可跳过。但推荐检查是否成功:
- 右键 “此电脑” → “属性” → “高级系统设置” → “环境变量”;
- 在系统变量中找
Path
,确认是否有类似如下几项(根据你的 CUDA 版本调整):C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\bin C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\libnvvp
- 也可以新增变量
CUDA_PATH
指向 CUDA 安装根目录,如:CUDA_PATH = C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8
- 保存并重启命令行。
5. 验证 CUDA 安装是否成功
在命令提示符中执行:
nvcc --version
如果能看到版本号 (如 “Cuda compilation tools, release 11.8, …”),说明 CUDA 编译工具链可用了。
你也可以试运行 CUDA 示例(安装时有选择安装 Samples):
- 在你的 CUDA 安装目录下有 Samples 文件夹,进入
1_Utilities\deviceQuery
或类似目录,用 Visual Studio 打开 solution 编译运行。 - 若输出 “Result = PASS” 或能显示 GPU 信息,说明运行时 / 工具链都没问题。
三、cuDNN 在 Windows 下的安装 + 配置
在 CUDA 成功安装并验证无误后,继续做 cuDNN 安装:
1. 下载 cuDNN
- 登录 NVIDIA Developer(如果没有账号需先注册);
- 在 cuDNN 下载页面,选择与你安装的 CUDA 版本匹配的 cuDNN 包(Windows 平台、对应版本)。
- 下载后会得到一个 zip 或 installer 包。
2. 解压 / 安装 cuDNN
若是 zip 包:
- 解压后会看到
bin/
,include/
,lib/
等文件夹; - 将
bin\cudnn*.dll
等.dll
文件复制到你的 CUDA 安装目录的bin
文件夹中; - 将
include\cudnn.h
复制到 CUDA 安装目录的include
中; - 将
lib\x64\cudnn.lib
复制到 CUDA 安装目录的lib\x64
中; - 有些版本可能还有
lib
中.dll
或.lib
文件,也都照路径复制过去。
若是 installer 形式(如果 cuDNN 提供了可执行安装程序),就按安装程序指引走。
3. 检查 cuDNN 是否安装成功
- 在 CUDA 安装目录的
include
目录中,打开cudnn_version.h
或cudnn.h
,查找宏CUDNN_MAJOR
,CUDNN_MINOR
等,确认版本号正确。类似教程里就说这个方式。CSDN博客+1 - 在命令行里再次验证
nvcc --version
和nvidia-smi
保持正常状态。 - 在深度学习框架(如 PyTorch / TensorFlow)中测试 GPU 是否可访问(见后面)。
四、用 Python 验证 GPU 加速是否可用
安装完成 CUDA + cuDNN 后,用 Python 程序测试你的 GPU 是否能被框架调用:
PyTorch 示例
import torch
print("torch version:", torch.__version__)
print("cuda available:", torch.cuda.is_available())
print("CUDA version in torch:", torch.version.cuda)
print("GPU name:", torch.cuda.get_device_name(0) if torch.cuda.is_available() else "N/A")
如果输出 cuda available: True
且能打印 GPU 名称,则你的环境支持 PyTorch GPU 加速。
TensorFlow 示例
import tensorflow as tf
print("tf version:", tf.__version__)
print("GPUs:", tf.config.list_physical_devices('GPU'))
如果列出 GPU,则说明 TensorFlow 能检测到 GPU。
五、常见问题 & 排查建议
下面是安装过程中常见的一些坑以及对应建议:
问题 | 可能原因 | 解决建议 |
---|---|---|
nvcc 未被识别 | 环境变量 Path 没加上 CUDA bin 目录 | 手动在系统环境变量中加入 …\CUDA\v11.8\bin ,并重启 CMD |
nvidia-smi 报错或显示空白 | 驱动未安装或不匹配 | 重新安装 NVIDIA 显卡驱动,确保 GPU 被识别 |
cuDNN 版本与 CUDA 不匹配 | 下载 wrong 版本 | 回到 NVIDIA cuDNN 下载页面,下载与你 CUDA 完全匹配的版本 |
PyTorch / TensorFlow GPU 不可用 | 框架版本与 CUDA 不兼容 | 使用框架官网推荐的安装命令(按 CUDA 版本选对应版本) |
DLL 缺失 / 找不到文件 | 没把 cuDNN 的 dll/lib 文件复制到正确目录 | 检查 bin、lib、include 路径是否正确,复制所有必要文件 |
六、平头哥科技认为的实用提示
- 版本选定慎重:先查你将使用的深度学习框架支持哪个 CUDA 版本,然后再下载那个版本。不要盲目用最新版本。
- 驱动优先匹配:驱动版本要高于或等于 CUDA 所需最小驱动版本;若驱动版本太老,即便安装了 CUDA,运行时可能不稳定。
- 保留旧环境:若你之前安装过旧版 CUDA/cuDNN,可以保留旧路径但用环境变量或路径切换,不要直接卸掉,以免某些旧项目依赖。
- 验证链路步骤要按顺序:
nvidia-smi
→nvcc --version
→ deviceQuery / samples → Python 框架验证。每一步通过才继续下一步。 - 备份环境变量:在改系统环境变量前,建议先备份原值,以便出错时恢复。
© 版权声明
THE END
暂无评论内容