Halaman ini menjelaskan cara membangun library LiteRT untuk berbasis ARM komputer.
LiteRT mendukung dua sistem build dan fitur yang didukung dari masing-masing sistem sistem build tidak identik. Periksa tabel berikut untuk memilih build yang tepat sistem file.
Fitur | Bazel | CMake |
---|---|---|
Toolchain yang telah ditetapkan | armhf, aarch64 | armel, armhf, aarch64 |
Toolchain kustom | lebih sulit digunakan | mudah untuk digunakan |
Pilih TF Ops | didukung | tidak didukung |
Delegasi GPU | hanya tersedia untuk Android | platform apa pun yang mendukung OpenCL |
XNNPack | didukung | didukung |
Roda Python | didukung | didukung |
API C | didukung | didukung |
C++ API | didukung untuk project Bazel | didukung untuk project CMake |
Kompilasi silang untuk ARM dengan CMake
Jika Anda memiliki project CMake atau ingin menggunakan toolchain kustom, menggunakan CMake untuk kompilasi silang. Terdapat LiteRT kompilasi silang dengan CMake yang tersedia untuk ini.
Kompilasi silang untuk ARM dengan Bazel
Jika Anda memiliki project Bazel atau ingin menggunakan TF Ops, sebaiknya gunakan Bazel sistem build. Anda akan menggunakan antarmuka Toolchain ARM GCC 8.3 dengan Bazel untuk membangun pustaka bersama ARM32/64.
Arsitektur Target | Konfigurasi Bazel | Perangkat yang Kompatibel |
---|---|---|
armhf (ARM32) | --config=elinux_armhf | RPI3, RPI4 dengan 32 bit OS Raspberry Pi |
AArch64 (ARM64) | --config=elinux_aarch64 | Coral, RPI4 dengan Ubuntu 64 mata bor |
Instruksi berikut telah diuji pada Ubuntu 16.04.3 64-bit PC (AMD64) dan gambar Docker devel TensorFlow tensorflow/tensorflow:devel.
Untuk melakukan kompilasi silang LiteRT dengan Bazel, ikuti langkah-langkah berikut:
Langkah 1. Instal Bazel
Bazel adalah sistem build utama untuk TensorFlow. Instal versi terbaru sistem build Bazel.
Langkah 2. Meng-clone repositori TensorFlow
git clone https://github.com/tensorflow/tensorflow.git tensorflow_src
Langkah 3. Membangun biner ARM
Library C
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite/c:libtensorflowlite_c.so
Anda dapat menemukan pustaka bersama di:
bazel-bin/tensorflow/lite/c/libtensorflowlite_c.so
.
Periksa LiteRT C API untuk detailnya.
Library C++
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite:libtensorflowlite.so
Anda dapat menemukan pustaka bersama di:
bazel-bin/tensorflow/lite/libtensorflowlite.so
.
Saat ini, tidak ada cara mudah untuk mengekstrak semua file {i>header<i} yang diperlukan, jadi Anda harus menyertakan semua file header di tensorflow/lite/ dari lapisan repositori resource. Selain itu, Anda akan membutuhkan file {i> header<i} dari FlatBuffers dan Abseil.
Dst.
Anda juga dapat membangun target Bazel lainnya dengan toolchain. Berikut beberapa manfaat target.
- //tensorflow/lite/tools/benchmark:benchmark_model
- //tensorflow/lite/examples/label_image:label_image