استكشاف الأجهزة وإعدادها

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

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

التنفيذ

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

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

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

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

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