این صفحه نحوه ساخت کتابخانه های LiteRT را برای رایانه های مبتنی بر ARM شرح می دهد.
LiteRT از دو سیستم ساخت پشتیبانی می کند و ویژگی های پشتیبانی شده از هر سیستم ساخت یکسان نیستند. جدول زیر را برای انتخاب یک سیستم ساخت مناسب بررسی کنید.
ویژگی | بازل | CMake |
---|---|---|
زنجیره های ابزار از پیش تعریف شده | armhf, aarch64 | armel, armhf, aarch64 |
زنجیر ابزار سفارشی | سخت تر برای استفاده | آسان برای استفاده |
TF ops را انتخاب کنید | پشتیبانی می شود | پشتیبانی نمی شود |
نماینده GPU | فقط برای اندروید موجود است | هر پلتفرمی که از OpenCL پشتیبانی می کند |
XNNPack | پشتیبانی می شود | پشتیبانی می شود |
چرخ پایتون | پشتیبانی می شود | پشتیبانی می شود |
C API | پشتیبانی می شود | پشتیبانی می شود |
C++ API | برای پروژه های بازل پشتیبانی می شود | برای پروژه های CMake پشتیبانی می شود |
کامپایل متقابل برای ARM با CMake
اگر یک پروژه CMake دارید یا اگر می خواهید از یک زنجیره ابزار سفارشی استفاده کنید، بهتر است از CMake برای کامپایل متقابل استفاده کنید. برای این کار یک صفحه کامپایل متقابل LiteRT با CMake جداگانه وجود دارد.
کامپایل متقابل برای ARM با Bazel
اگر پروژه Bazel دارید یا می خواهید از TF ops استفاده کنید، بهتر است از سیستم ساخت Bazel استفاده کنید. شما از زنجیره ابزار یکپارچه ARM GCC 8.3 با Bazel برای ساخت یک کتابخانه مشترک ARM32/64 استفاده خواهید کرد.
معماری هدف | پیکربندی Bazel | دستگاه های سازگار |
---|---|---|
armhf (ARM32) | --config=elinux_armhf | RPI3، RPI4 با سیستم عامل Raspberry Pi 32 بیتی |
AArch64 (ARM64) | --config=elinux_aarch64 | Coral، RPI4 با اوبونتو 64 بیتی |
دستورالعملهای زیر روی رایانه شخصی ۶۴ بیتی اوبونتو 16.04.3 (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 نیاز دارید.
و غیره
شما همچنین می توانید سایر اهداف Bazel را با زنجیره ابزار بسازید. در اینجا چند هدف مفید آورده شده است.
- //tensorflow/lite/tools/benchmark:benchmark_model
- //tensorflow/lite/examples/label_image:label_image