1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ONNX RuntimeをJetson TX2にビルドしたメモ

Posted at

概要

  • 公式のビルドガイドを見ながら導入しようとしたときにいろいろ躓いたのでメモ
  • クロスコンパイルの方はどうにもうまくいかなかったので、Jetson TX2側でやる

cmakeのインストール(>=3.13)、ついでにpip最新化

最近のLinux系なら、たいていパッケージマネージャーに登録されてるpython3-pipが入ってるはず。
これはこれで便利なんだけど、自分自身が結構な確率でうっかりsudo pip3 install -U pipとかやらかして環境壊す残念なタイプという………
なので、cmakeを入れ替えるついでにpipも入れ替えてしまう。

cmake内蔵のcurlのバグ?で本体ビルド時に引っかかったので、OS側のを使うようにしておくのが無難っぽい。

sudo apt remove python3-pip cmake -y
wget https://bootstrap.pypa.io/get-pip.py
sudo python3 ./get-pip.py

sudo apt install -y libcurl4-openssl-dev libhdf5-dev

tar zxvf cmake-3.15.4.tar.gz
cd cmake-3.15.4

./bootstrap --system-curl
make -j$(nproc)
sudo make install

cmake --version

依存関係のインストール

入れていないとwheel作成時にエラー

  • scipyの最新は手持ちの環境だとエラー、1.2.1だと通った
sudo apt install libprotobuf-dev protobuf-compiler

sudo pip3 install -U cython codecov jinja2 numpy onnx onnxmltools packaging pandas protobuf pytest pytest-cov scikit-learn scipy==1.2.1 six sympy wheel sphinx sphinx_gallery sphinx_modern_theme

ビルド

とりあえず最新バージョンを持ってくる。
うっかりrecursiveつけ忘れると、サードパーティが引っ張られないので哀しいことになる(なった

git clone --recursive https://github.com/microsoft/onnxruntime.git -b v1.0.0 --depth 1

ビルド設定の編集

  • L430付近にあるCMAKE_CXX_FLAGSCMAKE_C_FLAGS-Wallを削除
  • L441近辺にあるHAS_UNUSED_PARAMETERHAS_UNUSED_BUT_SET_VARIABLEを含む行のコメントアウト
  • L595近辺のCMAKE_CUDA_FLAGSでM seriesの箇所をコメントアウトして以下の内容追加
set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -gencode=arch=compute_53,code=sm_53") # Jetson support

Warnでビルドエラーにされるの回避+CUDA有効化するときのJetsonのモデル追加なので、2つめはいらないかもしれない

ビルド実行

  • まずは普通にビルド(そしてエラー
./build.sh --config MinSizeRel --parallel --cudnn_home /usr/lib/aarch64-linux-gnu/ --cuda_home /usr/local/cuda/ --use_tensorrt --tensorrt_home /usr/src/tensorrt/
  • ここでしばらくエラーとくんずほぐれつしてた

  • onnxruntimeでTensorRT使う場合は3~4が必要(?

  • 仕方ないのでTensorRTを外し、ついでにwheelまで作る

# ./build.sh --config MinSizeRel --parallel --build_wheel --cudnn_home /usr/lib/aarch64-linux-gnu/ --cuda_home /usr/local/cuda/ --use_tensorrt --tensorrt_home /usr/src/tensorrt/
./build.sh --config MinSizeRel --parallel --build_wheel --cudnn_home /usr/lib/aarch64-linux-gnu/ --cuda_home /usr/local/cuda/
  • ここまで来るとwheelファイルができてるので、あとはpipでよしなにする
  • python3上でお試しimportして、version確認できればOK
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?