Membangun LiteRT untuk board ARM

Halaman ini menjelaskan cara membangun library LiteRT untuk komputer berbasis ARM.

LiteRT mendukung dua sistem build dan fitur yang didukung dari setiap sistem build tidak identik. Periksa tabel berikut untuk memilih sistem build yang tepat.

Fitur Bazel CMake
Toolchain standar armhf, aarch64 armel, armhf, aarch64
Toolchain kustom lebih sulit digunakan mudah digunakan
Pilih operasi TF didukung tidak didukung
Delegasi GPU hanya tersedia untuk Android platform apa pun yang mendukung OpenCL
XNNPack didukung didukung
Python Wheel didukung didukung
C API didukung didukung
C++ API didukung untuk project Bazel didukung untuk project CMake

Kompilasi silang untuk ARM dengan CMake

Jika memiliki project CMake atau ingin menggunakan toolchain kustom, sebaiknya gunakan CMake untuk kompilasi silang. Tersedia halaman Cross compilation LiteRT with CMake terpisah untuk hal ini.

Kompilasi silang untuk ARM dengan Bazel

Jika Anda memiliki project Bazel atau ingin menggunakan operasi TF, sebaiknya gunakan sistem build Bazel. Anda akan menggunakan toolchain ARM GCC 8.3 terintegrasi dengan Bazel untuk membuat library bersama ARM32/64.

Arsitektur Target Konfigurasi Bazel Perangkat yang Kompatibel
armhf (ARM32) --config=elinux_armhf RPI3, RPI4 dengan 32 bit Raspberry Pi OS
AArch64 (ARM64) --config=elinux_aarch64 Coral, RPI4 dengan Ubuntu 64 bit

Petunjuk berikut telah diuji di PC 64-bit Ubuntu 16.04.3 (AMD64) dan image Docker devel TensorFlow tensorflow/tensorflow:devel.

Untuk mengompilasi silang LiteRT dengan Bazel, ikuti langkah-langkah berikut:

Langkah 1. Menginstal Bazel

Bazel adalah sistem build utama untuk TensorFlow. Instal sistem build Bazel versi terbaru.

Langkah 2. Meng-clone repositori TensorFlow

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

Langkah 3. Membangun biner ARM

Library C
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite/c:libtensorflowlite_c.so

Anda dapat menemukan pustaka bersama di: bazel-bin/tensorflow/lite/c/libtensorflowlite_c.so.

Lihat halaman LiteRT C API untuk mengetahui detailnya.

Library C++
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite:libtensorflowlite.so

Anda dapat menemukan pustaka bersama di: bazel-bin/tensorflow/lite/libtensorflowlite.so.

Saat ini, tidak ada cara mudah untuk mengekstrak semua file header yang diperlukan, jadi Anda harus menyertakan semua file header di tensorflow/lite/ dari repositori TensorFlow. Selain itu, Anda akan memerlukan file header dari FlatBuffers dan Abseil.

Dst.

Anda juga dapat membuat target Bazel lainnya dengan toolchain. Berikut beberapa target yang berguna.

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