Android 10'da, Neural Networks API (NNAPI), makine öğrenimi çerçevesi kitaplıklarının ve uygulamalarının kullanılabilir cihazlar hakkında bilgi almasına ve bir modelin hangi cihazlarda yürütüleceğini belirtmesine olanak tanıyan işlevler sunar. Kullanılabilir cihazlar hakkında bilgi sağlamak, uygulamaların bilinen uyumsuzlukları önlemek için cihazda bulunan sürücülerin tam sürümünü almasına olanak tanır. Uygulamalara, bir modelin farklı bölümlerinin hangi cihazlarda yürütüleceğini belirtme olanağı tanıyarak uygulamalar, dağıtıldıkları ürün için optimize edilebilir.
NN HAL 1.2 uygulamaları için cihaz keşfi ve atama desteği gereklidir.
Uygulama
NNAPI'deki cihaz keşfi ve atama özelliklerini desteklemek için IDevice.hal içinde getType ve getVersionString'ı 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ü, DeviceType bölümünde types.hal içinde belirtildiği gibi aşağıdaki kategorilerden biri olarak belirtin.
OTHER: Farklı türlerde olabilecek birden fazla cihazı yöneten tek birIDevicearayüzü olan heterojen arayüz de dahil olmak üzere diğer kategorilerin hiçbirine girmeyen bir cihaz. Heterojen arayüze sahip bir sürücü, bir uygulamanın bu cihazlar arasından seçim yapmasına olanak tanımak için ayrı cihazlara karşılık gelen ayrıIDevicearayüzlerini de kullanıma sunmalıdır.CPU: Tek çekirdekli veya çok çekirdekli CPU.GPU: NNAPI modellerini çalıştırabilen ve OpenGL ES ile 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 içinde getVersionString'ı uygulayın.
Bu yöntem, kullanıcılar tarafından okunabilen bir dize döndürmelidir. Dizenin biçimi tedarikçiye özgüdür. Sürücünün her yeni sürümü için sürüm dizesi farklı olmalıdır.
IDevice arayüzünün adı, {VENDOR}-{DEVICE_NAME} biçiminde olmalıdır.