توضّح هذه الصفحة كيفية إنشاء مكتبات 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