Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.
Se usó la API de Cloud Translation para traducir esta página.
Switch to English

Descubrimiento y asignación de dispositivos

En Android 10, la API de redes neuronales (NNAPI) presenta funciones que permiten a las bibliotecas y aplicaciones del marco de aprendizaje automático obtener información sobre los dispositivos disponibles y especificar en qué dispositivos ejecutar un modelo. Proporcionar información sobre los dispositivos disponibles permite que las aplicaciones obtengan la versión exacta de los controladores que se encuentran en el dispositivo para evitar incompatibilidades conocidas. Al otorgar a las aplicaciones la capacidad de especificar qué dispositivos ejecutarán diferentes secciones de un modelo, las aplicaciones se pueden optimizar para el producto en el que se implementan.

Se requiere compatibilidad con el descubrimiento y la asignación de dispositivos para las implementaciones de NN HAL 1.2.

Implementación

Para admitir las funciones de asignación y descubrimiento de dispositivos en NNAPI, implemente getType y getVersionString en IDevice.hal para permitir que el marco obtenga el tipo de dispositivo y la versión del controlador.

Para cada dispositivo, especifique el tipo como una de las siguientes categorías como se especifica en DeviceType en types.hal .

  • OTHER : un dispositivo que no se incluye en ninguna de las otras categorías, incluida una interfaz heterogénea, que es una única interfaz IDevice que administra varios dispositivos, posiblemente de diferentes tipos. Un controlador con una interfaz heterogénea también debe exponer interfaces IDevice independientes que correspondan a dispositivos individuales para permitir que una aplicación elija entre esos dispositivos.
  • CPU : CPU un solo núcleo o de varios núcleos.
  • GPU : una GPU que puede ejecutar modelos NNAPI y acelerar API de gráficos como OpenGL ES y Vulkan.
  • ACCELERATOR : Una unidad de procesamiento neuronal (NPU) dedicada.

Implemente getVersionString en IDevice.hal para obtener la cadena de versión de la implementación del dispositivo. Este método debe devolver una cadena que sea legible por humanos. El formato de la cadena es específico del proveedor. La cadena de versión debe ser diferente para cada nueva versión de un controlador.

El nombre de la interfaz de IDevice debe seguir el {VENDOR}-{DEVICE_NAME} .