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

网站建设地址 北京凡科建站下载

网站建设地址 北京,凡科建站下载,吉安永新哪里做网站,web网站开发论文Jetson Orin 安装 onnxruntime onnxruntime在Jetson上安装只需注意三件事: 版本! 版本! 还是TMD版本! 本机环境 Jectpack : 5.1.2CUDA : 11.4cuDNN :8.6.0 版本说明 关于onnxruntime的版本适配不同的官方有不同的…

Jetson Orin 安装 onnxruntime

onnxruntime在Jetson上安装只需注意三件事: 版本! 版本! 还是TMD版本!

本机环境

  • Jectpack : 5.1.2
  • CUDA : 11.4
  • cuDNN :8.6.0
    在这里插入图片描述

版本说明

关于onnxruntime的版本适配不同的官方有不同的推荐

  • 英伟达jetson zoo提供了onnxruntime的预编译版本,版本号是根据Jetpack的版本号来选择onnxruntime,这里推荐的是1.17.0和1.18.0
    在这里插入图片描述
  • onnxruntime官方是根据CUDA版本推荐的,这里推荐的是1.11和1.12

这里二者推荐的版本很矛盾,因此综上所述,我们选择的版本是1.16.0 😃 因为前面几个版本测试安装都有问题

1、安装准备

Jetson zoo虽然有onnxruntime的预编译版本,但是是python版本的,没有c++部署需要的头文件和动态库,所以推荐源码安装编译。
首先需要临时声明一些环境变量

sudo apt-get install protobuf-compiler libprotoc-devexport PATH=/usr/local/cuda/bin:${PATH}
export CUDA_PATH=/usr/local/cuda
export cuDNN_PATH=/usr/lib/aarch64-linux-gnu
export CMAKE_ARGS="-DONNX_CUSTOM_PROTOC_EXECUTABLE=/usr/bin/protoc"

2、源码下载

源码下载,最好直接用git clone,而不是去github下载对应版本的程序,因为build.sh好像需要git的仓库,为了不必要的麻烦直接gitclone

git clone --recursive https://github.com/Microsoft/onnxruntime.git   

--recursive 递归子库
切换版本号

git checkout v1.16.0

更新子仓库

git submodule update --init --recursive --progress

NOTICE1:
这一步可能会遇到如下错误
does not match expected value
expected: ‘ee201b07085203ea7bd8eb97cbcb31b07cfa3efb’
actual: ‘5b3adeb17e87b1a6f6a716b2c462f44b5aa01713’
– Hash mismatch, removing…
导致程序卡在eigen这个库反复下载
在这里插入图片描述
出现此问题的原因是git下来的eigen库哈希值与期望的哈希值不一致,即使手动下载此库也会这样。目前不清楚expected的哈希值为什么与给出链接的不同,可能是版本问题。
找到 ./onnxruntime/cmake/external路径下的eigen.cmake文件,在文件开始强制修改期望的哈希值为下载的版本,这里举例我的是

set(DEP_SHA1_eigen "5b3adeb17e87b1a6f6a716b2c462f44b5aa01713")

NOTICE2:
可能会遇到这个错误,由于丢失记不清哪个错误了,总之就会卡住一会,网络错误,多试几遍就好
ontent.cmake:2145:EVAL:2 (__FetchContent_doPopulation) /usr/local/cmake/share/cmake-3.31/Modules/FetchContent.cmake:2145 (cmake_language) /usr/local/cmake/share/cmake-3.31/Modules/FetchContent.cmake:1978:EVAL:1 (__FetchContent_Populate) /usr/local/cmake/share/cmake-3.31/Modules/FetchContent.cmake:1978 (cmake_language) external/eigen.cmake:12 (FetchContent_Populate) external/onnxruntime_external_deps.cmake:483 (include) CMakeLists.txt:586 (include) -

3、编译

cd ./onnnxruntime
./build.sh --config Release --update --build --parallel --build_shared_lib --build_wheel --use_cuda --cuda_home /usr/local/cuda --cudnn_home /usr/lib/aarch64-linux-gnu

--build_shared_lib生成动态库 --use_cuda使用cuda --parallel多线程编译

编译完成标志

...
build [INFO] - Build complete

在这里插入图片描述

4、安装

cd ./build/Linux/Release
sudo make install

在这里插入图片描述
安装完成后 动态库 libonnxruntime.so/usr/local/lib
头文件在/usr/local/include/onnxruntime

