Cihaz keşfi ve ataması

Android 10'da Sinir Ağları API'si (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 yürütüleceğini belirlemesine olanak tanıyan işlevler sunar. Kullanılabilir cihazlarla ilgili bilgilerin sağlanması, bilinen uyumsuzluklardan kaçınmak için uygulamaların cihazda bulunan sürücülerin tam sürümünü almasına olanak tanır. Uygulamalara, bir modelin farklı bölümlerini hangi cihazların çalıştıracağını belirleme yeteneği vererek 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'deki cihaz bulma ve atama özelliklerini desteklemek için IDevice.hal getType ve getVersionString uygulayarak çerçevenin cihaz türünü ve sürücü sürümünü almasına izin verin.

Her aygıt için türü, types.hal dosyasındaki DeviceType bölümünde belirtildiği gibi aşağıdaki kategorilerden biri olacak şekilde belirtin.

  • OTHER : Muhtemelen farklı türlerde birden fazla cihazı yöneten tek bir IDevice arayüzü olan heterojen bir arayüz de dahil olmak üzere diğer kategorilerin hiçbirine girmeyen bir cihaz. Heterojen bir arayüze sahip bir sürücünün, bir uygulamanın bu cihazlar arasından seçim yapmasına izin vermek için ayrı cihazlara karşılık gelen ayrı IDevice arayüzlerini de ortaya çıkarması gerekir.
  • CPU : Tek çekirdekli veya çok çekirdekli CPU.
  • GPU : NNAPI modellerini çalıştırabilen ve OpenGL ES ve Vulkan gibi grafik API'lerini hızlandırabilen bir GPU.
  • ACCELERATOR : Özel bir sinirsel işlem birimi (NPU).

Cihaz uygulamasının sürüm dizesini almak için IDevice.hal getVersionString uygulayın. Bu yöntemin insan tarafından okunabilen bir dize döndürmesi gerekir. Dizenin biçimi satıcıya özeldir. 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 uymalıdır.