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

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

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

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

تقليل الحد الأدنى من الكمون

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

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

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

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

writepid /dev/stune/nnapi-hal/tasks