Verwaltete Profilerstellung mit XProf

Sie können das verwaltete XProf-Profiling verwenden, wenn Sie das ML Diagnostics-Arbeitslastmonitoring, die ML Diagnostics-CLI oder das ML Diagnostics SDK verwenden. Managed XProf ist eine XProf-Instanz mit einem skalierbaren Backend, das die ML-Diagnoseplattform in IhremGoogle Cloud -Projekt bereitstellt und verwaltet. Bei selbst gehostetem XProf müssen Sie Ihre eigenen XProf-Instanzen manuell bereitstellen und verwalten, um Ihre Profile anzusehen.

XProf ist ein Open-Source-Tool zur Profilerstellung und Leistungsanalyse für ML-Arbeitslasten (maschinelles Lernen) und ist Teil des OpenXLA-Ökosystems. Im Vergleich zum selbst gehosteten XProf bietet das verwaltete XProf die folgenden Funktionen:

  • Keine Einrichtung erforderlich: Es ist keine manuelle Installation oder Konfiguration von XProf-Visualisierungsservern oder deren Abhängigkeiten erforderlich.
  • Zentraler Zugriff auf Profilsitzungen mit mehreren Ausführungen: Lädt Profilsitzungen über verschiedene ML-Ausführungen hinweg mit einer einzigen verwalteten XProf-Instanz pro Projekt.
  • Automatische Skalierung und schnelles Laden: Beschleunigt das Laden großer Profile und skaliert Backend-Ressourcen automatisch, wenn mehrere Nutzer gleichzeitig Profile ansehen.
  • Integrierte Zusammenarbeit und Sicherheit: Generiert Links zum Freigeben für Profilerstellungssitzungen und schützt gleichzeitig Profilerstellungsinstanzen vor Sicherheitslücken.
  • Mehrere Profilerfassungsmodi: Unterstützt die Erfassung auf mehreren Hosts, die On-Demand-Profilerstellung, die kontinuierliche Profilerstellung im Snapshot-Modus und die automatische Profilerfassung aus dem Arbeitslastmonitoring.
  • Keine zusätzlichen Infrastrukturkosten: Im Gegensatz zum Self-Hosting einer XProf-Instanz werden verwaltete XProf-Rechenressourcen ohne zusätzliche Kosten bereitgestellt.

Bereitstellungspfade

Sie können den verwalteten XProf mithilfe des ML Diagnostics SDK, des Arbeitslast-Monitorings oder der ML Diagnostics CLI bereitstellen und aktivieren.

Die ML Diagnostics-Plattform stellt pro Projekt eine verwaltete XProf-Instanz mit einem skalierbaren Backend bereit. Mit dieser Instanz können Sie alle Profilsitzungen aufrufen, die für alle ML-Ausführungen im Projekt erfasst wurden. Zum Erfassen von Profilen ist außerdem ein Cloud Storage-Bucket erforderlich, der mit der ML-Ausführung verknüpft ist, um die erfassten Profildaten zu speichern.

Sie können verwaltetes XProf aktivieren und einen Cloud Storage-Bucket mit Ihrem ML-Ausführung auf eine der folgenden Arten verknüpfen:

  • ML Diagnostics SDK: Wenn Sie Ihren ersten ML-Lauf mit dem SDK bereitstellen, aktiviert und stellt die ML Diagnostics-Plattform automatisch eine verwaltete XProf-Instanz in Ihrem Projekt bereit. Sie geben den Cloud Storage-Bucket zum Speichern von Profilen an, indem Sie den Parameter gcs_path festlegen, wenn Sie die ML-Ausführung im SDK definieren.
  • Arbeitslastmonitoring: Beim Arbeitslastmonitoring wird verwaltetes XProf nicht standardmäßig aktiviert. Stattdessen wird beim ersten Mal, wenn die automatische Profilerfassung eine Profilsitzung in Ihrem Projekt auslöst, von der ML Diagnostics-Plattform automatisch eine verwaltete XProf-Instanz bereitgestellt und aktiviert. Standardmäßig stellt ML Diagnostics auch einen regionalen Cloud Storage-Bucket in Ihrem Projekt bereit.
  • ML Diagnostics-Befehlszeile: Sie können jeden ML-Ausführung aktualisieren, um das XProf-Tool zu aktivieren, das die verwaltete XProf-Instanz in Ihrem Projekt bereitstellt, und einen Cloud Storage-Bucket mit der ML-Ausführung verknüpfen.

