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 birIDevice
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.