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

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

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

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

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

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

استخدام مجموعة NN HAL SchedTune

بدءًا من الإصدار 11 من نظام التشغيل Android أو الإصدارات الأحدث، تتضمن AOSP حزمة من قناة NN HAL SchedTune تسمح لعمليات المعالجة بين عمليات NN HAL باستخدام فرق نوويًا، على غرار تنفيذ العملية نفسها ضمن وحدة top-app مجموعة مشتركة. استخدام هذا تقلل مجموعة SchedTune من أعباء السائقين، وخاصةً للطُرز الصغيرة.

لاستخدام مجموعة SchedTune، أضف السطر التالي إلى ملف init.rc عملية NN HAL:

writepid /dev/stune/nnapi-hal/tasks