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_pathfestlegen, 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 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:
- ML Diagnostics SDK: Verwenden Sie die
prof-Methoden im SDK. Diese Methoden umschließen die zugrunde liegenden Profilerstellungs-APIs auf Framework-Ebene, sodass Ihr Profilerstellungscode in JAX, vLLM, Tunix und TorchTPU konsistent bleibt. - Framework-native Profilerstellungs-APIs: Rufen Sie die integrierten Profilerstellungsmethoden Ihres ML-Frameworks direkt auf und speichern Sie die Ausgabe im Cloud Storage-Bucket Ihres ML-Ausführung:
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:
Starten Sie einen XProf-Server an Port
9999in Ihrer Arbeitslast, damit er auf Trigger für die On-Demand-Erfassung reagiert:Direkt in JAX: Rufen Sie die Methode
profiler.start_serverauf Port9999auf:profiler.start_server(port=9999)ML Diagnostics SDK: Legen Sie
on_demand_xprof=Trueinmachinelearning_runfest, wenn Sie Ihre ML-Ausführung definieren.
Konfigurieren Sie Ihren Cluster-Orchestrator oder Ihre Compute-Umgebung:
- Google Kubernetes Engine (GKE) oder selbstverwaltetes Kubernetes: Stellen Sie entweder den Operator und den Webhook oder das ML Diagnostics DaemonSet bereit.
- Von Cluster Director verwaltetes Slurm oder selbstverwaltetes Slurm: Stellen Sie den ML Diagnostics-Daemon mit einem Slurm-Prolog-Script bereit.
- Compute Engine: Stellen Sie den ML-Diagnosedämon mit einem Instanz-Startskript bereit.
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-Version0.0.43oder höher.jax-Version0.11.0oder 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:
- 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.
- Öffnen Sie den Tab Profile.
- Klicken Sie in der oberen Aktionsleiste auf Kontinuierliches Profiling starten.
- 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:
- 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.
- Klicken Sie in der oberen Aktionsleiste auf Snapshot erstellen.
- 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:
- 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.
- 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. - 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
|
| 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:
|
| 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:
|
| 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:
|
| 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:
|
| 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
OPTIMALoderNEEDS_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
P0für kritische Probleme bisP2fü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