Aufnahmeprofile

ML Diagnostics unterstützt vier Methoden zum Erfassen von XProf-Profilen: programmatische Erfassung, On-Demand-Profiling, kontinuierliches Profiling im Snapshot-Modus und automatische Profilerfassung aus dem Arbeitslastmonitoring. Diese Methoden unterscheiden sich darin, wie eine Erfassung ausgelöst wird und welches Zeitfenster aufgezeichnet wird.

In der folgenden Tabelle werden die Methoden zur Profilerfassung verglichen:

Erfassungsmethode Beschreibung Unterstützte Frameworks
Programmatische Erfassung

Bettet Profiling-Befehle direkt in Ihren Arbeitslastcode ein, um die Aufzeichnung von Profildaten bei bestimmten Trainingsschritten oder Funktionen zu starten und zu beenden.

Verwenden Sie diese Methode, wenn Sie reproduzierbare Profile bekannter Trainingsschritte oder bestimmter Codeabschnitte benötigen.

JAX, vLLM, Tunix, TorchTPU
On-Demand-Profiling

Löst eine Live-Profilerfassung über die Google Cloud Console oder die gcloud CLI für einen von Ihnen angegebenen Zeitraum aus, während Ihre Arbeitslast ausgeführt wird.

Verwenden Sie diese Methode, wenn Sie eine laufende Arbeitslast in Echtzeit prüfen möchten, ohne Schrittbereiche zu ändern oder die Arbeitslast neu zu starten.

JAX, vLLM, Tunix, TorchTPU
Kontinuierliche Profilerstellung im Snapshot-Modus (Vorabversion)

Zeichnet kontinuierlich ein 2-GB-Profil von Geräte-Traces in einem Ringpuffer auf Ihren TPU-Hosts auf und speichert den neuesten 2-GB-Puffer in Ihrem Cloud Storage-Bucket, wenn Sie einen Snapshot auslösen.

Verwenden Sie diese Methode, wenn Sie die Arbeitslastaktivität prüfen müssen, die zu einer vorübergehenden Verlangsamung oder Anomalie führt.

JAX, vLLM, Tunix
Automatische Profilerfassung aus dem Arbeitslast-Monitoring (Vorabversion)

Löst automatisch eine XProf-Profilerfassung aus, wenn ein Analysetool für die Leistungsverschlechterung beim Workload-Monitoring den Status "bad" meldet. Sie können die automatische Profilerfassung so konfigurieren, dass entweder eine On-Demand-Erfassung oder, wenn das kontinuierliche Profiling aktiviert ist, ein Snapshot des kontinuierlichen Profilings ausgelöst wird.

Verwenden Sie diese Methode, wenn ML-Diagnose Trace-Daten erfassen soll, sobald die Leistung nachlässt, ohne dass Sie manuell eine Erfassung auslösen müssen.

JAX, vLLM, Tunix, TorchTPU

Programmatische Erfassung

Bei der programmatischen Erfassung betten Sie Profilerstellungsbefehle direkt in den Code Ihrer Arbeitslast ein, um explizit anzugeben, wann die Aufzeichnung von Profildaten gestartet und beendet werden soll. Alle Profile, die in den Cloud Storage-Bucket geschrieben werden, der durch den Parameter gcs_path für Ihren ML-Ausführung angegeben wurde, werden automatisch als Profilsitzungen in der verwalteten XProf-Instanz Ihres Projekts angezeigt. Sie können sie in derGoogle Cloud -Konsole oder mit der Google Cloud CLI aufrufen.

