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

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

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

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

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

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

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

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

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

writepid /dev/stune/nnapi-hal/tasks