【onnxruntime】【GPU】windows10下onnxruntime-win-x64-gpu-1.15.0 C++版本源码编译教程

【onnxruntime】【GPU】windows10下onnxruntime-win-x64-gpu-1.15.0 C++版本源码编译教程

提示:博主取舍了很多大佬的博文并亲测有效,分享笔记邀大家共同学习讨论


前言

ONNX(Open Neural Network Exchange,开放神经网络交换)是一个开放的深度学习模型交换格式,它的目标是提供一个标准化的桥梁,使得不同深度学习框架之间能够更轻松地共享和部署模型。ONNX Runtime 是一个开源的高性能机器学习模型推理引擎,专为采用ONNX格式表述的模型设计,凭借其广泛的平台支持、高效的性能优化、便捷的模型转换和轻量级部署特性,为各类机器学习应用场景提供了强大且灵活的解决方案,促进了跨框架、跨平台的模型部署与应用。


准备工具

cmake、vs2019、onnxruntime1.15.0、cuda、cudnn

cuda/cudnn

安装cuda、cudnn可以参考此前博主的【深度学习windows10环境配置详细教程】,因为对于新手来说,需要注意的细节比较多,这里不浪费篇幅重复讲述了。

cmake

CMake官方下载地址,下载cmake-3.27.7-windows-x86_64.msi。

添加到环境和安装路径博主根据自身情况作出了修改,其他都是默认安装。

出现以下界面安装成功。

onnxruntime1.15.0

查看
ONNX Runtime CUDA cuDNN版本对应表
下载onnxruntime的依赖库需要通过github完成,需要修改hosts文件,将C:\Windows\System32\drivers\etc\hosts中的内容修改为以下

# 以管理员身份进行cmd
# 进入host目录
cd C:\Windows\System32\drivers\etc
# 执行以下命令,编辑下述内容保存即可
notepad hosts
# 执行以下命令,激活生效
ipconfig /flushdns 
140.82.112.26                 alive.github.com
140.82.114.6                  api.github.com
185.199.109.153               assets-cdn.github.com
185.199.110.133               avatars.githubusercontent.com
185.199.110.133               avatars0.githubusercontent.com
185.199.110.133               avatars1.githubusercontent.com
185.199.110.133               avatars2.githubusercontent.com
185.199.110.133               avatars3.githubusercontent.com
185.199.110.133               avatars4.githubusercontent.com
185.199.110.133               avatars5.githubusercontent.com
185.199.110.133               camo.githubusercontent.com
140.82.112.22                 central.github.com
185.199.110.133               cloud.githubusercontent.com
140.82.113.10                 codeload.github.com
140.82.112.21                 collector.github.com
185.199.110.133               desktop.githubusercontent.com
185.199.110.133               favicons.githubusercontent.com
140.82.112.4                  gist.github.com
52.216.136.212                github-cloud.s3.amazonaws.com
16.182.66.25                  github-com.s3.amazonaws.com
16.182.67.1                   github-production-release-asset-2e65be.s3.amazonaws.com
52.217.115.97                 github-production-repository-file-5c1aeb.s3.amazonaws.com
52.216.248.68                 github-production-user-asset-6210df.s3.amazonaws.com
192.0.66.2                    github.blog
140.82.113.4                  github.com
140.82.112.17                 github.community
185.199.110.154               github.githubassets.com
151.101.1.194                 github.global.ssl.fastly.net
185.199.109.153               github.io
185.199.110.133               github.map.fastly.net
185.199.109.153               githubstatus.com
140.82.114.25                 live.github.com
185.199.110.133               media.githubusercontent.com
185.199.110.133               objects.githubusercontent.com
13.107.42.16                  pipelines.actions.githubusercontent.com
185.199.110.133               raw.githubusercontent.com
185.199.110.133               user-images.githubusercontent.com
13.107.213.40                 vscode.dev
140.82.113.21                 education.github.com

注意,部分读者是从onnxruntime官方下载地址,找到ONNX Runtime v1.15.0,点击Assets部分,下载解压的Source code(zip),这种方法编译是会出现奇怪的问题,不推荐。

git下载源码,选择v1.15.0版本。

