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

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

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

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

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

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

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

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

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

writepid /dev/stune/nnapi-hal/tasks