Sie können die programmatische Erfassung auf eine der folgenden Arten konfigurieren:

On-Demand-Profilerstellung

Mit der On-Demand-Profilerstellung können Sie eine Profilerfassung in Echtzeit auslösen, während Ihre Arbeitslast ausgeführt wird. Wenn Sie eine On-Demand-Erfassung auslösen, wird ein Profil über einen von Ihnen angegebenen Zeitraum aufgezeichnet. Sie können das On-Demand-Profiling entweder direkt in Ihrem Arbeitslastcode oder mit dem ML Diagnostics SDK aktivieren.

Vorbereitung

Führen Sie vor dem Erfassen eines On-Demand-Profils die folgenden Einrichtungsschritte aus:

  1. Starten Sie einen XProf-Server an Port 9999 in Ihrer Arbeitslast, damit er auf Trigger für die On-Demand-Erfassung reagiert:

    • Direkt in JAX: Rufen Sie die Methode profiler.start_server auf Port 9999 auf:

      profiler.start_server(port=9999)
      
    • ML Diagnostics SDK: Legen Sie on_demand_xprof=True in machinelearning_run fest, wenn Sie Ihre ML-Ausführung definieren.

  2. Konfigurieren Sie Ihren Cluster-Orchestrator oder Ihre Compute-Umgebung:

On-Demand-Profil erfassen

Sie können eine On-Demand-Profilerfassung über die Google Cloud Console oder die gcloud CLI auslösen. Geben Sie beim Auslösen einer Erfassung die folgenden Parameter an:

  • Dauer: Die Aufnahmedauer in Millisekunden oder Sekunden. Die maximale Dauer, die Sie erfassen können, hängt von den Merkmalen Ihrer Arbeitslast und davon ab, wie viele Daten in das Profillimit von 2 GB passen.
  • Ziele: Die Zielknoten, für die Sie das Profil erfassen möchten:
    • Google Cloud -Konsole: Alle Knoten, auf denen die Arbeitslast ausgeführt wird, werden automatisch ausgefüllt. Sie können alle oder eine Teilmenge der Knoten auswählen.
    • gcloud CLI: Listen Sie die Profiler-Ziele für die Arbeitslast auf und lösen Sie dann eine Erfassung für alle oder eine Teilmenge dieser Ziele aus.
  • Geräte-, Host- und Python-Tracer-Ebenen: Der Detaillierungsgrad, der für die Geräte-, Host- und Python-Traces erfasst werden soll.

Kontinuierliche Profilerstellung im Snapshot-Modus

Wenn die kontinuierliche Profilerstellung aktiviert ist, zeichnet die ML-Diagnoseplattform kontinuierlich ein 2‑GB-Profil in einem Ringpuffer auf Ihren TPU-Hosts auf. Wenn Sie einen Snapshot auslösen, speichert ML Diagnostics das neueste 2-GB-Profil aus dem Zwischenspeicher als Profilsitzung in Ihrem Cloud Storage-Bucket. Mit diesem Snapshot können Sie die Arbeitslastaktivität vor einem Problem prüfen. Die kontinuierliche Profilerstellung unterstützt nur das Geräte-Tracing. Host- oder Python-Traces werden nicht erfasst.

Vorbereitung

Bevor Sie mit dem kontinuierlichen Profiling beginnen, müssen Sie prüfen, ob Ihre Umgebung die folgenden Anforderungen erfüllt:

  • Unterstützte Bibliotheksversionen:
    • libtpu-Version 0.0.43 oder höher.
    • jax-Version 0.11.0 oder höher.
  • Cluster-Orchestrator oder Compute-Umgebung einrichten:
    • GKE oder selbstverwaltetes Kubernetes: Stellen Sie das ML-Diagnose-DaemonSet bereit.
    • Von Cluster Director verwaltetes Slurm oder selbstverwaltetes Slurm: Stellen Sie den ML-Diagnosedaemon mithilfe eines Slurm-Prolog-Skripts bereit.
    • Compute Engine: Stellen Sie den ML-Diagnosedämon mit einem Instanz-Startskript bereit.

