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

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

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

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

הפחתת זמן האחזור המינימלי

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

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

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

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

writepid /dev/stune/nnapi-hal/tasks