Crea LiteRT per schede ARM

Questa pagina descrive come creare le librerie LiteRT per computer basati su ARM.

LiteRT supporta due sistemi di compilazione e le funzionalità supportate di ciascun sistema di compilazione non sono identiche. Consulta la tabella seguente per scegliere un sistema di build appropriato.

Funzionalità Bazel CMake
Toolchain predefinite armhf, aarch64 armel, armhf, aarch64
Toolchain personalizzate più difficile da usare facile da usare
Seleziona operazioni TF supportata non supportato
Delegato GPU disponibile solo per Android Qualsiasi piattaforma che supporti OpenCL
XNNPack supportata supportata
Python Wheel supportata supportata
API C supportata supportato
API C++ supportato per i progetti Bazel supportato per i progetti CMake

Cross-compilazione per ARM con CMake

Se hai un progetto CMake o vuoi utilizzare una toolchain personalizzata, ti consigliamo di utilizzare CMake per la compilazione incrociata. A questo scopo è disponibile una pagina separata Compilazione incrociata LiteRT con CMake.

Cross-compilazione per ARM con Bazel

Se hai un progetto Bazel o vuoi utilizzare le operazioni TF, ti consigliamo di utilizzare il sistema di build Bazel. Utilizzerai le toolchain ARM GCC 8.3 integrate con Bazel per creare una libreria condivisa ARM32/64.

Architettura di destinazione Configurazione di Bazel Dispositivi compatibili
armhf (ARM32) --config=elinux_armhf RPI3, RPI4 con 32 bit Raspberry Pi OS
AArch64 (ARM64) --config=elinux_aarch64 Coral, RPI4 con Ubuntu a 64 bit

Le seguenti istruzioni sono state testate su PC Ubuntu 16.04.3 a 64 bit (AMD64) e sull'immagine Docker di sviluppo di TensorFlow tensorflow/tensorflow:devel.

Per la compilazione incrociata di LiteRT con Bazel, segui questi passaggi:

Passaggio 1: Installare Bazel

Bazel è il sistema di compilazione principale per TensorFlow. Installa l'ultima versione del sistema di compilazione Bazel.

Passaggio 2: Clona il repository TensorFlow

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

Passaggio 3: Crea il file binario ARM

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

Puoi trovare una libreria condivisa in: bazel-bin/tensorflow/lite/c/libtensorflowlite_c.so.

Per i dettagli, consulta la pagina dell'API LiteRT C.

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

Puoi trovare una libreria condivisa in: bazel-bin/tensorflow/lite/libtensorflowlite.so.

Al momento non esiste un modo semplice per estrarre tutti i file di intestazione necessari, quindi devi includere tutti i file di intestazione in tensorflow/lite/ dal repository TensorFlow. Inoltre, avrai bisogno dei file di intestazione di FlatBuffers e Abseil.

Etc

Puoi anche creare altri target Bazel con la toolchain. Ecco alcuni target utili.

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