Starten Sie den XProf-Server in Ihrem Arbeitslastcode, indem Sie profiler.start_server(port=9999) aufrufen, oder legen Sie on_demand_xprof=True in machinelearning_run fest, wenn Sie das ML Diagnostics SDK verwenden.

Kontinuierliche Profilerstellung starten

Sie können das kontinuierliche Profiling direkt in Ihrem Arbeitslastcode, über die gcloud CLI oder in der Google Cloud Console starten. Nach dem Start werden bei der kontinuierlichen Profilerstellung 2‑GB-Profile in einem Ringpuffer auf den angegebenen TPU-Hosts aufgezeichnet.

Wenn Sie das kontinuierliche Profiling mit der gcloud CLI oder derGoogle Cloud Console starten, geben Sie die folgenden Parameter an:

  • Ziele: Die Zielknoten, die kontinuierlich profiliert werden sollen:
    • Google Cloud -Konsole: Alle Knoten, auf denen die Arbeitslast ausgeführt wird, werden automatisch ausgefüllt. Sie können alle oder eine Teilmenge der Knoten auswählen.
    • gcloud CLI: Listen Sie die Profiler-Ziele für die Arbeitslast auf und starten Sie dann die kontinuierliche Profilerstellung für alle oder eine Teilmenge dieser Ziele.
  • Geräte-Tracer-Ebene: Die Ebene des Geräte-Tracings, die kontinuierlich erfasst werden soll. Host- und Python-Tracing sind während der kontinuierlichen Profilerstellung deaktiviert.

Sie können das kontinuierliche Profiling direkt über den Python-Arbeitslastcode, in der gcloud CLI oder in der Google Cloud Console starten.

Python-Arbeitslastcode

Wenn Sie das kontinuierliche Profiling direkt über den Python-Arbeitslastcode starten möchten, rufen Sie die Funktion start_continuous_profiling auf:

from xprof.api import continuous_profiling_snapshot
continuous_profiling_snapshot.start_continuous_profiling('localhost:9999', {})

Weitere Informationen finden Sie unter XProf-JAX-Profilerstellung.

gcloud-CLI

Wenn Sie das kontinuierliche Profiling über die gcloud CLI starten möchten, listen Sie die aktiven Profiler-Ziele auf und starten Sie das kontinuierliche Profiling für diese Knoten mit den folgenden Befehlen:

PROJECT_ID="PROJECT_ID"
LOCATION="LOCATION"
RUN_ID="RUN_ID"

# 1. Discover active ProfilerTarget IDs on the ML run:
TARGETS=$(gcloud alpha mldiagnostics profiler-target list \
  --machine-learning-run="${RUN_ID}" \
  --location="${LOCATION}" \
  --project="${PROJECT_ID}" \
  --format="csv[no-heading](name.basename())" | paste -sd, -)

# 2. Start continuous profiling across the target nodes:
gcloud alpha mldiagnostics machine-learning-run start-continuous-profiling \
  --machine-learning-run="${RUN_ID}" \
  --location="${LOCATION}" \
  --project="${PROJECT_ID}" \
  --targets="${TARGETS}" \
  --device-tracer-level=enabled

Ersetzen Sie Folgendes:

  • PROJECT_ID: Projekt-ID in Google Cloud .
  • LOCATION: die Region, in der sich Ihr ML-Ausführung befindet.
  • RUN_ID: die ID Ihres ML-Ausführung.
Google Cloud Console

