1. 确认 CUDA Toolkit 和 cuDNN 版本兼容性
- ONNX Runtime 1.21.1 官方要求:
- CUDA 11.8 + cuDNN 8.5.0
- 或 CUDA 12.x + cuDNN 8.9.0+
- 系统环境:
nvidia-smi
显示驱动支持 CUDA 12.8(仅表示驱动兼容性,非实际安装的 CUDA Toolkit)。- 需要手动安装 CUDA Toolkit 12.x 和 cuDNN 8.9+。
- CUDA 与 cuDNN 的版本匹配规则,cuDNN 是专为 CUDA 优化的深度学习加速库,其版本需与 CUDA 版本严格对应。例如:CUDA 12.x 通常需要 cuDNN 8.9.x 及以上版
- cuda_12.4.0_551.61_windows
- cudnn-windows-x86_64-8.9.7.29_cuda12-archive
2. 安装 CUDA Toolkit 12.x
- 访问 CUDA Toolkit 12.4 下载页。
- 选择 Windows 版本,下载并安装。
- 验证安装:nvcc --version # 应输出 CUDA 12.x
- 如果
nvcc
命令不存在,说明 CUDA Toolkit 未正确安装
3. 安装 cuDNN 8.9+
- 访问 cuDNN 下载页(需注册 NVIDIA 账号)。
- 下载 cuDNN 8.9.x for CUDA 12.x。
- 解压 cuDNN 压缩包,将以下文件复制到 CUDA 安装目录:
bin\*
→ C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\bin
include\*
→ C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\include
lib\*
→ C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\lib\x64
4. 安装 MSVC 2022 运行时库
5. 配置环境变量
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\bin
echo %PATH% | findstr "CUDA"
6. 安装 ONNX Runtime-GPU
pip uninstall onnxruntime-gpu
pip install onnxruntime-gpu==1.17.0
pip uninstall numpy -y
pip install numpy==1.24.2
7. 验证 GPU 是否可用
import onnxruntime as ort
print(ort.get_available_providers())
session = ort.InferenceSession("model.onnx", providers=['CUDAExecutionProvider'])
print("GPU 已启用!")