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