رصد الأجهزة وتحديدها

في نظام التشغيل Android 10، تقدّم واجهة برمجة التطبيقات للشبكات العصبية (NNAPI) دوال تتيح لمكتبات وأدوات تعلُّم الآلة الحصول على معلومات حول الأجهزة المتاحة وتحديد الأجهزة التي سيتم تنفيذ نموذج عليها. يسمح توفير معلومات حول الأجهزة المتاحة للتطبيقات بالحصول على الإصدار الدقيق من برامج التشغيل المتوفّرة على الجهاز لتجنُّب حالات عدم التوافق المعروفة. من خلال منح التطبيقات القدرة على تحديد الأجهزة التي ستنفّذ أقسامًا مختلفة من أحد النماذج، يمكن تحسين التطبيقات للمنتج الذي يتم نشرها عليه.

يجب توفير دعم لاكتشاف الأجهزة وتحديدها في عمليات تنفيذ NN HAL 1.2.

التنفيذ

لإتاحة ميزتَي العثور على الأجهزة وتحديدها في NNAPI، عليك تنفيذ getType و getVersionString في IDevice.hal للسماح لإطار العمل بالحصول على نوع الجهاز وإصدار برنامج التشغيل.

بالنسبة إلى كل جهاز، حدِّد النوع كإحدى الفئات التالية كما هو موضّح في DeviceType في types.hal.

  • OTHER: جهاز لا يندرج ضمن أي من الفئات الأخرى، بما في ذلك واجهة غير متجانسة، وهي واجهة IDevice واحدة تدير أجهزة متعددة، ربما من أنواع مختلفة. يجب أن يعرض برنامج التشغيل الذي يتضمّن واجهة غير متجانسة أيضًا واجهات IDevice منفصلة تتوافق مع الأجهزة الفردية للسماح لأحد التطبيقات بالاختيار من بين هذه الأجهزة.
  • CPU: وحدة معالجة مركزية أحادية النواة أو متعدّدة النواة
  • GPU: وحدة معالجة الرسومات (GPU) التي يمكنها تشغيل نماذج NNAPI وتسريع واجهات برمجة التطبيقات للرسومات، مثل OpenGL ES وVulkan
  • ACCELERATOR: وحدة معالجة عصبية (NPU) مخصّصة

نفِّذ getVersionString في IDevice.hal للحصول على سلسلة إصدار عملية التنفيذ على الجهاز. يجب أن تعرض هذه الطريقة سلسلة يمكن قراءتها. ويختلف تنسيق السلسلة حسب المورّد. يجب أن يكون سلسلة الإصدار مختلفة لكل إصدار جديد من برنامج التشغيل.

يجب أن يتّبع اسم واجهة IDevice التنسيق {VENDOR}-{DEVICE_NAME}.