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, 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 ç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
bölümündeki DeviceType
'de belirtildiği gibi aşağıdaki kategorilerden biri olarak belirtin.
OTHER
: Heterojen arayüz de dahil olmak üzere diğer kategorilerin hiçbirine girmeyen bir cihaz. Heterojen arayüz, farklı türlerde olabilecek birden fazla cihazı yöneten tek birIDevice
arayüzüdür. 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ıIDevice
arayü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ın okuyabileceği 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.