NNAPI ड्राइवर को लागू करने के सबसे सही तरीके

इस पेज पर, Neural Networks API (NNAPI) को लागू करने के सबसे सही तरीके बताए गए हैं दिए गए हैं, ताकि ऐप्लिकेशन डेवलपर ज़्यादा से ज़्यादा एनएनएपीआई का इस्तेमाल कर सकें.

ऐप्लिकेशन के खुलने में कम समय लगे

अगर आपका ड्राइवर पहली बार इस्तेमाल करने पर मॉडल के वेट में बदलाव करता है, तो पक्का करें कि ड्राइवर, कंपाइलेशन कैश मेमोरी का इस्तेमाल करता हो. इससे ऐप्लिकेशन शुरू होने पर, कंपाइलेशन में लगने वाला समय कम हो जाता है. यह ज़रूरी है, क्योंकि ऐप्लिकेशन के शुरू होने में ज़्यादा समय लगने पर, हो सकता है कि वे हार्डवेयर ऐक्सेलरेशन का इस्तेमाल न करें. उदाहरण के लिए, कुछ ऐप्लिकेशन का साइज़ 100 एमबी से ज़्यादा होता है. ऐसे में, हर बार ऐप्लिकेशन को लॉन्च करने पर, इन ऐप्लिकेशन को ट्रांसफ़ॉर्म करना बेकार है.

इंतज़ार का समय कम करें

यह पक्का करने के लिए कि मॉडल, हार्डवेयर एक्सेलरेशन का इस्तेमाल करें, ड्राइवर में कम से कम इंतज़ार का समय कम करना ज़रूरी है. कई ऐप्लिकेशन, एक्ज़ीक्यूट किए जाने वाले छोटे मॉडल का इस्तेमाल करते हैं कई बार काम करते हैं और अगर वर्कलोड को पूरा करने में कम से कम लगने वाला समय बहुत ज़्यादा है, जैसे कुछ मिलीसेकंड, मॉडल सीपीयू पर वर्कलोड चला सकते हैं, जो सिर्फ़ के बजाय, एक या दो मिलीसेकंड लगते हैं हार्डवेयर त्वरणों का इस्तेमाल करके. महंगे थ्रेड सिंक करने से सावधान रहें.

NN HAL SchedTune ग्रुप का इस्तेमाल करना

Android 11 या उसके बाद के वर्शन में, AOSP में एक खास NN HAL SchedTune ग्रुप शामिल होता है. इससे इंटरप्रोसेस NN HAL प्रोसेस, बिग कोर का इस्तेमाल कर सकती हैं. यह ठीक वैसा ही है जैसे पहले से तय किए गए top-app cgroup में एक ही प्रोसेस लागू करना. इस SchedTune ग्रुप का इस्तेमाल करने से, ड्राइवर के लिए ज़रूरी मेमोरी का इस्तेमाल कम होता है. खास तौर पर, छोटे मॉडल के लिए.

SchedTune ग्रुप का इस्तेमाल करने के लिए, नीचे दी गई लाइन को इसकी init.rc फ़ाइल में जोड़ें NN HAL प्रोसेस:

writepid /dev/stune/nnapi-hal/tasks