في Android 10، تقدّم واجهة برمجة التطبيقات للشبكات العصبية (NNAPI) وظائف تتيح للمكتبات والتطبيقات ضِمن إطار عمل تعلُّم الآلة الحصول على معلومات حول الأجهزة المتاحة وتحديد الأجهزة المطلوب تنفيذ نموذج عليها. من خلال تقديم معلومات عن الأجهزة المتاحة، يمكن للتطبيقات الحصول على الإصدار الدقيق من برامج التشغيل المتوفّرة على الجهاز لتجنُّب حالات عدم التوافق المعروفة. من خلال منح التطبيقات القدرة على تحديد الأجهزة التي ستنفِّذ أقسامًا مختلفة من النموذج، يمكن تحسين التطبيقات للمنتج الذي يتم نشرها عليه.
يجب توفير إمكانية اكتشاف الأجهزة وتخصيصها من أجل تنفيذ معيار NN HAL 1.2.
التنفيذ
لإتاحة ميزتَي اكتشاف الجهاز وتحديد وظيفته في NNAPI، نفِّذ getType
وgetVersionString
في IDevice.hal
للسماح للإطار العملي بالحصول على نوع الجهاز وإصدار برنامج التشغيل.
حدِّد النوع لكل جهاز على أنّه إحدى الفئات التالية كما هو موضح في
DeviceType
في
types.hal
.
-
OTHER
: جهاز لا يندرج ضمن أي من الفئات الأخرى، بما في ذلك الواجهة غير المتجانسة، وهي واجهةIDevice
واحدة تدير أجهزة متعددة، قد تكون من أنواع مختلفة. ويجب أن يعرض برنامج التشغيل الذي لديه واجهة غير متجانسة أيضًا واجهاتIDevice
منفصلة تتوافق مع الأجهزة الفردية للسماح لتطبيق بالاختيار من بين هذه الأجهزة. -
CPU
: وحدة معالجة مركزية أحادية النواة أو متعددة النوى GPU
: وحدة معالجة رسومات يمكنها تشغيل نماذج NNAPI وتسريع واجهات برمجة التطبيقات للرسومات، مثل OpenGL ES وVulkanACCELERATOR
: وحدة معالجة عصبية مخصّصة (NPU)
تنفيذ
getVersionString
في IDevice.hal
للحصول على سلسلة الإصدار لتنفيذ الجهاز.
يجب أن تعرِض هذه الطريقة سلسلة يمكن لشخص عادي قراءتها. تنسيق السلسلة هو
خاص بالبائع. يجب أن يكون سلسلة الإصدار مختلفة لكل إصدار جديد
من برنامج تشغيل.
يجب أن يتّبع اسم واجهة IDevice
تنسيق {VENDOR}-{DEVICE_NAME}
.