已解决:EP Error onnxruntime-gpu无法找到cuda,无法调用onnxruntime_providers_cuda.dll

报错:

[E:onnxruntime:Default, provider_bridge_ort.cc:1745 onnxruntime::TryGetProviderInfo_CUDA] D:\a\_work\1\s\onnxruntime\core\session\provider_bridge_ort.cc:1426 onnxruntime::ProviderLibrary::Get [ONNXRuntimeError] : 1 : FAIL : LoadLibrary failed with error 126 "" when trying to load "F:\ProgramData\anaconda3\envs\py38gpu\lib\site-packages\onnxruntime\capi\onnxruntime_providers_cuda.dll"

EP Error D:\a\_work\1\s\onnxruntime\python\onnxruntime_pybind_state.cc:891 onnxruntime::python::CreateExecutionProviderInstance CUDA_PATH is set but CUDA wasnt able to be loaded. Please install the correct version of CUDA andcuDNN as mentioned in the GPU requirements page  (https://onnxruntime.ai/docs/execution-providers/CUDA-ExecutionProvider.html#requirements),  make sure they're in the PATH, and that your GPU is supported.
 when using [('CUDAExecutionProvider', {'device_id': 0, 'arena_extend_strategy': 'kNextPowerOfTwo', 'gpu_mem_limit': 2147483648, 'cudnn_conv_algo_search': 'DEFAULT'}), 'CPUExecutionProvider']
Falling back to ['CUDAExecutionProvider', 'CPUExecutionProvider'] and retrying.

onnx与cuda+cudnn版本:

这个原因如果cuda和cudnn安装的没问题的话,版本对应onnx查找这个网站:NVIDIA - CUDA | onnxruntime

排除掉cuda和cudnn的版本问题,我的是cuda12.1+cudnn9.1,应该安装onnx1.18.1

解决:

使用默认pip install onnxruntime-gpu==1.18.1的话,安装的版本不一定对应,应指定cuda12的版本,pip信息如下:

pip install onnxruntime-gpu==1.18.1 --extra-index-url https://aiinfra.pkgs.visualstudio.com/PublicPackages/_packaging/onnxruntime-cuda-12/pypi/simple/

把1.18.1可以换成你自己的版本,最后链接onnxruntime-cuda-12也换成你的cuda版本

终于解决这个问题,mark一下。

参考链接:【已解决】onnx无法找到CUDA的路径_onnxruntime-gpu 1.18.1 cudnn 9.x.-CSDN博客

ComfyUI: 报EP Error错误(onnxruntime)_falling back to ['cudaexecutionprovider', 'cpuexec-CSDN博客

### ONNX Runtime GPU无法访问 `onnxruntime_providers_cuda.dll` 的解决方案 #### 问题分析 当遇到ONNX Runtime GPU无法加载CUDA提供程序库的情况时,通常是由于缺少必要的依赖项或环境配置不正确所致。具体表现为尝试运行基于GPU的推理模型时抛出错误,提示未能找到所需的动态链接库文件。 #### 解决方案概述 为了使ONNX Runtime能够成功调用CUDA加速功能,必须确保安装了适当版本的CUDA工具包,并且路径设置无误以便操作系统可以定位到这些DLL文件。此外还需验证所使用的Python包是否匹配目标硬件架构以及相应的驱动器软件版本。 #### 实施步骤详解 ##### 验证并更新CUDA Toolkit版本 确认本地已安装适合当前系统的CUDA Toolkit版本。对于特定版本的PyTorch (如1.9),推荐搭配使用CUDA 10.2来获得最佳兼容性[^3]。如果尚未安装此版本,则应前往NVIDIA官方网站下载相应安装包进行部署。 ##### 安装/升级ONNX Runtime-GPU版 通过pip命令获取官方发布的预编译二进制wheel文件,指定与现有CUDA环境相适应的具体标签(例如cu102代表CUDA 10.2)。注意选择正确的Python解释器位数(32-bit vs 64-bit)以防止潜在冲突: ```bash pip install --upgrade onnxruntime-gpu==1.1.0+cu102 -f https://download.pytorch.org/whl/torch_stable.html ``` ##### 设置环境变量PATH 为了让Windows系统识别新加入的CUDA DLLs,在启动任何涉及深度学习框架的应用之前,先临时修改会话级别的PATH环境变量指向CUDA bin目录;或者更持久的方式是在控制面板里永久添加该路径至全局环境变量列表中。假设默认安装位置为C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\bin: ```powershell $env:Path += ";C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\bin" ``` ##### 测试安装效果 创建简单的测试脚本来检验上述调整措施的效果如何。这段代码试图加载一个预先训练好的神经网络模型并通过它执行一次前向传播操作,以此判断能否顺利利用GPU资源完成计算任务而不触发异常状况。 ```python import onnxruntime as ort from pathlib import Path model_path = str(Path.home()) + "/models/resnet50.onnx" session_options = ort.SessionOptions() providers = ['CUDAExecutionProvider', 'CPUExecutionProvider'] sess = ort.InferenceSession(model_path, providers=providers) input_name = sess.get_inputs()[0].name dummy_input = {'data': ...} # Prepare your input data here. result = sess.run(None, dummy_input) print("Inference completed successfully.") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值