ARM बोर्ड के लिए LiteRT बनाएं

इस पेज पर, एआरएम पर आधारित कंप्यूटरों के लिए LiteRT लाइब्रेरी बनाने का तरीका बताया गया है.

LiteRT, दो बिल्ड सिस्टम के साथ काम करता है. साथ ही, हर बिल्ड सिस्टम में उपलब्ध सुविधाएँ एक जैसी नहीं होती हैं. सही बिल्ड सिस्टम चुनने के लिए, यहां दी गई टेबल देखें.

सुविधा Bazel CMake
पहले से तय की गई टूलचेन armhf, aarch64 armel, armhf, aarch64
पसंद के मुताबिक टूलचेन इस्तेमाल करना मुश्किल है इस्तेमाल करने में आसान
TF ऑपरेशंस चुनें समर्थित not supported
जीपीयू डेलिगेट सिर्फ़ Android के लिए उपलब्ध है OpenCL के साथ काम करने वाला कोई भी प्लैटफ़ॉर्म
XNNPack समर्थित समर्थित
Python Wheel समर्थित समर्थित
C API समर्थित काम करता है
C++ API Bazel प्रोजेक्ट के लिए उपलब्ध है CMake प्रोजेक्ट के लिए उपलब्ध है

CMake की मदद से, ARM के लिए क्रॉस-कंपाइलेशन

अगर आपके पास CMake प्रोजेक्ट है या आपको कस्टम टूलचेन का इस्तेमाल करना है, तो क्रॉस कंपाइलेशन के लिए CMake का इस्तेमाल करना बेहतर होगा. इसके लिए, CMake के साथ Cross compilation LiteRT पेज उपलब्ध है.

Bazel की मदद से ARM के लिए क्रॉस-कंपाइलेशन

अगर आपके पास Bazel प्रोजेक्ट है या आपको TF ऑपरेशंस का इस्तेमाल करना है, तो Bazel बिल्ड सिस्टम का इस्तेमाल करना बेहतर होगा. Bazel के साथ इंटिग्रेट किए गए ARM GCC 8.3 टूलचेन का इस्तेमाल करके, ARM32/64 शेयर की गई लाइब्रेरी बनाई जाएगी.

टारगेट आर्किटेक्चर Bazel कॉन्फ़िगरेशन इसके साथ काम करने वाले डिवाइस
armhf (ARM32) --config=elinux_armhf RPI3, RPI4 with 32 bit Raspberry Pi OS
AArch64 (ARM64) --config=elinux_aarch64 Coral, RPI4 with Ubuntu 64 bit

यहां दिए गए निर्देशों को Ubuntu 16.04.3 64-bit PC (AMD64) और TensorFlow devel docker image tensorflow/tensorflow:devel पर टेस्ट किया गया है.

Bazel के साथ LiteRT को क्रॉस कंपाइल करने के लिए, यह तरीका अपनाएं:

पहला चरण. Bazel इंस्टॉल करना

Bazel, TensorFlow के लिए मुख्य बिल्ड सिस्टम है. Bazel build system का सबसे नया वर्शन इंस्टॉल करें.

दूसरा चरण. TensorFlow रिपॉज़िटरी को क्लोन करना

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

तीसरा चरण. 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 रिपॉज़िटरी से tensorflow/lite/ में मौजूद सभी हेडर फ़ाइलों को शामिल करना होगा. इसके अलावा, आपको FlatBuffers और Abseil से हेडर फ़ाइलों की ज़रूरत होगी.

वगैरह

टूलचेन की मदद से, अन्य Bazel टारगेट भी बनाए जा सकते हैं. यहां कुछ काम के टारगेट दिए गए हैं.

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