ONNXRuntime加载CUDA库错误126及CUDA未启用问题求助
解决ONNXRuntime-GPU加载
onnxruntime_providers_cuda.dll错误126(CUDA 12.4 + cuDNN 9.x兼容冲突) 问题原因
ONNXRuntime-GPU的版本与cuDNN版本存在隐性兼容限制:
- 你当前使用的ONNXRuntime 1.18.1是基于cuDNN 8.x编译发布的,虽然官方文档未明确标注,但该版本无法兼容cuDNN 9.x(你的版本为90100)。cuDNN大版本迭代中部分API发生了变更,导致
onnxruntime_providers_cuda.dll无法找到依赖的cuDNN函数,触发加载错误126。 - PyTorch 2.4.0+cu124适配的是cuDNN 9.x,这和ONNXRuntime 1.18.1的依赖要求形成冲突,导致GPU执行器无法初始化。
解决方法
方案1:降级cuDNN至适配CUDA12.4的8.x版本
- 下载cuDNN 8.9.7 for CUDA 12.x(该版本是官方支持CUDA12.4的最高cuDNN 8.x版本)
- 解压下载包,将
bin、include、lib三个文件夹中的内容,覆盖到你的CUDA 12.4安装目录(默认路径为C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4) - 重启Python环境或终端,重新运行模型代码
方案2:升级ONNXRuntime-GPU至支持cuDNN9.x的版本
- ONNXRuntime从1.19.0版本开始正式支持cuDNN 9.x和CUDA 12.4,执行以下命令升级:
若需要最新特性,也可直接安装最新稳定版:pip install --upgrade onnxruntime-gpu==1.19.0pip install --upgrade onnxruntime-gpu - 升级完成后,运行以下代码验证CUDA执行器是否可用:
输出中若包含import onnxruntime as ort print("可用执行器:", ort.get_available_providers())CUDAExecutionProvider则说明配置成功
方案3:临时切换为CPU执行(应急方案)
如果无需GPU加速,可在初始化推理会话时指定仅使用CPU执行器:
import onnxruntime as ort sess = ort.InferenceSession("你的模型路径.onnx", providers=['CPUExecutionProvider'])
内容的提问来源于stack exchange,提问作者David Pagnon
相关产品推荐
相关产品推荐