5、异常分析

  • ImportError: cannot import name ‘FileError’ from ‘setuptools.errors’
    在这里插入图片描述
    遇到这个问题可能是setuptools版本问题,检查更新并安装依赖库
    python3 -m venv onnxruntime-env
    source onnxruntime-env/bin/activate
    pip install --upgrade pip setuptools
    pip install -r /mnt/cf/wk_test/onnxruntime/requirements.txt
    
    然后重新编译

5、其他版本

随手记录下其他版本安装中遇到的问题,以供参考和复盘

  • v1.17.0 / v1.18.0
    首先报错
CMake Error at CMakeLists.txt:647 (message): The compiler doesn't support BFLOAT16!!! 

此报错为gcc-9版本不支持BFLOAT16类型,需要升级到gcc-10版本

然后遇到报错

error: This file was generated by an older version of protoc which is incompatible with your Protocol Buffer headers.  

这个错误是在编译时源码报的错,错误表明 ‌Protocol Buffer(protoc)版本不兼容‌,导致生成的 onnx-ml.pb.h 文件与当前系统安装的 protobuf 头文件冲突,直接放弃

  • v1.16.3
    1.16.3在编译时可以通过,但是在编译后的test测试会报错
----------] Global test environment tear-down [==========] 4119 tests from 289 test suites ran. (344132 ms total)[ PASSED ] 4110 tests. 
[ SKIPPED ] 6 tests, listed below: 
[ SKIPPED ] AttentionTest.AttentionPastState_dynamic [ SKIPPED ] AttentionTest.Attention_Mask2D_Fp32_B2_S32 
[ SKIPPED ] AttentionTest.Attention_Mask1D_Fp32_B2_S64 [ SKIPPED ] AttentionTest.Attention_NoMask_Fp16[ SKIPPED ] MatMulFpQ4.MatMul2DSym [ SKIPPED ] MatMulFpQ4.MatMul2DBlkZp[ FAILED ] 3 tests, listed below: 
[ FAILED ] MultiHeadAttentionTest.CrossAttention_Batch2_HeadSize32_NoBias_NoMask_PackedKV 
[ FAILED ] MultiHeadAttentionTest.SelfAttention_Batch2_HeadSize32_NoBias_NoMask_PackedQKV 
[ FAILED ] QuantizeLinearOpMLFloat16Test.Float8 3FAILED TESTS YOU HAVE 9 DISABLED TESTS <end of output> Test time = 344.85 sec ---------------------------------------------------------- Test Failed. "onnxruntime_test_all"

搜索后可能是注意力机制和量化模块有问题,解决了之后又报

packed KV format is not implemented for current GPU. Please disable packed kv in fusion options‌

此问题属于 ONNX Runtime 对特定 GPU 架构的算子支持不完整,因此放弃了此版本。

  • v1.12.0
    编译时总是遇到 undefined reference to `libiconv_close’ 这个错误,但是已经安装了libiconv库,并且export临时声明了库的地址,试过了很多方法还是报错,放弃。
http://www.dtcms.com/wzjs/249242.html

相关文章:

  • 企业网站建设规划方案外贸企业网站设计公司
  • 营销型网站建设技术指标网络营销好不好
  • 做网站源代码需要买吗网站seo外包公司有哪些
  • 电子商务网站规划的原则企业自建网站
  • 蜜桃传奇免费网页版广东优化疫情防控措施
  • 凡科怎么建设网站河北网站seo外包
  • 西宁做网站的网络公司如何创建自己的网站平台
  • 做网站建设有前途那找培训班一般在什么平台
  • 中国建设银行网站成都第七支行营销型网站的分类不包含
  • 网站备案 代理百度资源平台链接提交
  • 自建站电商外贸市场推广怎么写
  • 英文网站制作 官网关键词搜索查询
  • 建设网站容易吗网站模板哪家好
  • 在网站上做支付功能 需要什么数据分析培训课程
  • 网站建站方案说明书推广关键词优化公司
  • 有什么字体设计网站什么公司适合做seo优化
  • 个人做哪方面网站seo网站优化培训要多少钱
  • 网站优化软件排名技术百度网站排名优化软件
  • 济南网站建设 联系小七网站seo优化教程
  • 建网站做日租房网上怎么找客户资源
  • 网站开发公司 上深圳网络推广的公司
  • 网站如何做词友情链接交换网站
  • 做财税的网站有哪些精品成品网站源码
  • 咨询聊城做网站市场推广方案怎么写
  • 二级域名 电子商务网站推广方案seo网页优化平台
  • 广州wap网站制作百度手机助手网页版
  • 怎么做网站维护seo服务指什么意思
  • 武汉市有做网站的吗微网站
  • 黄冈贴吧免费seo网站优化
  • 广州做网站2345网址导航官方网站