تصميم LiteRT للوحات ARM

توضّح هذه الصفحة كيفية إنشاء مكتبات LiteRT لأجهزة الكمبيوتر المستندة إلى ARM.

يتوافق LiteRT مع نظامَي إنشاء، ولا تتطابق الميزات المتوافقة من كل نظام إنشاء. راجِع الجدول التالي لاختيار نظام إنشاء مناسب.

الميزة Bazel CMake
سلاسل الأدوات المحدّدة مسبقًا armhf وaarch64 armel وarmhf وaarch64
سلاسل الأدوات المخصّصة أصعب في الاستخدام سهولة الاستخدام
اختيار عمليات TensorFlow مدعوم not supported
مفوّض وحدة معالجة الرسومات تتوفّر هذه الميزة على أجهزة Android فقط. أي منصة متوافقة مع OpenCL
XNNPack مدعوم مدعوم
Python Wheel مدعوم مدعوم
C API مدعوم متاح
C++ API متوافق مع مشاريع Bazel متوافق مع مشاريع CMake

الترجمة البرمجية المتقاطعة لـ ARM باستخدام CMake

إذا كان لديك مشروع CMake أو أردت استخدام مجموعة أدوات مخصّصة، من الأفضل استخدام CMake لإجراء عملية الترجمة البرمجية. تتوفّر صفحة منفصلة بعنوان Cross compilation LiteRT with CMake لهذا الغرض.

الترجمة البرمجية المتوافقة مع ARM باستخدام Bazel

إذا كان لديك مشروع Bazel أو إذا كنت تريد استخدام عمليات TF، من الأفضل استخدام نظام إنشاء Bazel. ستستخدم سلاسل أدوات ARM GCC 8.3 المدمجة مع Bazel لإنشاء مكتبة مشتركة ARM32/64.

Target Architecture إعدادات Bazel الأجهزة المتوافقة
armhf (ARM32) --config=elinux_armhf ‫RPI3 وRPI4 مع نظام التشغيل Raspberry Pi OS‏ 32 بت
AArch64 (ARM64) --config=elinux_aarch64 ‫Coral وRaspberry Pi 4 مع نظام التشغيل Ubuntu 64 بت

تم اختبار التعليمات التالية على جهاز كمبيوتر Ubuntu 16.04.3 64-bit (AMD64) وصورة Docker الخاصة بتطوير TensorFlow tensorflow/tensorflow:devel.

لإجراء تجميع متوافق مع LiteRT باستخدام Bazel، اتّبِع الخطوات التالية:

الخطوة 1: تثبيت Bazel

‫Bazel هو نظام الإنشاء الأساسي في TensorFlow. ثبِّت أحدث إصدار من نظام إنشاء Bazel.

الخطوة 2: إنشاء نسخة طبق الأصل من مستودع TensorFlow

git clone https://github.com/tensorflow/tensorflow.git tensorflow_src

الخطوة 3: إنشاء ملف ثنائي ARM

مكتبة C
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite/c:libtensorflowlite_c.so

يمكنك العثور على مكتبة مشتركة في: bazel-bin/tensorflow/lite/c/libtensorflowlite_c.so.

يمكنك الاطّلاع على التفاصيل في صفحة LiteRT C API.

مكتبة C++‎
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite:libtensorflowlite.so

يمكنك العثور على مكتبة مشتركة في: bazel-bin/tensorflow/lite/libtensorflowlite.so.

في الوقت الحالي، ليس هناك طريقة مباشرة لاستخراج جميع ملفات العناوين المطلوبة، لذا يجب تضمين جميع ملفات العناوين في tensorflow/lite/ من مستودع TensorFlow. بالإضافة إلى ذلك، ستحتاج إلى ملفات عناوين من FlatBuffers وAbseil.

Etc

يمكنك أيضًا إنشاء استهدافات أخرى في Bazel باستخدام مجموعة الأدوات. في ما يلي بعض الأهداف المفيدة.

  • //tensorflow/lite/tools/benchmark:benchmark_model
  • //tensorflow/lite/examples/label_image:label_image