توضّح هذه الصفحة أفضل الممارسات لتنفيذ ملفّات تشغيل Neural Networks API (NNAPI) للسماح باعتماد NNAPI على نطاق واسع من قِبل مطوّري التطبيقات.
تقليل وقت بدء التشغيل
إذا كان برنامج التشغيل يحوّل أوزان نموذج عند الاستخدام الأول، تأكَّد من أنّه يتوافق مع ميزة التخزين المؤقت للترجمة، ما يقلل من الوقت المستغرَق في الترجمة عند بدء تشغيل التطبيق. وهذا أمر مهم لأنّ التطبيقات قد تتجنّب استخدام ميزة "تسريع الأجهزة" إذا كانت أوقات بدء التشغيل طويلة جدًا. على سبيل المثال، تتضمن بعض التطبيقات أكثر من 100 ميغابايت من الأوزان، ويعد تحويل هذه الأوزان في كل مرة يتم فيها تشغيل التطبيق أمرًا غير مجدٍ.
تقليل الحد الأدنى لوقت الاستجابة
لضمان استخدام النماذج لتسريع الأجهزة، من المهم تقليل الحد الأدنى لوقت الاستجابة في برامج التشغيل. تستخدم العديد من التطبيقات نماذج صغيرة يتم تنفيذها مرارًا وتكرارًا، وإذا كان الحد الأدنى لوقت الاستجابة لتنفيذ إحدى عمليات المعالجة مرتفعًا جدًا، مثل بضعة مللي ثانية، قد تعمل النماذج على تنفيذ هذه العملية على وحدة المعالجة المركزية التي تتطلّب بدورها سوى ملي ثانية أو اثنتين، بدلاً من استخدام تقنيات تسريع الأجهزة. احرِص على عدم مزامنة المواضيع التي تتطلّب الكثير من الوقت.
استخدام مجموعة 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