Halaman ini menjelaskan cara membangun library LiteRT untuk komputer berbasis ARM.
LiteRT mendukung dua sistem build dan fitur yang didukung dari setiap sistem build tidak identik. Periksa tabel berikut untuk memilih sistem build yang tepat.
| Fitur | Bazel | CMake |
|---|---|---|
| Toolchain standar | armhf, aarch64 | armel, armhf, aarch64 |
| Toolchain kustom | lebih sulit digunakan | mudah digunakan |
| Pilih operasi TF | didukung | tidak didukung |
| Delegasi GPU | hanya tersedia untuk Android | platform apa pun yang mendukung OpenCL |
| XNNPack | didukung | didukung |
| Python Wheel | didukung | didukung |
| C API | didukung | didukung |
| C++ API | didukung untuk project Bazel | didukung untuk project CMake |
Kompilasi silang untuk ARM dengan CMake
Jika memiliki project CMake atau ingin menggunakan toolchain kustom, sebaiknya gunakan CMake untuk kompilasi silang. Tersedia halaman Cross compilation LiteRT with CMake terpisah untuk hal ini.
Kompilasi silang untuk ARM dengan Bazel
Jika Anda memiliki project Bazel atau ingin menggunakan operasi TF, sebaiknya gunakan sistem build Bazel. Anda akan menggunakan toolchain ARM GCC 8.3 terintegrasi dengan Bazel untuk membuat library bersama ARM32/64.
| Arsitektur Target | Konfigurasi Bazel | Perangkat yang Kompatibel |
|---|---|---|
| armhf (ARM32) | --config=elinux_armhf | RPI3, RPI4 dengan 32 bit Raspberry Pi OS |
| AArch64 (ARM64) | --config=elinux_aarch64 | Coral, RPI4 dengan Ubuntu 64 bit |
Petunjuk berikut telah diuji di PC 64-bit Ubuntu 16.04.3 (AMD64) dan image Docker devel TensorFlow tensorflow/tensorflow:devel.
Untuk mengompilasi silang LiteRT dengan Bazel, ikuti langkah-langkah berikut:
Langkah 1. Menginstal Bazel
Bazel adalah sistem build utama untuk TensorFlow. Instal sistem build Bazel versi terbaru.
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.
Lihat halaman LiteRT C API untuk mengetahui 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 header yang diperlukan, jadi Anda harus menyertakan semua file header di tensorflow/lite/ dari repositori TensorFlow. Selain itu, Anda akan memerlukan file header dari FlatBuffers dan Abseil.
Dst.
Anda juga dapat membuat target Bazel lainnya dengan toolchain. Berikut beberapa target yang berguna.
- //tensorflow/lite/tools/benchmark:benchmark_model
- //tensorflow/lite/examples/label_image:label_image