Cihaz keşfi ve ataması

Android 10'da Neural Networks API (NNAPI), makine öğrenimi çerçevesi kitaplıklarının ve uygulamalarının mevcut cihazlar hakkında bilgi almasını ve model yürütülecek cihazları belirtmesini sağlayan işlevler sunar. Mevcut cihazlar hakkında bilgi sağlamak, uygulamaların bilinen uyumsuzlukları önlemek için cihazda bulunan sürücülerin tam sürümlerini almalarına olanak tanır. Uygulamalara, bir modelin farklı bölümlerini hangi cihazların çalıştıracağını belirtme olanağı sağlayarak uygulamalar, dağıtıldıkları ürün için optimize edilebilir.

NN HAL 1.2 uygulamaları için cihaz bulma ve atama desteği gereklidir.

Uygulama

NNAPI'de cihaz bulma ve atama özelliklerini desteklemek için getType ve getVersionString özelliklerini IDevice.hal içinde uygulayarak çerçevenin cihaz türünü ve sürücü sürümünü almasına izin verin.

Her cihaz için türü, types.hal içindeki DeviceType bölümünde belirtildiği şekilde aşağıdaki kategorilerden biri olarak belirtin.

  • OTHER: Muhtemelen farklı türlerde birden çok cihazı yöneten tek bir IDevice arayüz olan heterojen arayüz de dahil olmak üzere diğer kategorilerin hiçbirine uymayan bir cihaz. Arabirimi heterojen olan bir sürücü, uygulamanın bu cihazlardan seçim yapabilmesi için her bir cihaza karşılık gelen ayrı IDevice arayüzlerini de göstermelidir.
  • CPU: Tek çekirdekli veya çok çekirdekli bir CPU.
  • GPU: NNAPI modellerini çalıştırabilen ve OpenGL ES ile Vulkan gibi grafik API'lerini hızlandırabilen bir GPU.
  • ACCELERATOR: Özel bir nöral işleme birimi (NPU).

Cihaz uygulamasının sürüm dizesini almak için IDevice.hal içinde getVersionString uygulayın. Bu yöntem, okunabilir bir dize döndürmelidir. Dizenin biçimi tedarikçiye özgüdür. Sürüm dizesi, bir sürücünün her yeni sürümü için farklı olmalıdır.

IDevice arayüzünün adı {VENDOR}-{DEVICE_NAME} biçiminde olmalıdır.