การค้นพบและการกำหนดอุปกรณ์

ใน 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}