एनएनएपीआई ड्राइवर को लागू करने के सबसे सही तरीके

इस पेज पर, 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