इस पेज पर, एआरएम पर आधारित कंप्यूटरों के लिए 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