文章目录
前言
为了更好的学习研究onnxrumtime量化原理和实现方法,需要在调用onnxruntime时解读源码,而直接通过pip isntall onnxruntime
安装发行版会有部分内容是被封装的,所以需要源码编译安装onnxruntime并调用。
编译安装环境
ubuntu 20.04
cmake 3.30.5
onnxruntime 1.19.2
onnx 1.17.0
python 3.8.20
protobuf 5.29.4
numpy 1.24.4
packaging 25.0
第一步、下载/克隆onnxruntime-1.19.2源码
可以直接在github上下载源码包onnxruntime-1.19.2.zip,解压并进入源码目录
unzip /home/tipper/onnxruntime/onnxruntime-1.19.2.zip
cd /home/tipper/onnxruntime/onnxruntime-1.19.2
第二步、执行编译
根据onnxruntime官方指导手册进行编译
# 进入源码目录
cd /home/tipper/onnxruntime/onnxruntime-1.19.2
# 进入root用户
sudo su
# 执行编译指令
./build.sh --skip_tests --config Release --build_wheel --build_shared_lib --parallel 4 --enable_pybind --allow_running_as_root
报错一:当前目录不是git仓库,需要git初始化
git init
报错二:在终端执行时可能会有部分依赖的压缩包无法下载的问题
解决方法:根据URL地址手动下载对应依赖的压缩包,并将源码目录下的dep.txt进行修改,URL从网址(https://)改为本地绝对路径(file:///),下面是abseil_cpp的示例,对于其他依赖包是一样的
abseil_cpp;https://github.com/abseil/abseil-cpp/archive/f46495ea96f68fc3f6c394f099b2992743f6ff7f.zip;0e2b6d1dc7f0a808d1e23f7dd985f7bc18d52cbc
修改为
abseil_cpp;file:///home/tipper/onnxruntime/deps_download/abseil-cpp-f46495ea96f68fc3f6c394f099b2992743f6ff7f.zip;0e2b6d1dc7f0a808d1e23f7dd985f7bc18d52cbc
完成编译
第三步、安装
执行安装命令
编译后产物在build
目录下,编译得到的轮子在build/Linux/Release/dist下,需要手动安装
cd /home/tipper/onnxruntime/onnxruntime-1.19.2/build/Linux/Release
sudo make install
pip install dist/onnxruntime-1.19.2-cp38-cp38-linux_x86_64.whl