Fork me on GitHub

C# 调用YoloSharp.Gpu,调用Microsoft.ML.OnnxRuntime.Gpu出错126

今天使用C#调用YoloSharp.Gpu,加载onnx模型,然后检测,代码很简单。

// Load the YOLO predictor
predictor ??= new YoloPredictor(@"path to your.onnx");

// Run model
var result = predictor.Detect(@"path to your image");

一运行就爆错ONNXRuntimeError : 1 : FAIL : LoadLibrary failed with error 12。
Nuget改用不是CPU版本的YoloSharp就没问题,这就奇怪了。后来查资料发现有人说是ONNXRuntime、CUDA、CUDNN三者的版本不对应,但是我的版本是对应的,完全符合官方要求啊。
这样不能运行就没有天理了,网上的解决方案可以说是乱七八糟,微软爆出来的错误指导方向就是错的。
YoloSharp.Gpu:6.0.1
ONNXRuntime:1.20.0
CUDA:12.6.3
CUDNN:9.6.0

image

对应关系参考官方文档:https://onnxruntime.ai/docs/execution-providers/CUDA-ExecutionProvider.html

Microsoft.ML.OnnxRuntime.OnnxRuntimeException:“[ErrorCode:RuntimeException] D:\a\_work\1\s\onnxruntime\core\session\provider_bridge_ort.cc:1539 
onnxruntime::ProviderLibrary::Get [ONNXRuntimeError] : 1 : FAIL : LoadLibrary failed with error 126 "" when trying to load 
"C:\Users\Vincent\source\repos\WpfApp1\WpfApp1\bin\x64\Debug\net8.0-windows\runtimes\win-x64\native\onnxruntime_providers_cuda.dll"

后来研究发现onnxruntime_providers_cuda.dll缺少依赖,使用Dependencies查找发现,缺少cudnn64_9.dll。这个文件就是CUDNN的安装目录里面的,所以果断把C:\Program Files\NVIDIA\CUDNN\v9.6\bin\12.6\里面所有的文件都复制到exe目录里面,完美解决!!!

话又说回来,微软不应该爆缺少依赖么,真是瞎杰宝爆

posted @   猫叔Vincent  阅读(193)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2020-01-08 Flutter 星标已正式超过React Native
2020-01-08 查看Github星标排行榜
点击右上角即可分享
微信分享提示