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

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

يدعم LiteRT نظامين تصميم وميزات مدعومة من كل منهما نظام الإصدار ليس متطابقًا. راجِع الجدول التالي لاختيار بنية مناسبة. .

الميزة Bazel CMake
سلاسل الأدوات المحدَّدة مسبقًا Armhf وaarch64 ذراع، Armhf، aarch64
سلاسل الأدوات المخصّصة أصعب في الاستخدام وسهل الاستخدام
اختيار عمليات TF مدعوم not supported
تفويض وحدة معالجة الرسومات متوفّرة لنظام التشغيل Android فقط أي نظام أساسي يتوافق مع OpenCL
XNNPack مدعوم مدعوم
عجلة Python مدعوم مدعوم
واجهة برمجة التطبيقات C مدعوم متوافق
واجهة برمجة تطبيقات C++ متوافقة مع مشاريع Bazel متوافق مع مشاريع CMake

تجميع شامل للبيانات المستندة إلى ARM باستخدام أداة CMake

إذا كان لديك مشروع CMake أو إذا كنت تريد استخدام سلسلة أدوات مخصصة، يجب يجب استخدام CMake بشكل أفضل للتجميع المتقاطع. تتوفر استخدام LiteRT للتجميع المجمَّع باستخدام أداة CMake متاحة لذلك.

فيديو مجمّع لمحتوى ARM باستخدام Bazel

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

بنية الهدف إعداد Bazel الأجهزة المتوافقة
Armhf (ARM32) --config=elinux_armhf RPI3، وRPI4 مع 32 بت نظام تشغيل Raspberry Pi
AArch64 (ARM64) --config=elinux_aarch64 مرجان، RPI4 مع Ubuntu 64 بت

تم اختبار التعليمات التالية على جهاز كمبيوتر يعمل بنظام التشغيل Ubuntu 16.04.3 64 بت (AMD64) وصورة منصة 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 للحصول على التفاصيل.

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

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

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

ما إلى ذلك

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

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