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

בדף הזה מתוארות שיטות מומלצות להטמעת ממשק 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