No Android 10, a API Neural Networks (NNAPI) apresenta funções que permitem que bibliotecas e apps do framework de aprendizado de máquina recebam informações sobre os dispositivos disponíveis e especifiquem em quais dispositivos executar um modelo. A disponibilização de informações sobre os dispositivos disponíveis permite que os apps saibam a versão exata dos drivers encontrados no dispositivo para evitar incompatibilidades conhecidas. Ao conceder aos apps a capacidade de especificar quais dispositivos precisam executar seções diferentes de um modelo, os apps podem ser otimizados para o produto em que são implantados.
O suporte à descoberta e atribuição de dispositivos é necessário para implementações da HAL NN 1.2.
Implementação
Para oferecer suporte aos recursos de descoberta e atribuição de dispositivos na NNAPI, implemente
getType
e
getVersionString
em IDevice.hal
para permitir que o framework receba o tipo de dispositivo e a versão
do driver.
Para cada dispositivo, especifique o tipo como uma das categorias a seguir, conforme
especificado em
DeviceType
em
types.hal
.
OTHER
:um dispositivo que não se enquadra em nenhuma das outras categorias, incluindo uma interface heterogênea, que é uma única interfaceIDevice
que gerencia vários dispositivos, possivelmente de tipos diferentes. Um driver com uma interface heterogênea também precisa expor interfacesIDevice
separadas que correspondem a dispositivos individuais para permitir que um aplicativo escolha entre esses dispositivos.CPU
:uma CPU com um ou vários núcleos.GPU
:uma GPU que pode executar modelos NNAPI e acelerar APIs gráficas, como OpenGL ES e Vulkan.ACCELERATOR
:uma unidade de processamento neural (NPU, na sigla em inglês) dedicada.
Implemente
getVersionString
em IDevice.hal
para receber a string de versão da implementação do dispositivo.
Esse método precisa retornar uma string legível por humanos. O formato da
string é específico do fornecedor. Essa string precisa ser diferente para cada nova
versão de um driver.
O nome da interface IDevice
precisa seguir o formato
{VENDOR}-{DEVICE_NAME}
.