Cette page explique comment créer des bibliothèques LiteRT pour les modèles ARM ordinateurs.
LiteRT prend en charge deux systèmes de compilation et des fonctionnalités prises en charge par chacun ne sont pas identiques. Consultez le tableau suivant pour choisir un build approprié du système d'exploitation.
Fonctionnalité | Bazel | CMake |
---|---|---|
Chaînes d'outils prédéfinies | armhf, aarch64 | armel, armhf, aarch64 |
Chaînes d'outils personnalisées | plus difficile à utiliser | Simple d'utilisation |
Sélectionner les opérations TensorFlow | pris en charge | non pris en charge |
Délégué de GPU | disponible uniquement pour Android | toute plate-forme compatible avec OpenCL |
XNNPack | pris en charge | pris en charge |
Python Wheel | pris en charge | pris en charge |
API C | pris en charge | compatible |
API C++ | compatible avec les projets Bazel | compatible avec les projets CMake |
Compilation croisée pour ARM avec CMake
Si vous disposez d'un projet CMake ou si vous souhaitez utiliser une chaîne d'outils personnalisée, mieux utiliser CMake pour la compilation croisée. Il existe un Compilation croisée LiteRT avec CMake disponible pour cela.
Compilation croisée pour ARM avec Bazel
Si vous avez un projet Bazel ou si vous souhaitez utiliser TF Ops, il est préférable d'utiliser Bazel. du système de compilation. Vous utiliserez la Chaînes d'outils ARM GCC 8.3 avec Bazel pour créer une bibliothèque partagée ARM32/64.
Architecture cible | Configuration Bazel | Appareils compatibles |
---|---|---|
armhf (ARM32) | --config=elinux_armhf | RPI3, RPI4 avec 32 bits OS Raspberry Pi |
AArch64 (ARM64) | --config=elinux_aarch64 | Coral, RPI4 avec Ubuntu 64 foret |
Les instructions suivantes ont été testées sur les PC 64 bits Ubuntu 16.04.3 (AMD64) Image Docker de développement TensorFlow tensorflow/tensorflow:devel.
Pour effectuer une compilation croisée de LiteRT avec Bazel, procédez comme suit:
Étape 1 : Installer Bazel
Bazel est le principal système de compilation de TensorFlow. Installez la dernière version de le système de compilation Bazel ;
Étape 2 : Cloner un dépôt TensorFlow
git clone https://github.com/tensorflow/tensorflow.git tensorflow_src
Étape 3 : Créer un binaire ARM
Bibliothèque C
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite/c:libtensorflowlite_c.so
Vous trouverez une bibliothèque partagée dans:
bazel-bin/tensorflow/lite/c/libtensorflowlite_c.so
Chèque API C LiteRT pour en savoir plus.
Bibliothèque C++
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite:libtensorflowlite.so
Vous trouverez une bibliothèque partagée dans:
bazel-bin/tensorflow/lite/libtensorflowlite.so
Il n'existe actuellement aucun moyen simple d'extraire tous les fichiers d'en-tête nécessaires, Vous devez donc inclure tous les fichiers d'en-tête dans TensorFlow/lite/ à partir du fichier un dépôt de clés. De plus, vous aurez besoin de fichiers d'en-tête de FlatBuffers et Abseil.
Etc.
Vous pouvez également compiler d'autres cibles Bazel avec la chaîne d'outils. Voici quelques conseils utiles cibles.
- //tensorflow/lite/tools/benchmark:benchmark_model
- //tensorflow/lite/examples/label_image:label_image