# 打开cmd下载源码到指定路径
git clone --recursive https://github.com/microsoft/onnxruntime.git
cd onnxruntime/
# 中途中断下载不全不完整
git submodule update --init --recursive
# 从 tag v1.16.0 切换分支进行编译
git checkout v1.15.0
git submodule update --init --recursive

编译onnxruntime

解压下载好的onnxruntime1.15.0,此时的目录结构如下所示:

打开VS2019开发人员命令行并切换到onnxruntime目录,执行以下脚本进行编译,–cudnn_home 、–cuda_home 需要自身安装情况进行修改,均指向CUDA安装目录即可。

.\build.bat --build_shared_lib --config Release   --use_cuda --cudnn_home "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8" --cuda_home "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8"   --cmake_generator "Visual Studio 16 2019"  --parallel 2

  1. 可能出现的错误:subprocess.CalledProcessError: Command ‘[‘git’, ‘submodule’, ‘sync’, ‘–recursive’]’ returned non-zero exit status 128.

    解决方式:假设你是从onnxruntime官方地址下载才对Source code(zip),出现该错误后从github重新克隆git下载源码。
  2. 可能出现的错误:raise CalledProcessError(retcode, process.args,subprocess.CalledProcessError: Command ‘[‘D:\Program Files\CMake\bin\ctest.EXE’, ‘–build-config’, ‘Release’, ‘–verbose’, ‘–timeout’, ‘10800’]’ returned non-zero exit status 8.

    解决方式:打开onnxruntime文件夹下的tools\ci_build\build.py,注释run_subprocess(ctest_cmd, cwd=cwd, dll_path=dll_path)

    打开build\Windows\Release\Release目录,可以看到已经生成好了基于cuda11.8+vs2019的onnxruntime c++库。

VS2019编译

在build\Windows\Release路径下,使用VS2019 (以管理员方式运行) 打开刚刚编译工程onnxruntime.sln。

在release|x64模式下,在解决方案资源管理器—>CMakePredefinedTargets—>右键点击INSTALL–>生成。

此时在控制台会看到以下输出,则表示生成onnxruntime c++库成功。

编译成功后在c盘应该会生成C:\Program Files\onnxruntime目录,其内容如下所示。


总结

尽可能简单、详细的介绍windows10下C++版本onnxruntime-win-x64-gpu-1.15.0版本用源码进行编译的详细流程。

### 如何在C++项目中配置ONNX Runtime #### 准备工作 为了成功集成ONNX Runtime到C++项目,需先获取适用于目标平台的预编译二进制文件。对于Windows环境下的Visual Studio开发而言,在assert模式下推荐选择`onnxruntime-win-x64-gpu-1.15.0.zip`版本进行下载[^2]。 #### 创建并设置Visual Studio工程 启动Visual Studio 2019之后,通过新建一个空项目作为起点,并确保选择了合适的选项来简化后续操作——即指定统一的位置存储解决方案与工程项目文件;完成上述步骤后点击创建按钮继续前进。 #### 添加必要的头文件路径 当面对的是一个尚未含有任何源码文件的新建空项目时,其属性页面可能不会立即显示有关于C/C++部分的内容。此时应前往项目的属性管理界面,针对特定构建配置(例如Release|x64),找到"C/C++ -> 常规"分类中的“附加包含目录”,向其中加入指向ONNX Runtime库内含有的`.h`头部声明所在位置的信息,比如:`D:\C++_demo\onnxruntime-win-x64-gpu-1.15.0\include`。 #### 编写简单的测试程序验证安装情况 下面给出一段用于检验ONNX模型加载功能的小型示范代码: ```cpp #include "onnxruntime_cxx_api.h" #include <iostream> int main() { Ort::Env env(ORT_LOGGING_LEVEL_WARNING, "test"); Ort::SessionOptions session_options; const char* model_path = "./model.onnx"; Ort::Session session(env, model_path, session_options); std::cout << "Model loaded successfully." << std::endl; return 0; } ``` 这段代码展示了如何初始化ONNX Runtime环境、设定会话参数以及尝试打开本地磁盘上的某个预先准备好的ONNX格式神经网络结构描述文档(`model.onnx`)。如果一切正常,则会在控制台输出确认消息表明模型已被正确读取[^1]。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值