Cihaz bulma ve atama

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 bir IDevice 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.