【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版本用源码进行编译的详细流程。

  • 12
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值