So starten Sie die kontinuierliche Profilerstellung in der Google Cloud Console:

  1. Rufen Sie in der Google Cloud Console Cluster Director oder GKE > KI/ML > Diagnose ausführen auf und wählen Sie Ihren ML-Ausführung aus.
  2. Öffnen Sie den Tab Profile.
  3. Klicken Sie in der oberen Aktionsleiste auf Kontinuierliches Profiling starten.
  4. Wählen Sie die Knoten für das Profiling und die Tracer-Ebene des Geräts aus und klicken Sie dann auf Starten.

Nach dem Start der kontinuierlichen Profilerstellung wird im Banner Kontinuierliche Profile werden erfasst die Startzeit der Sitzung als Since START_TIME angezeigt. In der Aktionsleiste werden Snapshot erstellen und Kontinuierliche Profilerstellung beenden angezeigt.

Snapshot erstellen

Während das kontinuierliche Profiling ausgeführt wird, können Sie einen Snapshot erstellen, um das neueste 2-GB-Profil aus dem Ringpuffer als Profilsitzung in Ihrem Cloud Storage-Bucket zu speichern. Sie können einen Snapshot mit der gcloud CLI oder in der Google Cloud Console erstellen.

Geben Sie beim Erfassen eines Snapshots der kontinuierlichen Profilerstellung die folgenden Parameter an:

  • Ziele: Alle oder eine Teilmenge der Zielknoten, auf denen das kontinuierliche Profiling ausgeführt wird:
    • Google Cloud -Konsole: Alle Knoten, die für das kontinuierliche Profiling konfiguriert sind, werden automatisch ausgefüllt. Sie können alle oder eine Teilmenge der Knoten auswählen.
    • gcloud CLI: Geben Sie alle oder einen Teil der Profiler-Ziele an, für die das kontinuierliche Profiling ausgeführt wird.
  • Profiler-Sitzungsname: Ein Name für die erfasste Snapshot-Sitzung.

Sie können einen Snapshot mit der gcloud CLI oder in derGoogle Cloud Console erstellen.

gcloud-CLI

Führen Sie den folgenden Befehl aus, um einen Snapshot für das kontinuierliche Profiling mit der gcloud CLI zu erstellen:

PROJECT_ID="PROJECT_ID"
LOCATION="LOCATION"
RUN_ID="RUN_ID"

gcloud alpha mldiagnostics profiler-session capture "SNAPSHOT_NAME" \
  --machine-learning-run="${RUN_ID}" \
  --location="${LOCATION}" \
  --project="${PROJECT_ID}" \
  --targets="TARGET_NODES" \
  --kind=snapshot

Ersetzen Sie Folgendes:

  • PROJECT_ID: Projekt-ID in Google Cloud .
  • LOCATION: die Region, in der sich Ihr ML-Ausführung befindet.
  • RUN_ID: die ID Ihres ML-Ausführung.
  • SNAPSHOT_NAME: Ein Name für die erfasste Profilsitzung.
  • TARGET_NODES: eine durch Kommas getrennte Liste der Zielknoten, die erfasst werden sollen.
Google Cloud Console

So erfassen Sie einen Snapshot der kontinuierlichen Profilerstellung in der Google Cloud Console:

  1. Rufen Sie in der Google Cloud Console Cluster Director oder GKE > KI/ML > Diagnose ausführen auf, wählen Sie Ihren ML-Ausführung aus und öffnen Sie den Tab Profile.
  2. Klicken Sie in der oberen Aktionsleiste auf Snapshot erstellen.
  3. Geben Sie im Bereich Snapshot der kontinuierlichen Profilerstellung erfassen einen Profilnamen ein, wählen Sie die Zielknoten aus und klicken Sie auf Senden.

Der Snapshot wird in der Tabelle Profile angezeigt. Wenn der Link nicht sofort angezeigt wird, klicken Sie auf Aktualisieren.

Automatische Profilerfassung aus dem Arbeitslastmonitoring

