Auf dieser Seite wird beschrieben, wie Sie die LiteRT-Bibliotheken für ARM-basierte Computer.
LiteRT unterstützt zwei Build-Systeme mit jeweils unterstützten Funktionen. Build-Systems nicht identisch sind. Orientieren Sie sich an der folgenden Tabelle, um einen geeigneten Build auszuwählen. System.
Funktion | Bazel | CMake |
---|---|---|
Vordefinierte Toolchains | Armhf, Aarch64 | Armel, Armhf, Aarch64 |
Benutzerdefinierte Toolchains | schwieriger zu nutzen | einfach zu verwenden |
TF-Operationen auswählen | unterstützt | Nicht unterstützt [not_supported] |
GPU-Delegierung | nur für Android verfügbar | jede Plattform, die OpenCL unterstützt |
XNNPack | unterstützt | unterstützt |
Python-Rad | unterstützt | unterstützt |
C API | unterstützt | unterstützt |
C++ API | unterstützt für Bazel-Projekte | unterstützt für CMake-Projekte |
Cross-Kompilierung für ARM mit CMake
Wenn Sie ein CMake-Projekt haben oder eine benutzerdefinierte Toolchain verwenden möchten, müssen Sie für die Cross-Kompilierung mit CMake besser. Es gibt eine separate Cross-Compilation LiteRT mit CMake Seite dafür zur Verfügung.
Kreuzkompilierung für ARM mit Bazel
Wenn Sie ein Bazel-Projekt haben oder TF-Operationen verwenden möchten, sollten Sie stattdessen Bazel verwenden. zu erstellen. Sie verwenden das integrierte ARM GCC 8.3-Toolchains um eine gemeinsam genutzte ARM32/64-Bibliothek zu erstellen.
Zielarchitektur | Bazel-Konfiguration | Kompatible Geräte |
---|---|---|
Armhf (ARM32) | --config=elinux_armhf | RPI3, RPI4 mit 32 Bit Raspberry Pi OS |
AArch64 (ARM64) | --config=elinux_aarch64 | Coral, RPI4 mit Ubuntu 64 Bit |
Die folgende Anleitung wurde auf Ubuntu 16.04.3 64-Bit-PC (AMD64) getestet und TensorFlow Developer Docker Image tensorflow/tensorflow:devel.
Führen Sie die folgenden Schritte aus, um LiteRT mit Bazel zu kompilieren:
Schritt 1: Bazel installieren
Bazel ist das primäre Build-System für TensorFlow. Neueste Version von das Bazel-Build-System verwendet.
Schritt 2: TensorFlow-Repository klonen
git clone https://github.com/tensorflow/tensorflow.git tensorflow_src
Schritt 3: ARM-Binärprogramm erstellen
C-Bibliothek
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite/c:libtensorflowlite_c.so
Sie finden die gemeinsam genutzte Bibliothek hier:
bazel-bin/tensorflow/lite/c/libtensorflowlite_c.so
Prüfen LiteRT C API für die Details.
C++-Bibliothek
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite:libtensorflowlite.so
Sie finden die gemeinsam genutzte Bibliothek hier:
bazel-bin/tensorflow/lite/libtensorflowlite.so
Derzeit gibt es keine einfache Möglichkeit, alle erforderlichen Headerdateien zu extrahieren. Deshalb müssen Sie alle Header-Dateien aus dem TensorFlow-Format zu erstellen. Außerdem benötigen Sie Header-Dateien aus FlatBuffers und Abseil.
usw.
Sie können mit der Toolchain auch andere Bazel-Ziele erstellen. Hier sind einige nützliche Ziele.
- //tensorflow/lite/tools/benchmark:benchmark_model
- //tensorflow/lite/examples/label_image:label_image