Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.

Descubrimiento y asignación de dispositivos

En Android 10, las Redes Neuronales API (NNAPI) Introduce funciones que permiten el aprendizaje de máquina bibliotecas marco y aplicaciones para obtener información sobre los dispositivos disponibles y especificar qué dispositivos para ejecutar un modelo en. 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 apoyar la detección de dispositivos y funciones de asignación de NNAPI, implementar getType y getVersionString en IDevice.hal para permitir que el marco para obtener 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 dispositivo A que no cae en ninguna de las otras categorías, incluyendo una interfaz heterogénea, que es una sola: IDevice interfaz que gestiona múltiples dispositivos, posiblemente de diferentes tipos. Un conductor con una interfaz heterogénea también debe exponer separadas IDevice interfaces que corresponden a los dispositivos individuales para permitir una aplicación para elegir de dichos dispositivos.
  • CPU : Un solo núcleo o CPU multinúcleo.
  • GPU : Una GPU que se pueden ejecutar modelos NNAPI y acelerar APIs gráficas como OpenGL ES y Vulkan.
  • ACCELERATOR : Una unidad de procesamiento neuronal específica (NPU).

Implementar getVersionString en IDevice.hal para conseguir la cadena de versión de la aplicació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 IDevice interfaz debe seguir el {VENDOR}-{DEVICE_NAME} formato.