Benchmark CompiledModel API

Mit den LiteRT-Benchmark-Tools werden Statistiken für die folgenden wichtigen Leistungsmesswerte gemessen und berechnet:

  • Initialisierungszeit
  • Inferenzzeit des Warm-up-Zustands
  • Inferenzzeit des stabilen Zustands
  • Arbeitsspeichernutzung während der Initialisierungszeit
  • Gesamte Arbeitsspeichernutzung

Das CompiledModel-Benchmarktool wird als C++-Binärdatei benchmark_model bereitgestellt. Sie können dieses Tool über eine Shell-Befehlszeile auf Android-, Linux-, macOS-, Windows- und eingebetteten Geräten ausführen, auf denen die GPU-Beschleunigung aktiviert ist.

Vordefinierte Benchmark-Binärdateien herunterladen

Laden Sie die nächtlichen vorkompilierten Befehlszeilen-Binärdateien über die folgenden Links herunter:

Benchmark-Binärdatei aus dem Quellcode erstellen

Sie können die Benchmark-Binärdatei aus dem Quellcode erstellen.

bazel build -c opt //litert/tools:benchmark_model

Wenn Sie mit der Android NDK-Toolchain erstellen möchten, müssen Sie zuerst die Build-Umgebung einrichten. Folgen Sie dazu dieser Anleitung oder verwenden Sie das Docker-Image, wie in dieser Anleitung beschrieben.

bazel build -c opt --config=android_arm64 \
  //litert/tools:benchmark_model

Benchmark ausführen

Führen Sie die Binärdatei über die Shell aus, um Benchmarks auszuführen.

path/to/downloaded_or_built/benchmark_model \
  --graph=your_model.tflite \
  --num_threads=4

Weitere Parameteroptionen finden Sie im Quellcode von benchmark_model.

GPU-Beschleunigung benchmarken

Diese vorkompilierten Binärdateien enthalten den LiteRT-GPU-Beschleuniger. Unterstützt

  • Android: OpenCL
  • Linux: OpenCL und WebGPU (unterstützt von Vulkan)
  • macOS: Metal
  • Windows: WebGPU (unterstützt von Direct3D)

Um den GPU-Beschleuniger zu verwenden, übergeben Sie das Flag --use_gpu=true.

Modellvorgänge profilieren

Mit der Binärdatei des Benchmark-Modells können Sie auch Modellvorgänge profilieren und die Ausführungszeiten der einzelnen Operatoren abrufen. Übergeben Sie dazu das Flag --use_profiler=true an benchmark_model, wenn Sie es aufrufen.