שיטות מומלצות להטמעת מנהלי התקנים של NNAPI

במאמר הזה מתוארות שיטות מומלצות להטמעת מנהלי התקנים של ממשק API של רשתות נוירונים (NNAPI), כדי לאפשר למפתחי אפליקציות להשתמש ב-NNAPI באופן נרחב.

קיצור זמני ההפעלה

אם הנהג משנה את המשקולות של דגם בשימוש הראשון, חשוב לוודא שהנהג תומך בשמירה במטמון של הידור, וכך מקצר את הזמן המשמש להידור כשהאפליקציה מופעלת. הפעולה הזו חשובה כי אפליקציות עשויות להימנע משימוש בהאצת חומרה אם זמני ההפעלה ארוכים מדי. לדוגמה, לאפליקציות מסוימות יש משקל של יותר מ-100MB, וכל פעם שמשיקים את האפליקציה לא נעשה בו שימוש,

קיצור זמן אחזור מינימלי

כדי לוודא שהמודלים משתמשים בהאצת חומרה, חשוב לקצר את זמן האחזור המינימלי במנהלי התקנים. אפליקציות רבות משתמשות במודלים קטנים שמופעלים מספר פעמים, ואם זמן האחזור המינימלי לביצוע עומס עבודה ארוך מדי, למשל כמה אלפיות שנייה, יכול להיות שמודלים מריצים את עומס העבודה במעבד (CPU), שנדרש להרצה של אלפיות שנייה או שתיים בלבד, במקום להשתמש בהאצת חומרה. חשוב להיזהר מסנכרון של שרשורים יקרים.

שימוש בקבוצת NN HAL SchedTune

במכשירי Android מגרסה 11 ואילך, AOSP כולל קבוצה ייעודית ל-SchedTune של NN HAL, שמאפשרת לבצע עיבודים בתהליכי NN HAL באמצעות ליבות גדולות, בדומה להטמעה באותו תהליך ב-top-app cgroup המוגדר מראש. השימוש בקבוצת SheedTune הזו מפחית את התקורה של הנהגים, במיוחד במודלים קטנים.

כדי להשתמש בקבוצת SchedTune, מוסיפים את השורה הבאה לקובץ init.rc של תהליך NN HAL:

writepid /dev/stune/nnapi-hal/tasks