NPU Manager-Mobly-Tests ausführen

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.
  • 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
  • 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

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