ב-Android 10, Neural Networks API (NNAPI) כולל פונקציות שמאפשרות לספריות ולאפליקציות של מסגרת למידת המכונה לקבל מידע על המכשירים הזמינים ולציין באילו מכשירים להריץ מודל. קבלת מידע על המכשירים הזמינים מאפשרת לאפליקציות לקבל את הגרסה המדויקת של מנהלי ההתקנים שנמצאים במכשיר, כדי למנוע אי-תאימות ידועה. כשנותנים לאפליקציות את היכולת לציין אילו מכשירים יפעלו קטעים שונים של מודל, אפשר לבצע אופטימיזציה של האפליקציות בהתאם למוצר שבו הן נפרסו.
תמיכה בגילוי ובהקצאה של מכשירים נדרשת להטמעות של NN HAL 1.2.
הטמעה
כדי לתמוך בתכונות הגילוי וההקצאה של המכשיר ב-NNAPI, מטמיעים את getType
ואת getVersionString
ב-IDevice.hal
כדי לאפשר למסגרת לקבל את סוג המכשיר ואת גרסת הנהג.
לכל מכשיר, מציינים את הסוג באחת מהקטגוריות הבאות, כפי שמפורט ב-DeviceType
בקטע types.hal
.
OTHER
: מכשיר שלא שייך לאף אחת מהקטגוריות האחרות, כולל ממשק הטרוגני, שהוא ממשקIDevice
יחיד שמנהל כמה מכשירים, יכול להיות מסוגים שונים. כדי לאפשר לאפליקציה לבחור מבין המכשירים האלה, צריך גם לחשוף במנהל עם ממשק הטרוגני ממשקיIDevice
נפרדים שתואמים למכשירים נפרדים.CPU
: מעבד עם ליבה אחת או מעבד מרובה ליבות.GPU
: מעבד GPU שיכול להריץ מודלים של NNAPI ולהאיץ ממשקי API גרפיים כמו OpenGL ES ו-Vulkan.ACCELERATOR
: יחידת עיבוד עצבי (NPU) ייעודית.
מטמיעים את getVersionString
ב-IDevice.hal
כדי לקבל את מחרוזת הגרסה של הטמעת המכשיר.
השיטה הזו צריכה להחזיר מחרוזת שאנשים יכולים לקרוא. הפורמט של המחרוזת הוא ספציפי לספק. מחרוזת הגרסה חייבת להיות שונה לכל גרסה חדשה של מנהל התקן.
שם הממשק IDevice
חייב להיות בפורמט {VENDOR}-{DEVICE_NAME}
.