במאמר הזה מתוארות שיטות מומלצות להטמעת מנהלי התקנים של ממשק API של רשתות נוירונים (NNAPI), כדי לאפשר למפתחי אפליקציות להשתמש ב-NNAPI באופן נרחב.
זמני הפעלה קצרים
אם הנהג משנה את המשקולות של דגם בשימוש הראשון, חשוב לוודא שהנהג תומך בשמירה במטמון של הידור, וכך מקצר את הזמן המשמש להידור כשהאפליקציה מופעלת. זה חשוב כי אפליקציות עשויות להימנע משימוש בהאצהרת חומרה אם זמני ההפעלה ארוכים מדי. לדוגמה, לאפליקציות מסוימות יש משקל של יותר מ-100MB, וכל פעם שמשיקים את האפליקציה לא נעשה בו שימוש,
הפחתת זמן האחזור המינימלי
כדי לוודא שהמודלים משתמשים בהאצת חומרה, חשוב לקצר את זמן האחזור המינימלי במנהלי התקנים. אפליקציות רבות משתמשות במודלים קטנים שמופעלים מספר פעמים, ואם זמן האחזור המינימלי לביצוע עומס עבודה ארוך מדי, למשל כמה אלפיות שנייה, יכול להיות שמודלים מריצים את עומס העבודה במעבד (CPU), שנדרש להרצה של אלפיות שנייה או שתיים בלבד, במקום להשתמש בהאצת חומרה. חשוב להיזהר מסנכרון של שרשורים יקר.
שימוש בקבוצה NN HAL SchedTune
במכשירי Android מגרסה 11 ואילך, AOSP כולל קבוצה ייעודית ל-SchedTune של NN HAL, שמאפשרת לבצע עיבודים בתהליכי NN HAL באמצעות ליבות גדולות, בדומה להטמעה באותו תהליך ב-top-app
cgroup המוגדר מראש. השימוש בקבוצה הזו של SchedTune מפחית את התקורה של מנהל ההתקן, במיוחד במודלים קטנים.
כדי להשתמש בקבוצת SchedTune, מוסיפים את השורה הבאה לקובץ init.rc
של תהליך NN HAL:
writepid /dev/stune/nnapi-hal/tasks