このページでは、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