ใน Android 10 นั้น Neural Networks API (NNAPI) แนะนำฟังก์ชันที่ช่วยให้ไลบรารีเฟรมเวิร์กการเรียนรู้ของเครื่องและแอปสามารถรับข้อมูลเกี่ยวกับอุปกรณ์ที่มีอยู่และระบุอุปกรณ์ที่จะใช้ดำเนินการโมเดลได้ การให้ข้อมูลเกี่ยวกับอุปกรณ์ที่มีอยู่ช่วยให้แอปสามารถรับเวอร์ชันที่แน่นอนของไดรเวอร์ที่พบในอุปกรณ์เพื่อหลีกเลี่ยงความไม่เข้ากันที่ทราบ ด้วยการให้แอปสามารถระบุได้ว่าอุปกรณ์ใดที่จะดำเนินการในส่วนต่างๆ ของโมเดล ทำให้แอปสามารถปรับให้เหมาะสมสำหรับผลิตภัณฑ์ที่ใช้งานได้
จำเป็นต้องมีการสนับสนุนสำหรับการค้นหาและการกำหนดอุปกรณ์สำหรับการใช้งาน NN HAL 1.2
การนำไปปฏิบัติ
เพื่อรองรับคุณสมบัติการค้นหาและการกำหนดอุปกรณ์ใน NNAPI ให้ใช้ getType
และ getVersionString
ใน IDevice.hal
เพื่ออนุญาตให้เฟรมเวิร์กรับประเภทอุปกรณ์และเวอร์ชันไดรเวอร์
สำหรับแต่ละอุปกรณ์ ให้ระบุประเภทเป็นหนึ่งในหมวดหมู่ต่อไปนี้ตามที่ระบุไว้ใน DeviceType
ใน types.hal
-
OTHER
: อุปกรณ์ที่ไม่อยู่ในหมวดหมู่อื่นๆ รวมถึงอินเทอร์เฟซที่ต่างกัน ซึ่งเป็นอินเทอร์เฟซIDevice
เดียวที่จัดการอุปกรณ์หลายเครื่อง อาจเป็นประเภทที่แตกต่างกัน ไดรเวอร์ที่มีอินเทอร์เฟซต่างกันควรเปิดเผยอินเทอร์เฟIDevice
ที่แยกจากกันซึ่งสอดคล้องกับอุปกรณ์แต่ละชิ้นเพื่อให้แอปพลิเคชันสามารถเลือกจากอุปกรณ์เหล่านั้นได้ -
CPU
: CPU คอร์เดียวหรือมัลติคอร์ -
GPU
: GPU ที่สามารถเรียกใช้โมเดล NNAPI และเร่งความเร็ว API กราฟิก เช่น OpenGL ES และ Vulkan -
ACCELERATOR
: หน่วยประมวลผลประสาท (NPU) โดยเฉพาะ
ใช้ getVersionString
ใน IDevice.hal
เพื่อรับสตริงเวอร์ชันของการใช้งานอุปกรณ์ เมธอดนี้จะต้องส่งคืนสตริงที่มนุษย์สามารถอ่านได้ รูปแบบของสตริงเป็นแบบเฉพาะของผู้ขาย สตริงเวอร์ชันจะต้องแตกต่างกันสำหรับไดรเวอร์เวอร์ชันใหม่แต่ละเวอร์ชัน
ชื่อของอินเทอร์เฟซ IDevice
ต้องเป็นไปตามรูปแบบ {VENDOR}-{DEVICE_NAME}