Mit der automatischen Profilerfassung aus dem Arbeitslastmonitoring erfasst ML Diagnostics automatisch ein XProf-Profil, wenn ein Analysetool für Leistungsverschlechterungen den Status "bad" meldet. Sie müssen also nicht warten, bis Sie nach einem Problem manuell eine On-Demand-Erfassung auslösen. Sie können die automatische Profilerfassung so konfigurieren, dass entweder eine On-Demand-Erfassung oder, wenn kontinuierliches Profiling aktiviert ist, ein Snapshot für kontinuierliches Profiling ausgelöst wird. So können Sie die Ursache eines Problems anhand eines Profils diagnostizieren, das zum Zeitpunkt des Ereignisses erfasst wurde.

Eine Anleitung zur Einrichtung und die Voraussetzungen finden Sie in der Dokumentation zum Monitoring von Arbeitslasten unter Automatische Profilerfassung.

Profilanalyse mit agentischer KI

Die Profilanalyse mit agentischer KI analysiert automatisch XProf-Leistungsprofile, die für TPU-Arbeitslasten erfasst wurden, und generiert einen HTML-Analysebericht aus den XProf-Trace-Rohdaten. Der Analyse-Agent verwendet Gemini-Modelle in Vertex AI, um XProf-Profiling-Tools auszuführen, Leistungsengpässe zusammenzufassen und Code- oder Konfigurationsänderungen zu empfehlen. Wenn die erforderlichen APIs aktiviert sind, generiert ML Diagnostics für jedes in der Plattform erfasste Profil einen Analysebericht für das agentische KI-Profil.

Die Profilanalyse mit agentischer KI verwendet dieselben zugrunde liegenden Tools und Funktionen wie das Open-Source-XProf-Skills-Repository. Anstatt die Skill-Datei direkt zu verwenden oder die für den Open-Source-Skill erforderliche XProf-CLI zu installieren, importiert ML Diagnostics die zugrunde liegenden XProf-Tool-Implementierungen, damit der Agent sie direkt aufrufen kann. Die Analyseausgabe in ML Diagnostics entspricht daher der Ausführung der Open-Source-XProf-Skills mit der XProf-Befehlszeile für lokale xplane-Dateien.

Vorbereitung

Bevor Sie die agentische KI-Profilanalyse verwenden, führen Sie die folgenden Einrichtungsschritte in Ihrem Google Cloud -Projekt aus.

Erforderliche APIs aktivieren

Aktivieren Sie die Vertex AI API (aiplatform.googleapis.com), damit der Analyse-Agent Gemini-Modelle in Ihrem Projekt ausführen kann:

  • Google Cloud -Console: Aktivieren Sie in der API-Bibliothek die Vertex AI API.
  • gcloud CLI: Führen Sie den folgenden Befehl aus:

    gcloud services enable aiplatform.googleapis.com
    

IAM-Rollen zuweisen

Weisen Sie Ihrem Nutzerkonto eine der folgenden IAM-Rollen (Identity and Access Management) zu:

  • Cluster Director-Betrachter (roles/hypercomputecluster.viewer): Gewährt Lesezugriff auf Cluster Director- und ML-Diagnoseressourcen, einschließlich generierter Analyseberichte in der Google Cloud Console unter Diagnose ausführen > Profile.
  • Benutzerdefinierte Rolle (hypercomputecluster.locations.analysis): Gewährt die Berechtigung, generierte Analyseberichte in der Google Cloud Console unter Diagnose ausführen > Profile aufzurufen, wenn sie einer benutzerdefinierten Rolle hinzugefügt wird.

Funktionsweise

