इस पेज पर, Neural Networks API (NNAPI) के ड्राइवर लागू करने के सबसे सही तरीके बताए गए हैं. इससे ऐप्लिकेशन डेवलपर, NNAPI का ज़्यादा से ज़्यादा इस्तेमाल कर पाएंगे.
ऐप्लिकेशन के खुलने में कम समय लगे
अगर आपका ड्राइवर पहली बार इस्तेमाल करने पर मॉडल के वज़न में बदलाव करता है, तो पक्का करें कि ड्राइवर, कंपाइलेशन कैश मेमोरी का इस्तेमाल करता हो. इससे, ऐप्लिकेशन शुरू होने पर कंपाइलेशन में लगने वाला समय कम हो जाता है. यह ज़रूरी है, क्योंकि ऐप्लिकेशन के शुरू होने में ज़्यादा समय लगने पर, हो सकता है कि वे हार्डवेयर ऐक्सेलरेशन का इस्तेमाल न करें. उदाहरण के लिए, कुछ ऐप्लिकेशन का साइज़ 100 एमबी से ज़्यादा होता है. ऐसे में, हर बार ऐप्लिकेशन को लॉन्च करने पर इनका ट्रांसफ़ॉर्मेशन करना बेकार है.
कम से कम लेटेंसी को कम करना
यह पक्का करने के लिए कि मॉडल, हार्डवेयर एक्सेलरेशन का इस्तेमाल करें, ड्राइवर में कम से कम इंतज़ार का समय कम करना ज़रूरी है. कई ऐप्लिकेशन छोटे मॉडल का इस्तेमाल करते हैं, जिन्हें कई बार चलाया जाता है. अगर किसी वर्कलोड को पूरा करने में लगने वाला कम से कम इंतज़ार का समय बहुत ज़्यादा है, जैसे कि कुछ मिलीसेकंड, तो मॉडल, वर्कलोड को सीपीयू पर चला सकते हैं. इसमें हार्डवेयर एक्सेलरेशन का इस्तेमाल करने के बजाय, सिर्फ़ एक या दो मिलीसेकंड लगते हैं. थ्रेड सिंक करने की महंगी प्रोसेस से बचें.
NN HAL SchedTune ग्रुप का इस्तेमाल करना
Android 11 या उसके बाद के वर्शन में, AOSP में एक खास
NN HAL
SchedTune
ग्रुप शामिल है. इससे इंटरप्रोसेस NN HAL प्रोसेस, बिग प्रोसेस का इस्तेमाल कर सकती हैं. यह प्रोसेस, पहले से तय किए गए
top-app
cgroup में एक ही प्रोसेस लागू करने जैसी है. इस SchedTune ग्रुप का इस्तेमाल करने से, ड्राइवर के लिए ज़रूरी मेमोरी कम हो जाती है. खास तौर पर, छोटे मॉडल के लिए.
SchedTune ग्रुप का इस्तेमाल करने के लिए, NN HAL प्रोसेस की init.rc
फ़ाइल में यह लाइन जोड़ें:
writepid /dev/stune/nnapi-hal/tasks