Executar testes do NPU Manager Mobly

O pacote CtsNpuManagerMoblyTestCases verifica a compatibilidade do dispositivo com o NpuManager serviço, adicionado no Android 17 (nível 37 da API). Esses testes baseados no Mobly avaliam a priorização da carga de trabalho da NPU, garantem que as cargas de trabalho da NPU do app em primeiro plano recebam maior prioridade do que as em segundo plano e validam o controle de acesso da NPU.

Configuração do teste

Os parâmetros globais padrão para esse pacote de testes são otimizados para dispositivos de referência. Como os recursos de hardware da NPU podem variar entre dispositivos diferentes, ajuste os parâmetros de configuração do teste para garantir que os testes sejam executados corretamente no hardware.

Por que o ajuste é necessário

O núcleo do teste de priorização test_foreground_app_finishes_first depende de uma condição de corrida, avaliando se o app em primeiro plano conclui as inferências antes do app em segundo plano. Para garantir que o teste atenda de maneira confiável ao requisito de estabilidade para aprovar duas de três execuções, configure esses parâmetros para corresponder às velocidades específicas da NPU do dispositivo.

O arquivo de configuração está localizado na árvore de origem do Android em packages/modules/NpuManager/tests/cts/mobly_config.yaml.

Parâmetros configuráveis

Ao ajustar os testes para o dispositivo, ajuste os seguintes parâmetros no arquivo YAML. Todos os valores numéricos precisam ser maiores que zero, e o atraso em primeiro plano precisa ser de pelo menos 0.5 seconds, o valor padrão.

  • foreground_delay_seconds

    • Descrição:a vantagem em segundos dada ao app em segundo plano antes que o app em primeiro plano acione a inferência. A sequência é: o app em segundo plano inicia as inferências -> [o teste aguarda foreground_delay_seconds] -> o app em primeiro plano inicia as inferências.
    • Padrão:0.5
    • Orientação de ajuste:um atraso maior dá ao app em segundo plano mais tempo para processar inferências antes que o app em primeiro plano seja iniciado. O app em primeiro plano precisa começar as inferências aproximadamente na metade da carga de trabalho do app em segundo plano.
  • foreground_test_num_iterations_per_thread

    • Descrição:o número de loops de inferência consecutivos que cada linha de execução individual executa para o teste test_foreground_app_finishes_first para o app em primeiro plano e em segundo plano.
    • Padrão:30
  • foreground_test_num_threads

    • Descrição:o número de linhas de execução simultâneas geradas para executar inferências simultaneamente para o teste test_foreground_app_finishes_first para o app em primeiro plano e em segundo plano.
    • Padrão:4

Executar os testes

Depois que o dispositivo estiver configurado e conectado, execute o pacote usando comandos padrão do CTS Tradefed.

Para executar o módulo usando o CTS Tradefed:

cts-tradefed run cts -m CtsNpuManagerMoblyTestCases