La suite CtsNpuManagerMoblyTestCases vérifie la compatibilité de l'appareil avec le service NpuManager, ajouté dans Android 17 (niveau d'API 37). Ces tests basés sur Mobly évaluent la priorisation des charges de travail du NPU, s'assurent que les charges de travail du NPU des applications au premier plan reçoivent une priorité plus élevée que celles en arrière-plan et valident le contrôle d'accès au NPU.
Tester la configuration
Les paramètres globaux par défaut de cette suite de tests sont optimisés pour les appareils de référence. Étant donné que les capacités matérielles des NPU peuvent varier d'un appareil à l'autre, ajustez les paramètres de configuration des tests pour vous assurer qu'ils s'exécutent correctement sur votre matériel.
Pourquoi l'optimisation est-elle nécessaire ?
Le cœur du test de priorisation test_foreground_app_finishes_first repose sur une condition de concurrence en évaluant si l'application au premier plan termine ses inférences avant l'application en arrière-plan. Pour que le test réponde de manière fiable à son exigence de stabilité (réussir deux fois sur trois), configurez ces paramètres en fonction des vitesses spécifiques du NPU de votre appareil.
Le fichier de configuration se trouve dans l'arborescence source Android à l'emplacement packages/modules/NpuManager/tests/cts/mobly_config.yaml.
Paramètres configurables
Lorsque vous ajustez les tests pour votre appareil, modifiez les paramètres suivants dans le fichier YAML. Toutes les valeurs numériques doivent être supérieures à zéro. Plus précisément, le délai au premier plan doit être d'au moins 0.5 seconds, qui est la valeur par défaut.
foreground_delay_seconds- Description : avance en secondes accordée à l'application en arrière-plan avant que l'application au premier plan ne déclenche son inférence. La séquence est la suivante :
L'application en arrière-plan lance les inférences -> [le test attend
foreground_delay_seconds] -> l'application au premier plan lance les inférences. - Par défaut :
0.5 - Conseils de réglage : un délai plus long donne à l'application en arrière-plan plus de temps pour traiter les inférences avant le démarrage de l'application au premier plan. L'application au premier plan doit commencer ses inférences à peu près à mi-parcours de la charge de travail de l'application en arrière-plan.
- Description : avance en secondes accordée à l'application en arrière-plan avant que l'application au premier plan ne déclenche son inférence. La séquence est la suivante :
L'application en arrière-plan lance les inférences -> [le test attend
foreground_test_num_iterations_per_thread- Description : nombre de boucles d'inférence consécutives que chaque thread individuel exécute pour le test
test_foreground_app_finishes_firstpour l'application au premier plan et en arrière-plan. - Par défaut :
30
- Description : nombre de boucles d'inférence consécutives que chaque thread individuel exécute pour le test
foreground_test_num_threads- Description : nombre de threads simultanés générés pour exécuter les inférences simultanément pour le test
test_foreground_app_finishes_firstpour l'application au premier plan et en arrière-plan. - Par défaut :
4
- Description : nombre de threads simultanés générés pour exécuter les inférences simultanément pour le test
Exécuter les tests
Une fois votre appareil configuré et connecté, exécutez la suite à l'aide des commandes CTS Tradefed standards.
Pour exécuter le module à l'aide de CTS Tradefed :
cts-tradefed run cts -m CtsNpuManagerMoblyTestCases