Wenn eine programmatische, On-Demand-, kontinuierliche oder automatische Profilerfassung abgeschlossen ist, wird im Rahmen eines isolierten Hintergrundjobs der folgende Analyseworkflow für das XProf-Profil ausgeführt:

  1. Umfassende Datenerhebung: Führt 15 XProf-Tools parallel aus, um einen Status-Snapshot zu erstellen, der Schrittzeit, Hardwareauslastung, Speichernutzung, Roofline-Grenzen, langsamste Vorgänge und Compiler-Ineffizienzen enthält. In diesem Schritt werden die Zeiten pro Trainingsschritt normalisiert und fehlerfreie Vorgänge von Engpässen getrennt.
  2. Fokussierte KI-Prüfung: Prüft den erfassten Zustands-Snapshot. Wenn die Arbeitslast eine hohe Rechenauslastung, einen geringen Leerlauf- und Kommunikationsaufwand und ein geringes Risiko für Fehler aufgrund fehlenden Speichers aufweist, überspringt der Agent zusätzliche Toolaufrufe und generiert einen OPTIMAL-Bericht. Wenn Engpässe erkannt werden, stellt der Agent Hypothesen auf und führt bis zu vier gezielte Folgeprüfungen mit zusätzlichen XProf-Tools durch, um umliegende Vorgänge im Berechnungsgraphen, Zeitachsenverzögerungen auf verschiedenen Hosts und benutzerdefinierte Kernels zu untersuchen.
  3. Berichterstellung: Kombiniert die Messwerte von XProf mit der Ursachenanalyse des KI-Agenten und den empfohlenen Korrekturen. Der generierte summary.html-Bericht wird in Ihrem Cloud Storage-Bucket gespeichert und in derGoogle Cloud -Konsole unter Diagnose ausführen > Profile angezeigt.

Bei diesem Workflow bleiben Ihre Profildaten und Analysen innerhalb Ihres Projekts privat. Roh-Profiler-Traces und generierte HTML-Berichte werden in Ihrem Cloud Storage-Bucket gespeichert. Alle KI-Modellaufrufe werden über Vertex AI in Ihrem Google Cloud -Projekt ausgeführt.

XProf-Tools

In der folgenden Tabelle werden die XProf-Tools beschrieben, die der Agent während der Analyse ausführt:

Kategorie XProf-Tools Beschreibung
Arbeitslastübersicht und Schrittdauer get_xprof_overview, get_step_trace, get_kpi_metrics, get_device_information, get_hosts, get_utilization_viewer, get_smart_suggestions

Diese Tools werden während der allgemeinen Datenerhebung ausgeführt. Das Tool get_hosts wird auch während der gezielten KI-Prüfung ausgeführt, um Folgendes zu prüfen:

  • Hardwaretyp, Anzahl der Hosts und Chips sowie maximale Hardwarelimits
  • Durchschnittliche Schrittzeit und Aufschlüsselung der Rechen-, Netzwerkkommunikations- und Host- oder Datenlade-Inaktivitätszeit
  • Auslastung der Matrixmultiplikationseinheit (MXU), des TensorCore und der Speicherbandbreite sowie integrierte XProf-Empfehlungen
Roofline und langsamste Vorgänge get_roofline_model, get_hlo_op_profile

Diese Tools werden während der allgemeinen Datenerhebung und der gezielten KI-Prüfung ausgeführt, um Folgendes zu prüfen:

  • Ob die Arbeitslast oder bestimmte Vorgänge durch die Rechen- oder Speicherbandbreite begrenzt sind
  • Zeitaufwand nach Vorgangstyp, z. B. Matrixmultiplikation, Attention und kollektive Vorgänge, sowie Links zu Python-Quellcodezeilen
Detektoren für Compiler-Ineffizienz detect_layout_mismatch_copies, detect_unfused_reshapes, detect_unnecessary_convert_reduce, list_hlo_modules

Diese Tools werden während der allgemeinen Datenerfassung ausgeführt, um Folgendes zu prüfen:

  • Zusätzliche Datenkopien, die durch Abweichungen beim Tensor-Layout zwischen Vorgängen verursacht werden
  • Nicht zusammengeführte reshape-, transpose- oder copy-Vorgänge, die Speicherbandbreite verschwenden
  • Unnötige Genauigkeitskonvertierungen, z. B. von bf16 zu f32, innerhalb von Reduzierungen
