أفضل ممارسات تنفيذ برنامج تشغيل NNAPI

توضّح هذه الصفحة أفضل الممارسات لتنفيذ برامج تشغيل Neural Networks API (NNAPI) للسماح باعتماد NNAPI على نطاق واسع من قِبل مطوّري التطبيقات.

إبقاء أوقات بدء التشغيل قصيرة

إذا حول السائق أوزان نموذج عند الاستخدام الأول، تأكد من يدعم برنامج التشغيل التخزين المؤقت للتجميع، مما يقلل من الوقت المستخدم في التحويل عند تشغيل التطبيق. وهذا مهم لأنّ التطبيقات قد تتجنّب استخدام الأجهزة. سرعة التشغيل إذا كانت أوقات بدء التشغيل طويلة جدًا. على سبيل المثال، تتضمن بعض التطبيقات أكثر من 100 ميغابايت من الأوزان، وتحويل هذه الأوزان في كل مرة يتم فيها تشغيل التطبيق يُعدّ أمرًا غير مجدٍ.

تقليل وقت الاستجابة

ولضمان استخدام النماذج لتسريع الأجهزة، من المهم تقليل الحد الأدنى من وقت الاستجابة في برامج التشغيل. تستخدم العديد من التطبيقات نماذج صغيرة يتم تنفيذها عدة مرات وإذا كان الحد الأدنى لوقت الاستجابة لتنفيذ عبء العمل كبيرًا للغاية، قد تستغرق النماذج في بعض الملي ثانية مثلاً عبء العمل على وحدة المعالجة المركزية (CPU)، يستغرق واحدًا أو اثنين من المللي ثانية، بدلاً من باستخدام تسريع الأجهزة. يجب توخّي الحذر من مزامنة سلاسل المحادثات المكلفة.

استخدام مجموعة 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