Na tej stronie dowiesz się, jak tworzyć biblioteki LiteRT dla systemów ARM z komputerów.
LiteRT obsługuje 2 systemy kompilacji i obsługiwane funkcje nie są identyczne. Aby wybrać odpowiednią kompilację, skorzystaj z tej tabeli systemu.
Funkcja | Bazel | CMake |
---|---|---|
Wstępnie zdefiniowane łańcuchy narzędzi | armhf, aarch64 | armel, armhf, aarch64 |
Niestandardowe łańcuchy narzędzi | trudniejsze w użyciu | łatwa w użyciu |
Wybierz operacje TF | obsługiwana | not supported |
Przedstawiciel GPU | dostępne tylko na Androida | dowolna platforma obsługująca OpenCL |
XNNPack | obsługiwana | obsługiwana |
Koło Python | obsługiwana | obsługiwana |
C API | obsługiwana | obsługiwane |
Interfejs API C++ | obsługiwane w projektach Bazel | obsługiwane w projektach CMake |
Kompilacja danych dla architektur ARM i CMake
Jeśli masz projekt CMake lub chcesz użyć niestandardowego łańcucha narzędzi, lepiej korzystać z CMake do kompilacji krzyżowej. Dostępny jest osobny Kompilacja krzyżowa LiteRT z CMake strony, która to umożliwia.
Kompilacja danych dla architektur ARM z Badel
Jeśli masz projekt Bazel lub chcesz korzystać z operacji TF, lepiej jest używać systemu kompilacji. Użycie zintegrowanego narzędzia Łańcuchy narzędzi ARM GCC 8.3 za pomocą Bazel, aby utworzyć bibliotekę współdzieloną ARM32/64.
Architektura docelowa | Konfiguracja w Bazelu | Zgodne urządzenia |
---|---|---|
Armhf (ARM32) | --config=elinux_armhf | RPI3, RPI4 z 32-bitowym System operacyjny Malinowy Pi |
AArch64 (ARM64) | --config=elinux_aarch64 | Koralowy, RPI4 z Ubuntu 64 wiertło |
Poniższe instrukcje zostały przetestowane w systemie Ubuntu 16.04.3 64-bitowego komputera (AMD64) i obraz Devel w TensorFlow tensorflow/tensorflow:devel.
Aby skompilować krzyżowo LiteRT z Bazel, wykonaj te czynności:
Krok 1. Zainstaluj Bazel
Podstawowym systemem kompilacji dla TensorFlow jest Bazel. Zainstaluj najnowszą wersję aplikacji system kompilacji Bazel.
Krok 2. Klonowanie repozytorium TensorFlow
git clone https://github.com/tensorflow/tensorflow.git tensorflow_src
Krok 3. Utwórz plik binarny ARM
Biblioteka C
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite/c:libtensorflowlite_c.so
Zasoby wspólne możesz znaleźć w tych miejscach:
bazel-bin/tensorflow/lite/c/libtensorflowlite_c.so
Sprawdź Interfejs API LiteRT C aby wyświetlić szczegóły.
Biblioteka C++
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite:libtensorflowlite.so
Zasoby wspólne możesz znaleźć w tych miejscach:
bazel-bin/tensorflow/lite/libtensorflowlite.so
Obecnie nie ma prostego sposobu wyodrębniania wszystkich potrzebnych plików nagłówka, musisz więc uwzględnić wszystkie pliki nagłówków w Tensorflow/lite/ z biblioteki TensorFlow z repozytorium. Potrzebne będą też pliki nagłówka z platformy FlatBuffers Abseil.
itd.
Możesz też za pomocą łańcucha narzędzi tworzyć inne cele w Bazelu. Oto kilka przydatnych celów.
- //tensorflow/lite/tools/benchmark:benchmark_model
- //tensorflow/lite/examples/label_image:label_image