如何彻底解决onnxruntime无法使用GPU加速及加速失败的问题?

摘要:CreateExecutionProviderInstance CUDA_PATH is set but CUDA wasn't able to be loaded. Please install the correct
onnx 无法使用GPU加速 加速失败 解决方法【非常详细】 应该是自目前以来最详细的加速失败解决方法GPU加速,收集了各方的资料。引用资料见后文 硬件配置: GPU CUDA版本:12.2 客户架构:window10 输入:nvcc --version onnxruntime版本后文提供 1 先检测是否无法使用GPU加速 检测代码如下,记得把模型换成你模型的地址 import onnxruntime print(onnxruntime.__version__) print(onnxruntime.get_device() ) # 如果得到的输出结果是GPU,所以按理说是找到了GPU的 ​ ort_session = onnxruntime.InferenceSession("your_onnx_module_path.onnx", providers=['CUDAExecutionProvider']) print(ort_session.get_providers()) explain: 如果print(onnxruntime.version)输出成功,应该包就安装成功了 如果没有,见后文的onnxruntime版本匹配 如果print(onnxruntime.get_device() )输出成功的话,大概率是能够获取到你的gpu了 如果没有获取成功的话,则参见后文的配置cudann 如果print(ort_session.get_providers()),应该是没什么问题了 如果有问题的话,有蛮多情况导致的,我遇到的一个情况与版本有关 2.1 版本匹配 我的报错问题就与版本匹配有关,其他全部都是正确的,且这个关系到onnxruntime的包安装,固直接放到2.1来说明,你的硬件版本很重要,我这个是解决cuda12的,如果是cuda11可能不一样,或者也能给你们提供一点灵感也不错。 问题描述 报错信息大致是: CreateExecutionProviderInstance CUDA_PATH is set but CUDA wasn't able to be loaded. Please install the correct version of CUDA andcuDNN as mentioned in the GPU requirements page 翻译出来就是,CUDA_PATH 路径已经设置了,但是 CUDA 不能被读取【也就说理论上环境变量没问题】,但保险起见,各位也可以检查一下你们的环境变量(后文cudann安装说明) 问题处理 找到官方提供的onnx与cuda的官方文档 当初没想到这里那么多坑 坑1【直接pip安装onnxruntime-gpu】 默认下载的是最新的且是针对11.8的版本,因此你直接pip install onnxruntime-gpu实际上安装的版本是onnxruntime-gpu=1.18[ 即最新版 ,而且默认是cuda11的] 坑2【使用官方提供的ort但不指定版本】: 点进去官方的对12.x的指示 使用官方的命令也会留有后患,因为官方确实是对12.x进行适配了,但默认还是version--1.18,适配cuda12.4,但!他不向下兼容版本,就是说你可能cuda版本是12.2,安装了最新的1.18 ,CUDA版本的12.4就不能使用了,因此需要在安装的时候添加你cuda版本对应的ORT的版本 pip install onnxruntime-gpu==what_you_want_version --extra-index-url https://aiinfra.pkgs.visualstudio.com/PublicPackages/_packaging/onnxruntime-cuda-12/pypi/simple/ 将what_you_want_version换成你需要的版本,对应上图。
阅读全文