LoginSignup
5
3

More than 1 year has passed since last update.

RaspberryPi4でONNX Runtimeをビルドする

Last updated at Posted at 2020-03-11

ONNXRuntimeとは

ONNXモデル向け推論エンジンです。
開発はマイクロソフトです。ossとしてリリースされています。

公式はこちら

バイナリパッケージはx86,x64向けしか提供されていないので、ARM向けはソースコードからビルドする必要があります。

今回はRaspberryPi4上でPython用Wheelパッケージをビルドしてみました。(直接ビルドする以外にDockerコンテナを使う方法もあります。)

ただ、公式の説明ではOSのバージョンがStretchを前提としているため説明文通りではビルドできませんでした。

後の手順でビルドはできています。

環境

Raspberrypi4 4GBモデル
Raspbian Buster Fullバージョン (2020年2月5日リリース版)

ビルドの手順

Raspbianインストール直後の状態から

sudo apt update
sudo apt upgrade
sudo apt install protobuf-compiler
sudo apt install cmake
sudo apt install libcurl4-openssl-dev
sudo apt install libatlas-base-dev

mkdir code
cd code

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

cd onnxruntime

そのままだとビルド中にエラーが発生するので、次の修正を行う。
・onnxruntime/cmake/CMakeLists.txtの最後に次の文を追加。

set(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} -latomic")

修正後にビルドスクリプトの実行(Wheelパッケージの作成を指定)

./build.sh --config MinSizeRel --arm --enable_pybind --build_wheel

無事ビルドが完成したらonnxruntime/build/Linux/MinSizeRel/dist/にWheelパッケージがあるので、pip3でインストールするとonnxruntimeが利用できます。

おまけ

今回はRaspberryPi4を使ってみましたが、Raspberrypi3+(Raspbian Buster)でも問題なくビルド出来るのを確認しています。

Widows(ARM32v7,ARM64)も対応しているようだけど、HoloLens2でも動作するんでしょうか。
実機がないので試せないですが・・・

5
3
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
5
3