Windows下从源码编译ONNX Runtime

6 篇文章 0 订阅
1 篇文章 0 订阅

前言:作者在做深度学习模型部署过程中,遇到一些算子问题,需要在ONNX Runtime平台上实现一些自定义算子,在此过程中,onnxruntime官方给的现成的库缺少一些必要文件,遂需要下载onnxruntime源码并进行编译。

一、环境说明

windows 10

cuda V11.5

cudnn 8.8.0

cmake 3.24.3(试过其他版本,均无法编译顺利完成)Index of /files/v3.24 (cmake.org)

visual studio 2019

python 3.9(电脑需要有python环境,编译本质上是运行的build.py)

onnxruntime 1.11.1

二、编译流程

# 打开git bash
git clone -b rel-1.11.1 --recursive https://github.com/Microsoft/onnxruntime
cd onnxruntime
git submodule update --init --recursive

# 管理员打开vs的工具x64 Native Tools Command Prompt for VS 2019
d:
cd onnxruntime

执行脚本编译

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

成功后可看到如下提示:

且在onnxruntime\build\Windows\Release\Release目录下可看到如下成果文件:lib dll 等

如此,则算顺利完成编译。

三、注意事项

1.CMake版本只有3.24.3试过是顺利的,其他均遇到以下报错:

error MSB3721: 命令“ml64.exe /c /nologo /WX /Fo"onnxruntime_mlas.dir\Release\QgemmU8S8KernelAvx2.obj" /D"WIN32"

2.执行脚本时候的参数,可以参考onnxruntime\tools\ci_build\build.py中的参数列表予以选择,例如对trt的支持--use_tensorrt。

3.对于cmake这种问题并不是常规debug然后改bug的问题,解决这种问题比较考验运气,若有前人的工作,则可事半功倍;若自己苦苦寻找,并不一定能解决问题,甚至已经换版本可以编译成功了仍然不知道根本原因是为何;战术性短暂放弃,在有些时候是一种有效的方法。

四、参考资料

windows10 编译onnxruntime_onnx1.10 对应cuda-CSDN博客

[Build] met build error when building for window · Issue #15101 · microsoft/onnxruntime (github.com)

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值