Die CtsNpuManagerMoblyTestCases-Suite prüft die Gerätekompatibilität mit dem NpuManager-Dienst, der in Android 17 (API-Level 37) hinzugefügt wurde. Diese Mobly-basierten Tests bewerten die Priorisierung von NPU-Arbeitslasten, sorgen dafür, dass NPU-Arbeitslasten von Vordergrund-Apps eine höhere Priorität als Hintergrund-Apps erhalten, und validieren die NPU-Zugriffssteuerung.
Testkonfiguration
Die globalen Standardparameter für diese Testsuite sind für Referenzgeräte optimiert. Da die NPU-Hardwarefunktionen je nach Gerät variieren können, müssen Sie die Testkonfigurationsparameter anpassen, damit die Tests auf Ihrer Hardware ordnungsgemäß ausgeführt werden.
Warum ist die Optimierung notwendig?
Der Priorisierungstest test_foreground_app_finishes_first basiert auf einer Race Condition. Dabei wird geprüft, ob die Inferenz der Vordergrund-App vor der Inferenz der Hintergrund-App abgeschlossen wird. Damit der Test die Stabilitätsanforderung erfüllt, dass zwei von drei Läufen bestanden werden müssen, müssen Sie diese Parameter an die spezifischen NPU-Geschwindigkeiten Ihres Geräts anpassen.
Die Konfigurationsdatei befindet sich im Android-Quellbaum unter packages/modules/NpuManager/tests/cts/mobly_config.yaml.
Konfigurierbare Parameter
Wenn Sie die Tests für Ihr Gerät optimieren, passen Sie die folgenden Parameter in der YAML-Datei an. Alle numerischen Werte müssen größer als null sein. Die Verzögerung im Vordergrund muss mindestens 0.5 seconds betragen (Standardwert).
foreground_delay_seconds- Beschreibung:Der Vorsprung in Sekunden, der der Hintergrund-App gewährt wird, bevor die Vordergrund-App ihre Inferenz auslöst. Die Reihenfolge ist:
Hintergrund-App startet Inferenzvorgänge –> [Test wartet auf
foreground_delay_seconds] –> Vordergrund-App startet Inferenzvorgänge. - Standard:
0.5 - Hinweise zum Optimieren:Eine längere Verzögerung gibt der Hintergrund-App mehr Zeit, Inferenzen zu verarbeiten, bevor die Vordergrund-App gestartet wird. Die Vordergrund-App sollte ihre Inferenz ungefähr in der Hälfte der Arbeitslast der Hintergrund-App starten.
- Beschreibung:Der Vorsprung in Sekunden, der der Hintergrund-App gewährt wird, bevor die Vordergrund-App ihre Inferenz auslöst. Die Reihenfolge ist:
Hintergrund-App startet Inferenzvorgänge –> [Test wartet auf
foreground_test_num_iterations_per_thread- Beschreibung:Die Anzahl der aufeinanderfolgenden Inferenzschleifen, die jeder einzelne Thread für den
test_foreground_app_finishes_first-Test sowohl für die Vordergrund- als auch für die Hintergrund-App ausführt. - Standard:
30
- Beschreibung:Die Anzahl der aufeinanderfolgenden Inferenzschleifen, die jeder einzelne Thread für den
foreground_test_num_threads- Beschreibung:Die Anzahl der gleichzeitig erstellten Threads, mit denen Inferenzvorgänge für den
test_foreground_app_finishes_first-Test sowohl für die Vordergrund- als auch für die Hintergrund-App gleichzeitig ausgeführt werden. - Standard:
4
- Beschreibung:Die Anzahl der gleichzeitig erstellten Threads, mit denen Inferenzvorgänge für den
Tests ausführen
Nachdem Ihr Gerät konfiguriert und verbunden ist, führen Sie die Suite mit Standard-CTS-Tradefed-Befehlen aus.
So führen Sie das Modul mit CTS Tradefed aus:
cts-tradefed run cts -m CtsNpuManagerMoblyTestCases