ARM ボード用に LiteRT をビルドする

このページでは、ARM ベースの LiteRT ライブラリをビルドする方法について説明します。 できます。

LiteRT は 2 つのビルドシステムと、各ビルドシステムでサポートされている機能をサポートしています。 同じではありません。次の表を確認して適切なビルドを選択してください。 ありません

機能 Bazel CMake
事前定義されたツールチェーン armhf、aarch64 armel、armhf、aarch64
カスタム ツールチェーン 使いづらい 使いやすい
TF オペレーションの選択 をサポート 未対応
GPU デリゲート Android でのみ利用可能 OpenCL をサポートする任意のプラットフォーム
XNNPack をサポート をサポート
Python ホイール をサポート をサポート
C API をサポート 対応
C++ API Bazel プロジェクトをサポート CMake プロジェクトでサポート

CMake を使用した ARM 用のクロスコンパイル

CMake プロジェクトを使用している場合や、カスタム ツールチェーンを使用する場合は、 クロス コンパイルには CMake を使用することをおすすめします。別の CMake での LiteRT のクロス コンパイル できます。

Bazel を使用した ARM のクロスコンパイル

Bazel プロジェクトを使用している場合、または TF オペレーションを使用する場合は、Bazel を使用することをおすすめします。 使用します。統合型の ARM GCC 8.3 ツールチェーン ARM32/64 共有ライブラリをビルドする場合。

ターゲット アーキテクチャ Bazel の構成 対応デバイス
armhf(ARM32) --config=elinux_armhf 32 ビットの RPI3、RPI4 Raspberry Pi OS
AArch64(ARM64) --config=elinux_aarch64 Coral、RPI4(Ubuntu 64 を使用) ビット

次の手順は、Ubuntu 16.04.3 64 ビット PC(AMD64)でテストされています TensorFlow 開発環境の Docker イメージ tensorflow/tensorflow:devel.

LiteRT と Bazel をクロスコンパイルする手順は次のとおりです。

ステップ 1. Bazel をインストールする

Bazel は TensorFlow の主要なビルドシステムです。最新バージョンの Bazel ビルドシステム

ステップ 2. TensorFlow リポジトリのクローンを作成する

git clone https://github.com/tensorflow/tensorflow.git tensorflow_src

ステップ 3. ARM バイナリをビルドする

C ライブラリ
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite/c:libtensorflowlite_c.so

共有ライブラリは次の場所にあります。 bazel-bin/tensorflow/lite/c/libtensorflowlite_c.so

確認 LiteRT C API ページをご覧ください。

C++ ライブラリ
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite:libtensorflowlite.so

共有ライブラリは次の場所にあります。 bazel-bin/tensorflow/lite/libtensorflowlite.so

現時点では、必要なすべてのヘッダー ファイルを抽出する簡単な方法はありませんが、 そのため、TensorFlow の tensorflow/lite/ にすべてのヘッダー ファイルを含める必要がある できます。さらに、FlatBuffers のヘッダー ファイルと Abseil。

など。

ツールチェーンを使用して他の Bazel ターゲットをビルドすることもできます。ここで、 できます。

  • //tensorflow/lite/tools/benchmark:benchmark_model
  • //tensorflow/lite/examples/label_image:label_image