Membangun LiteRT untuk board ARM

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

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

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

Kompilasi silang untuk ARM dengan CMake

Jika Anda memiliki project CMake atau ingin menggunakan toolchain kustom, menggunakan CMake untuk kompilasi silang. Terdapat LiteRT kompilasi silang dengan CMake yang tersedia untuk ini.

Kompilasi silang untuk ARM dengan Bazel

Jika Anda memiliki project Bazel atau ingin menggunakan TF Ops, sebaiknya gunakan Bazel sistem build. Anda akan menggunakan antarmuka Toolchain ARM GCC 8.3 dengan Bazel untuk membangun pustaka bersama ARM32/64.

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

Instruksi berikut telah diuji pada Ubuntu 16.04.3 64-bit PC (AMD64) dan gambar Docker devel TensorFlow tensorflow/tensorflow:devel.

Untuk melakukan kompilasi silang LiteRT dengan Bazel, ikuti langkah-langkah berikut:

Langkah 1. Instal Bazel

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

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.

Periksa LiteRT C API untuk 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 {i>header<i} yang diperlukan, jadi Anda harus menyertakan semua file header di tensorflow/lite/ dari lapisan repositori resource. Selain itu, Anda akan membutuhkan file {i> header<i} dari FlatBuffers dan Abseil.

Dst.

Anda juga dapat membangun target Bazel lainnya dengan toolchain. Berikut beberapa manfaat target.

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