Arbeitsspeicher und OOM-Risiko get_memory_profile, get_peak_allocations

Diese Tools werden während der allgemeinen Datenerfassung ausgeführt, um Folgendes zu prüfen:

  • Spitzenwert der Nutzung des Speichers mit hoher Bandbreite (HBM) auf dem Gerät im Vergleich zur Gesamtkapazität und Speicherfragmentierung
  • Ob das Risiko für unzureichenden Arbeitsspeicher (OOM) LOW, MEDIUM oder HIGH ist, und die größten Tensoren im Arbeitsspeicher
Berechnungsgrafik-Explorer get_hlo_neighborhood

Dieses Tool wird während einer gezielten KI-Untersuchung ausgeführt, um die Vorgänge unmittelbar vor und nach einem langsamen Vorgang im XLA-Graphen zu prüfen und zu ermitteln, was die Compiler-Fusion blockiert oder die Datenverschiebung erzwingt.

Zeitachse und Kernel-Timing aggregate_xplane_events, get_kernel_stats

Diese Tools werden während der gezielten KI-Prüfung ausgeführt, um Folgendes zu prüfen:

  • Zeitachsenstatistiken über Hosts hinweg, um Verzögerungen beim Laden von Daten von Verzögerungen bei der Netzwerkkommunikation zu unterscheiden
  • Ausführungszeit und Anzahl der Aufrufe für einzelne Gerätekerne
Benutzerdefinierter Kernel-Profiler llo_load, llo_query

Diese Tools werden während einer gezielten KI-Untersuchung ausgeführt, um Low-Level-Ausführungs-Traces für benutzerdefinierte Kernel wie Pallas oder Mosaic zu prüfen, die für Standard-High-Level-Profiling undurchsichtig erscheinen.

Bericht zur KI-Profilanalyse

Wenn die Analyse für ein erfasstes Profil abgeschlossen ist, speichert ML Diagnostics den generierten summary.html-Bericht in Ihrem Cloud Storage-Bucket und zeigt ihn in der Google Cloud -Konsole unter Diagnose ausführen > Profile an. Mit diesem Bericht können Sie den Gesamtzustand Ihrer Arbeitslast prüfen, die größten Leistungsengpässe untersuchen und die empfohlenen Code- oder Konfigurationsänderungen ermitteln.

Jeder generierte Bericht enthält die folgenden Abschnitte:

  • Analyseübersicht: Zeigt den Gesamtstatus OPTIMAL oder NEEDS_ATTENTION, eine Zusammenfassung mit 3 bis 5 Sätzen und wichtige Leistungsmesswerte wie Schrittzeit, Speichernutzung und Roofline-Effizienz an.
  • Priorisierte Engpässe und umsetzbare Korrekturen: Listet Ergebnisse auf, die von P0 für kritische Probleme bis P2 für geringfügige Probleme priorisiert sind. Jedes Ergebnis enthält:
    • Was passiert: Eine Erklärung der Ursache, einschließlich Tensorformen und -layouts, falls relevant.
    • Nachweise: Direkte Zitate der XProf-Messwerte und -Vorgänge, bei denen der Engpass gemessen wurde.
    • Erwartete Auswirkungen und Korrektur: Die betroffene Schrittzeit oder der betroffene Arbeitsspeicher, zusammen mit empfohlenen Änderungen am Framework, Sharding oder Compiler.
  • Detaillierte XProf-Tool-Analyse: Bietet unterstützende Daten und detaillierte Aufschlüsselungen aus den folgenden Analysen:
    • Roofline-Analyse
    • Speicheranalyse
    • Analyse des Profils von HLO-Vorgängen (High-Level Optimizer)
    • Kernel-Ausführungsstatistiken
    • Analyse von benutzerdefinierten Kerneln und Low-Level-Optimierern