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

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

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

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

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

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

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

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

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

writepid /dev/stune/nnapi-hal/tasks