当前位置: 首页 > news >正文

Windows onnxruntime编译openvino

理论上来说,可以直接访问 ONNXRuntime Releases 下载 dll 文件,然后从官方文档中下载缺少的头文件以直接调用,但我没有尝试过。

1. 下载 OpenVINO 包

从官网下载 OpenVINO 的安装包并放置在 C:\Program Files (x86) 路径下,例如:

C:\Program Files (x86)\Intel\openvino_2024.4.0

2. 克隆源码并编译

从 ONNXRuntime GitHub 仓库 克隆源码。需要注意以下事项:

  • 编译器需要安装 VS2022。
  • 必须通过 git clone 下载源码,因为需要递归克隆第三方库。

克隆命令

git clone --branch v1.20.1 --recursive https://github.com/Microsoft/onnxruntime
cd onnxruntime-1.20.1
pip install -r requirements-dev.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

3. 编译命令

参考官方文档,使用以下命令编译:

./build.bat --config RelWithDebInfo --use_openvino AUTO:GPU,CPU --build_shared_lib --build_wheel

常见问题及解决方法

  1. 报错:找不到 openvino_dir
    设置环境变量,添加 OpenVINO 的安装路径。

    示例:
    设置环境变量示例
    设置环境变量示例

  2. 报错:部分包无法从 Git 拉取
    配置代理解决网络问题。可通过以下命令设置代理,端口号需根据梯子的端口设置:

    git config --global http.https://github.com.proxy socks5://127.0.0.1:10808
    
  3. 报错:Define device 失败
    使用新版代码,因旧版代码的某些头文件存在 Bug。如果非要使用旧版代码,需要对报错的头文件进行更改,报错的原因是对一个const string变量进行修改,需要创建临时变量进行赋值。

4. 生成解决方案

编译完成后,打开 VS2022,直接生成解决方案。生成后的标准目录如下:

生成目录示例

5. 调用代码问题

调用代码时可能会遇到以下错误:

FAIL: LoadLibrary failed with error 126 "" when trying to load "onnxruntime\capi\onnxruntime_providers_openvino.dll"

解决方法:在调用代码前,加载 C:\Program Files (x86)\Intel\openvino_2024.4.0 下的相关 DLL 文件。我选择编写代码,全部加载相关 DLL。

http://www.lryc.cn/news/513281.html

相关文章:

  • vue3+TS+vite中Echarts的安装与使用
  • 期末算法分析程序填空题
  • 搭建android开发环境 android studio
  • R语言6种将字符转成数字的方法,写在新年来临之际
  • RocketMQ学习笔记(持续更新中......)
  • 强化学习的基础概念
  • excel怎么删除右边无限列(亲测有效)
  • STM32-笔记23-超声波传感器HC-SR04
  • Linux | Ubuntu零基础安装学习cURL文件传输工具
  • 什么是 GPT?Transformer 工作原理的动画展示
  • SpringCloudAlibaba实战入门之路由网关Gateway过滤器(十三)
  • 电路仿真软件PSIM简介
  • C语言:调试的概念和调试器的选择
  • 25. C++继承 1 (继承的概念与基础使用, 继承的复制兼容规则,继承的作用域)
  • git 退出编辑模式
  • 内容营销与传统营销方式有哪些差别?
  • EasyExcel(读取操作和填充操作)
  • 【华为OD-E卷 - 机房布局 100分(python、java、c++、js、c)】
  • 【竞技宝】LOL:IG新赛季分组被质疑
  • ChatBI来啦!NBAI 正式上线 NL2SQL 功能
  • 8. Web应用程序(Web)
  • Linux内核修改内存分配策略
  • 六大亮点解析:AI视频监控助力部队训练安全管理
  • 【从零开始入门unity游戏开发之——C#篇33】C#委托(`Delegate`)和事件(`event` )、事件与委托的区别、Invoke()的解释
  • 大数据与机器学习(它们有何关系?)
  • 深入浅出 Spring(一) | Spring简介、IOC理论推导、快速上手 Spring
  • IDEA 社区版 SpringBoot不能启动
  • 职场常用Excel基础01-数据验证
  • 活动预告 |【Part1】Microsoft Azure 在线技术公开课:数据基础知识
  • RabbitMQ - 1 ( 7000 字 RabbitMQ 入门级教程 )