Bu sayfada ARM tabanlı cihazlar için LiteRT kitaplıklarının nasıl oluşturulacağı açıklanmaktadır bilgisayarlar.
LiteRT, iki derleme sistemini ve her birinde desteklenen özellikleri destekler aynı olmadığını unutmayın. Uygun bir yapı seçmek için aşağıdaki tabloyu kontrol edin bahsedeceğim.
Özellik | Bazel | CMake |
---|---|---|
Önceden tanımlanmış araç zincirleri | armhf, aarch64 | armel, armhf, aarch64 |
Özel araç zincirleri | kullanımı daha zor | kullanımı kolay |
TF işlemlerini seçme | destekleniyor | desteklenmiyor |
GPU delegesi | yalnızca Android'de kullanılabilir | OpenCL'i destekleyen tüm platformlar |
XNNPack | destekleniyor | destekleniyor |
Python Çarkı | destekleniyor | destekleniyor |
C API | destekleniyor | destekleniyor |
C++ API | Bazel projelerinde desteklenir | CMake projelerinde desteklenir |
CMake ile ARM için çapraz derleme
Bir CMake projeniz varsa veya özel bir araç zinciri kullanmak istiyorsanız için CMake'i daha iyi kullanabilirsiniz. Bu özellik için ayrı bir CMake ile LiteRT derlemesi kullanılabilir.
ARM için Bazel ile çapraz derleme
Bazel projeniz varsa veya TF operasyonlarını kullanmak istiyorsanız Bazel'i kullanmanız daha iyi olur geliştirmenizi sağlar. Entegre edilen ARM GCC 8.3 araç zincirleri oluşturmak için ARM32/64 paylaşılan bir kitaplık oluşturmak için Bazel ile birlikte çalıştık.
Hedef Mimari | Bazel Yapılandırması | Uyumlu Cihazlar |
---|---|---|
armhf (ARM32) | --config=elinux_armhf | 32 bit ile RPI3, RPI4 Raspberry Pi İşletim Sistemi |
ARM64 (ARM64) | --config=elinux_aarch64 | Mercan, Ubuntu 64 ile RPI4 matkap ucu |
Aşağıdaki talimatlar Ubuntu 16.04.3 64 bit PC (AMD64) üzerinde test edilmiştir ve TensorFlow devel Docker görüntüsü tensorflow/tensorflow:devel.
LiteRT'yi Bazel ile çapraz derlemek için aşağıdaki adımları uygulayın:
1. Adım: Bazel'i yükleme
Bazel, TensorFlow için birincil derleme sistemidir. Şu uygulamanın en son sürümünü yükleyin: Bazel derleme sistemi
2. adım: TensorFlow deposunu klonlama
git clone https://github.com/tensorflow/tensorflow.git tensorflow_src
3. Adım: ARM ikili programı oluşturma
C kitaplığı
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite/c:libtensorflowlite_c.so
Paylaşılan bir kitaplığı şuralarda bulabilirsiniz:
bazel-bin/tensorflow/lite/c/libtensorflowlite_c.so
Kontrol Et LiteRT C API sayfasına bakın.
C++ kitaplığı
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite:libtensorflowlite.so
Paylaşılan bir kitaplığı şuralarda bulabilirsiniz:
bazel-bin/tensorflow/lite/libtensorflowlite.so
Şu anda, gerekli tüm başlık dosyalarını almanın kolay bir yolu yoktur. bu nedenle, TensorFlow'dan tüm başlık dosyalarını tensorflow/lite/ içerisine eklemeniz gerekir depodur. Ayrıca, FlatBuffers'tan başlık dosyalarına ve Abseil.
vs.
Araç zincirini kullanarak başka Bazel hedefleri de oluşturabilirsiniz. İşte size bazı faydalı belirler.
- //tensorflow/lite/tools/benchmark:benchmark_model
- //tensorflow/lite/examples/label_image:label_image