In Android 10, l'API Neural Networks (NNAPI) introduce funzioni che consentono alle librerie e alle app del framework di machine learning di ottenere informazioni sui dispositivi disponibili e specificare su quali dispositivi eseguire un modello. Fornire informazioni sui dispositivi disponibili consente alle app di ottenere la versione esatta dei driver trovati sul dispositivo per evitare incompatibilità note. Consentendo alle app di specificare quali dispositivi devono eseguire diverse sezioni di un modello, le app possono essere ottimizzate per il prodotto su cui vengono implementate.
Il supporto per il rilevamento e l'assegnazione dei dispositivi è necessario per le implementazioni NN HAL 1.2.
Implementazione
Per supportare le funzionalità di rilevamento e assegnazione dei dispositivi in NNAPI, implementa
getType
e
getVersionString
in IDevice.hal
per consentire al framework di ottenere il tipo di dispositivo e la versione del driver.
Per ogni dispositivo, specifica il tipo come una delle seguenti categorie, come
specificato in
DeviceType
in
types.hal
.
OTHER
:un dispositivo che non rientra in nessuna delle altre categorie, inclusa un'interfaccia eterogenea, ovvero una singola interfacciaIDevice
che gestisce più dispositivi, possibilmente di tipi diversi. Un driver con un'interfaccia eterogenea deve anche esporre interfacceIDevice
separate che corrispondono a singoli dispositivi per consentire a un'applicazione di scegliere tra questi dispositivi.CPU
: una CPU single-core o multi-core.GPU
: una GPU in grado di eseguire modelli NNAPI e accelerare le API grafiche come OpenGL ES e Vulkan.ACCELERATOR
: un'unità di elaborazione neurale (NPU) dedicata.
Implementa
getVersionString
in IDevice.hal
per ottenere la stringa della versione dell'implementazione del dispositivo.
Questo metodo deve restituire una stringa leggibile. Il formato della
stringa è specifico del fornitore. La stringa di versione deve essere diversa per ogni nuova
versione di un driver.
Il nome dell'interfaccia IDevice
deve seguire il formato {VENDOR}-{DEVICE_NAME}
.