Cihaz keşfi ve ataması

Android 10'da Neural Networks API (NNAPI), makine öğrenimi çerçeve kitaplıklarının ve uygulamalarının mevcut cihazlar hakkında bilgi almasına ve bir modelin hangi cihazlarda çalışacağını belirtmesine olanak tanıyan 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ümlerinin hangi cihazlarda çalışacağını belirtme olanağı sunarak uygulamaları dağıtıldıkları ürün için optimize edebilirsiniz.

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

Uygulama

NNAPI'deki cihaz keşfi ve atama özelliklerini desteklemek için çerçevenin cihaz türünü ve sürücü sürümünü almasına izin vermek üzere IDevice.hal içinde getType ve getVersionString uygulayın.

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ürde birden fazla cihazı yöneten tek bir IDevicearayüzü olan heterojen arayüz de dahil olmak üzere diğer kategorilerin hiçbirine girmeyen 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 sinir işlem birimi (NPU).

Cihaz uygulamasının sürüm dizesini almak için IDevice.hal içinde getVersionString uygulayın. Bu yöntem, kullanıcıların okuyabileceği bir dize döndürmelidir. Dizenin biçimi tedarikçiye özgüdür. Sürüm dizesi, 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çimine uygun olmalıdır.