Ejecuta pruebas de Mobly de NPU Manager

El paquete CtsNpuManagerMoblyTestCases verifica la compatibilidad del dispositivo con el NpuManager servicio, que se agregó en Android 17 (nivel de API 37). Estas pruebas basadas en Mobly evalúan la priorización de la carga de trabajo de la NPU, garantizan que las cargas de trabajo de la NPU de la app en primer plano reciban una prioridad más alta que las de segundo plano y validan el control de acceso a la NPU.

Prueba la configuración

Los parámetros predeterminados globales de este paquete de pruebas están optimizados para dispositivos de referencia. Dado que las capacidades de hardware de la NPU pueden variar en diferentes dispositivos, ajusta los parámetros de configuración de la prueba para garantizar que las pruebas se ejecuten correctamente en tu hardware.

Por qué es necesario el ajuste

El núcleo de la prueba de priorización test_foreground_app_finishes_first se basa en una condición de carrera, ya que evalúa si la app en primer plano finaliza sus inferencias antes que la app en segundo plano. Para garantizar que la prueba cumpla de manera confiable con su requisito de estabilidad para aprobar dos de tres ejecuciones, configura estos parámetros para que coincidan con las velocidades específicas de la NPU de tu dispositivo.

El archivo de configuración se encuentra en el árbol de origen de Android en packages/modules/NpuManager/tests/cts/mobly_config.yaml.

Parámetros configurables

Cuando ajustes las pruebas para tu dispositivo, ajusta los siguientes parámetros en el archivo YAML. Todos los valores numéricos deben ser mayores que cero, y el retraso en primer plano debe ser de al menos 0.5 seconds, el valor predeterminado.

  • foreground_delay_seconds

    • Descripción: Es la ventaja en segundos que se le da a la app en segundo plano antes de que la app en primer plano active su inferencia. La secuencia es la siguiente: La app en segundo plano comienza las inferencias -> [la prueba espera foreground_delay_seconds] -> la app en primer plano comienza las inferencias.
    • Predeterminado: 0.5
    • Guía de ajuste: Un retraso mayor le da a la app en segundo plano más tiempo para procesar las inferencias antes de que comience la app en primer plano. La app en primer plano debe comenzar sus inferencias aproximadamente a la mitad de la carga de trabajo de la app en segundo plano.
  • foreground_test_num_iterations_per_thread

    • Descripción: Es la cantidad de bucles de inferencia consecutivos que ejecuta cada subproceso individual para la prueba test_foreground_app_finishes_first para la app en primer plano y en segundo plano.
    • Predeterminado: 30
  • foreground_test_num_threads

    • Descripción: Es la cantidad de subprocesos simultáneos que se generan para ejecutar inferencias simultáneamente para la prueba test_foreground_app_finishes_first para la app en primer plano y en segundo plano.
    • Predeterminado: 4

Ejecuta las pruebas

Una vez que el dispositivo esté configurado y conectado, ejecuta el paquete con los comandos estándar de CTS Tradefed.

Para ejecutar el módulo con CTS Tradefed, haz lo siguiente:

cts-tradefed run cts -m CtsNpuManagerMoblyTestCases