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