In diesem Dokument wird beschrieben, wie Sie mit Cloud Monitoring-Dashboards A4X Max-, A4X-, A4-, A3 Ultra- und A3 Mega-Instanzen überwachen, die Sie mit reservierungsgebundener Kapazität erstellt haben. Mithilfe dieser Dashboards können Sie Leistungsengpässe in Ihren eigenständigen Compute Engine-Instanzen oder Slurm-Clustern identifizieren und beheben und so die Ausfallzeiten Ihrer Arbeitslasten minimieren.
Wenn Sie benutzerdefinierte Dashboards erstellen oder vordefinierte Monitoring-Dashboards verwenden, können Sie Folgendes überwachen:
Zustand der Compute-Instanz
GPU-Leistung
Effizienz der Netzwerkübertragung
Netzwerkeffizienz zwischen Blöcken und Unterblöcken
Effizienz von Arbeitslasten für maschinelles Lernen (ML)
Nachzüglererkennung
Erkennung nicht reagierender Arbeitslasten
Informationen zum Überwachen von Cluster Director-Clustern finden Sie unter Clusterleistung mit vordefinierten Dashboards überwachen.
Hinweis
Führen Sie die folgenden Schritte aus, bevor Sie Ihre Arbeitslast überwachen, falls Sie dies noch nicht getan haben:
Arbeitslast bereitstellen, die Sie beobachten können Informationen zu den unterstützten Arbeitslasten finden Sie in diesem Dokument unter Einschränkungen. Informationen zum Bereitstellen einer Arbeitslast finden Sie unter Übersicht über Bereitstellungsoptionen.
Google Cloud -Dienste zum Überwachen von Arbeitslasten:
Für die Messwerte in diesem Dokument werden Monitoring-Dashboards verwendet. Weitere Informationen zu Monitoring-Dashboards, Monitoring-Aufbewahrungszeiträumen und Monitoring-Preisen.
Die Straggler-Erkennung stellt auch Logeinträge in Cloud Logging bereit. Informationen zu Logging-Schnittstellen, Aufbewahrungsdauer für Logs und Logging-Preisen.
Wenn Sie über die Google Cloud Console auf Dienste und APIs von Google Cloud zugreifen, müssen Sie die Authentifizierung nicht einrichten.
Beschränkungen
Die Messwerte in diesem Dokument werden nur für Arbeitslasten unterstützt, die auf Compute-Instanzen ausgeführt werden, die alle folgenden Kriterien erfüllen:
- Die Compute-Instanzen müssen entweder als eigenständige Compute Engine-Instanzen oder als Teil eines Slurm-Clusters erstellt werden.
- Die Compute-Instanzen müssen mit reservierungsgebundener Kapazität erstellt worden sein.
- Die Compute-Instanzen müssen die Maschinenserie A4X Max, A4X, A4, A3 Ultra oder A3 Mega verwenden.
- Die Straggler-Erkennung unterstützt jedoch auch VM-Instanzen, die die Maschinenserie A3 Mega verwenden.
Wenn Sie Messwerte für ML-Arbeitslasten überwachen möchten, müssen Sie das Monitoring für Ihre Arbeitslast einrichten.
Einschränkungen bei der Erkennung von Nachzüglern
Für Messwerte zur Straggler-Erkennung gelten die folgenden zusätzlichen Einschränkungen:
- Für andere unterstützte Maschinenserien als A3 Mega unterstützt die Straggler-Erkennung nur Compute-Instanzen, die die Collective Communication Analyzer-Bibliothek (CoMMA) aktivieren, um NCCL-Telemetriedaten in Google Cloud -Dienste zu exportieren. Weitere Informationen finden Sie in der CoMMA-Übersicht.
- Die Straggler-Erkennung benötigt in der Regel bis zu 10 Minuten, um einen Straggler zu melden.
- Im Gegensatz zu den anderen Messwerten in diesem Dokument können Sie die Messwerte zur Erkennung von Nachzüglern für Ihre Projekte nicht nach Cluster, Block, Unterblock oder Compute-Instanz filtern. Sie können jedoch Abfragen für Logs zur Erkennung von Nachzüglern nach der ID einer oder mehrerer Compute-Instanzen filtern, die als Nachzügler vermutet werden.
Einschränkungen bei der Erkennung nicht reagierender Arbeitslasten
Messwerte zur Erkennung nicht reagierender Arbeitslasten unterstützen nur Compute-Instanzen, die die CoMMA-Bibliothek (Collective Communication Analyzer) verwenden, um NCCL-Telemetriedaten in Google Cloud -Dienste zu exportieren. Weitere Informationen finden Sie in der CoMMA-Übersicht.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Überwachen von Messwerten für AI Hypercomputer-Arbeitslasten benötigen:
-
Zum Aufrufen von Messwerten in Cloud Monitoring:
Monitoring-Bearbeiter (
roles/monitoring.editor) für das Projekt -
So rufen Sie Logs zur Straggler-Erkennung in Logging auf:
Loganzeige (
roles/logging.viewer) für das Projekt
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Diese vordefinierten Rollen enthalten die Berechtigungen, die zum Überwachen von Messwerten für AI Hypercomputer-Arbeitslasten erforderlich sind. Maximieren Sie den Abschnitt Erforderliche Berechtigungen, um die notwendigen Berechtigungen anzuzeigen:
Erforderliche Berechtigungen
Die folgenden Berechtigungen sind erforderlich, um Messwerte für AI Hypercomputer-Arbeitslasten zu überwachen:
-
Zum Aufrufen von Dashboards:
monitoring.dashboards.getfür das Projekt -
Zum Erstellen von Dashboards:
monitoring.dashboards.createfür das Projekt -
So rufen Sie Logeinträge auf:
logging.logEntries.listfür das Projekt
Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Verfügbare Messwerte
Je nach Anwendungsfall stehen die folgenden Messwerte für das Monitoring Ihrer Compute-Instanzen und Slurm-Cluster zur Verfügung:
Informationen zum Überwachen des Zustands, der Leistung und der Netzwerkleistung der GPUs, die an Ihre Compute-Instanzen angehängt sind, finden Sie unter Infrastrukturmesswerte.
Informationen zum Überwachen der Effizienz der GPUs in Ihren ML-Arbeitslasten finden Sie unter Messwerte für ML-Arbeitslasten.
Informationen zum Überwachen von mutmaßlichen Nachzügler-Compute-Instanzen in ML-Arbeitslasten mit langsamer Leistung finden Sie unter Messwerte zur Nachzüglererkennung.
Informationen zum Aufrufen dieser Messwerte finden Sie in diesem Dokument unter Messwerte visualisieren.
Infrastrukturmesswerte
Mit den folgenden Messwerten können Sie den Zustand, die Leistung und die Netzwerkleistung der GPUs überwachen, die an Ihre Compute-Instanzen angehängt sind:
Eine Übersicht über die in Compute Engine verfügbaren Messwerte finden Sie unter Google Cloud -Messwerte.
GPU-Zustandsmesswerte
Verwenden Sie die folgenden Messwerte, um den Zustand Ihrer GPUs zu überwachen:
| Name | Messwerttyp | Unterstützte Maschinenserien | Beschreibung |
|---|---|---|---|
| Maschinenstatus | machine/machine_status |
A4X Max, A4X, A4, A3 Ultra oder A3 Mega | Ob die Maschine, die die Compute-Instanz verwendet, fehlerfrei ist oder ob sie fehlerhaft ist und repariert werden muss. |
| NVSwitch-Status | instance/gpu/nvswitch_status |
A4X Max, A4X, A4, A3 Ultra oder A3 Mega | Ob bei einem NVLink-Switch auf einer NVIDIA-GPU, die an eine Compute-Instanz angehängt ist, Probleme auftreten. |
| VM-Infrastrukturzustand | instance/gpu/infra_health |
A4X, A4, A3 Ultra oder A3 Mega | Der Zustand des Clusters, Blocks, Unterblocks und Hosts, auf dem Ihre Compute-Instanzen ausgeführt werden. Wenn dieser Messwert zeigt, dass die Infrastruktur einer Compute-Instanz fehlerhaft ist, wird das Problem auch im Messwert beschrieben. |
| VM-Fehlervorhersagewert | instance/gpu/failure_prediction_score |
A4X, A4, A3 Ultra oder A3 Mega |
Die Wahrscheinlichkeit, dass sich die Leistung des Hosts, auf dem die Compute-Instanz ausgeführt wird, in den nächsten fünf Stunden verschlechtert. Der Wert kann im Bereich von 0.0 bis 1.0 liegen. Je näher der Wert über einen längeren Zeitraum an 1.0 liegt, desto wahrscheinlicher ist es, dass die Leistung der Compute-Instanz beeinträchtigt wird. In diesem Fall empfehlen wir, den Job auf eine andere Compute-Instanz zu verschieben. Wenn Probleme mit der Compute-Instanz auftreten, melden Sie den Host als fehlerhaft.
|
GPU-Leistungsmesswerte
Verwenden Sie die folgenden Messwerte, um die Leistung Ihrer GPUs zu überwachen:
| Name | Messwerttyp | Unterstützte Maschinenserien | Beschreibung |
|---|---|---|---|
| Kumulierte Kontextauslastung | instance/gpu/accumulated_context_utilization_seconds |
A4X Max, A4X, A4, A3 Ultra oder A3 Mega | Die Gesamtzeit in Sekunden, die die GPU mit der Verarbeitung einer Arbeitslast beschäftigt ist. |
| GPU-Stromverbrauch | instance/gpu/power_consumption |
A4X Max, A4X, A4, A3 Ultra oder A3 Mega | Die Leistung in Watt (W) und in Dezimalwerten, die von einzelnen GPUs auf dem Host verbraucht wird. Bei Compute-Instanzen mit mehreren angehängten GPUs wird der Stromverbrauch für jede GPU auf dem Host separat angegeben. |
| SM-Auslastung | instance/gpu/sm_utilization |
A4X Max, A4X, A4, A3 Ultra oder A3 Mega | Ein Wert ungleich null gibt an, dass die Streaming-Multiprozessoren (SMs) auf Ihren GPUs aktiv verwendet werden. |
| GPU-Temperatur | instance/gpu/temperature |
A4X Max, A4X, A4, A3 Ultra oder A3 Mega | Die Temperatur in Celsius (℃) und in Dezimalwerten einzelner GPUs auf dem Host. Bei Compute-Instanzen mit mehreren angehängten GPUs wird die Temperatur für jede GPU auf dem Host separat angegeben. |
| GPU-Wärmemarge | instance/gpu/tlimit |
A4X Max, A4X, A4, A3 Ultra oder A3 Mega | Der thermische Spielraum in Celsius (℃) und in Dezimalwerten, den einzelne GPUs haben, bevor sie aufgrund hoher Temperaturen langsamer werden müssen. Bei Compute-Instanzen mit mehreren angehängten GPUs wird der thermische Spielraum für jede GPU auf dem Host separat angegeben. |
Leistungsmesswerte für GPU-Netzwerke
Verwenden Sie die folgenden Messwerte, um die Netzwerkleistung Ihrer GPUs zu überwachen. Informationen zum Monitoring von ToR-Netzwerk-Switches im Backend finden Sie unter ToR-Switch-Messwerte.
| Name | Messwerttyp | Unterstützte Maschinenserien | Beschreibung |
|---|---|---|---|
| Änderungen am Link-Mobilfunkanbieter | instance/gpu/link_carrier_changes |
A4X, A4, A3 Ultra oder A3 Mega | Wie oft sich der Netzwerkanbieter pro Minute ändert. |
| Netzwerk-RTT | instance/gpu/network_rtt |
A4X, A4, A3 Ultra oder A3 Mega | Die Umlaufzeit in Mikrosekunden, die Netzwerkdaten für die Übertragung zwischen einer Quelle und einem Ziel benötigen. |
| Netzwerkverkehr zwischen Blöcken | instance/gpu/network/inter_block_tx |
A4X, A4, A3 Ultra oder A3 Mega | Die Anzahl der Byte des Netzwerkverkehrs zwischen Blöcken. |
| Netzwerktraffic zwischen Subblöcken | instance/gpu/network/inter_subblock_tx |
A4X, A4, A3 Ultra oder A3 Mega | Die Anzahl der Byte des Netzwerkverkehrs zwischen Unterblöcken. |
| Netzwerkverkehr im Subblock | instance/gpu/network/intra_subblock_tx |
A4X, A4, A3 Ultra oder A3 Mega | Die Anzahl der Byte des Netzwerkverkehrs innerhalb eines einzelnen Unterblocks. |
| Aktive NVLink-Geschwindigkeit | instance/gpu/nvlink_active_speed |
A4X Max, A4X, A4, A3 Ultra oder A3 Mega | Die aktuelle Portgeschwindigkeit des Zugriffslinks in Gbit/s. |
| Durchsatz-RX-Bytes | instance/gpu/throughput_rx_bytes |
A4X, A4, A3 Ultra oder A3 Mega | Die Anzahl der Byte, die über den Netzwerkverkehr empfangen wurden. |
| Durchsatz-TX-Bytes | instance/gpu/throughput_tx_bytes |
A4X, A4, A3 Ultra oder A3 Mega | Die Anzahl der Byte, die an den Netzwerkverkehr übertragen wurden. |
ToR-Switch-Messwerte
Bei A4X Max- und A4X-Clustern können Sie die Telemetrie des Backend-ToR-Netzwerk-Switches überwachen, um während des verteilten ML-Trainings Folgendes zu tun:
- Zustand von Switch und Port beobachten.
- Verfügbare Bandbreitenkapazität und Tiefe der Warteschlange bewerten.
- Diagnostizieren Sie Paketverluste, Fehler, Schnittstellen-Flaps und Ereignisse im Zusammenhang mit der Überlastungsverwaltung.
Diese Messwerte verwenden den überwachten Ressourcentyp compute.googleapis.com/NetworkSwitch und das Messwerttyppräfix compute.googleapis.com/.
Wählen Sie im Metrics Explorer den Ressourcentyp NetworkSwitch (compute.googleapis.com/NetworkSwitch) aus.
Die Messwerte für den Wechsel sind in folgende Kategorien unterteilt:
Gesundheits- und Statusmesswerte wechseln
Mit den in diesem Abschnitt aufgeführten Messwerten können Sie Folgendes tun:
- Betriebsstatus von Switch-Ports prüfen
- CPU- und Arbeitsspeicherauslastung des Switches überwachen.
- Prüfen Sie die Bootzeiten, um unerwartete Neustarts zu erkennen.
| Name | Messwerttyp | Unterstützte Maschinenserien | Beschreibung |
|---|---|---|---|
| Status der Nummernmitnahme | network_switch/port_status |
A4X Max oder A4X | Gibt den Betriebsstatus der physischen Schnittstelle (Port) auf dem Netzwerk-Switch an. Der Messwert ist für die Aggregation immer 1. Der tatsächliche Status wird im Label status angegeben (z. B. UP oder DOWN).Wichtige Labels: port_identifier, status, peer_target_identifier, peer_port_identifier, subblock_id, block_id, reservation_id, switch_type.
|
| CPU-Auslastung | network_switch/cpu_utilization |
A4X Max oder A4X | Die CPU-Auslastung des Netzwerk-Switches, gemessen als Bruchteil von 0.0 bis 1.0.Schlüssellabels: subblock_id, block_id, reservation_id, switch_type.
|
| Verwendeter Arbeitsspeicher | network_switch/memory_used |
A4X Max oder A4X | Der vom Netzwerk-Switch verwendete Arbeitsspeicher in Byte. Schlüssellabels: subblock_id, block_id, reservation_id, switch_type.
|
| Arbeitsspeicher insgesamt | network_switch/total_memory_bytes |
A4X Max oder A4X | Die Gesamtspeicherkapazität des Netzwerk-Switches in Byte. Schlüssellabels: subblock_id, block_id, reservation_id, switch_type.
|
| Bootzeit | network_switch/boot_time_in_ns |
A4X Max oder A4X | Der Boot-Zeitstempel des Netzwerk-Switches in Nanosekunden seit der Unix-Epoche. Schlüssellabels: subblock_id, block_id, reservation_id, switch_type.
|
Messwerte für Switch-Kapazität und ‑Warteschlange
Verwenden Sie die folgenden Messwerte, um die Referenz- und die nutzbare Netzwerkkapazität zu verfolgen und die Tiefe der Warteschlange und die Anzahl der verworfenen Pakete auf dem Switch zu überwachen:
| Name | Messwerttyp | Unterstützte Maschinenserien | Beschreibung |
|---|---|---|---|
| Referenzkapazität | network_switch/baseline_capacity_kbps |
A4X Max oder A4X | Die gesamte potenzielle Bandbreitenkapazität (Baseline) einer ToR-Switch-Verbindung zum Superblock in Kilobit pro Sekunde (kbit/s). Schlüssellabels: subblock_id, block_id, reservation_id, switch_type.
|
| Effektive Kapazität | network_switch/effective_capacity_kbps |
A4X Max oder A4X | Die nutzbare Betriebskapazität einer ToR-Switch-Verbindung zum Superblock in Kilobit pro Sekunde (kbit/s). Dieser Messwert spiegelt Kapazitätsreduzierungen wider, die durch beeinträchtigte oder Offline-Links verursacht werden. Schlüssellabels: subblock_id, block_id, reservation_id, switch_type.
|
| Maximale Tiefe der Warteschlange für ausgehenden Traffic | network_switch/egress_max_queue_depth |
A4X Max oder A4X | Die maximale Warteschlangentiefe, die während des letzten Messzyklus beobachtet wurde. Wichtige Labels: port_identifier, queue_name, subblock_id, block_id, reservation_id, switch_type.
|
| Verworfene Pakete in der Warteschlange für ausgehenden Traffic | network_switch/egress_queue_drops_count |
A4X Max oder A4X | Die kumulative Anzahl der Pakete, die aufgrund von Warteschlangenüberlastung oder Pufferauslastung aus Warteschlangen für ausgehenden Traffic verworfen wurden. Wichtige Labels: port_identifier, queue_name, subblock_id, block_id, reservation_id, switch_type.
|
| Verworfene Pakete im Zwischenspeicher | network_switch/in_buffer_discards |
A4X Max oder A4X | Die kumulative Anzahl der eingehenden Pakete, die beim Eingang aufgrund eines Pufferüberlaufs verworfen wurden. Schlüssellabels: port_identifier, peer_target_identifier, peer_port_identifier, subblock_id, block_id, reservation_id, switch_type.
|
Messwerte zu Switch-Drops, Fehlern und Flusssteuerung
Verwenden Sie die Messwerte in diesem Abschnitt, um die folgenden Probleme zu diagnostizieren, die zu Stillständen beim verteilten Training oder zu Zeitüberschreitungen bei der kollektiven Kommunikation (z. B. NCCL-Watchdog-Zeitüberschreitungen) führen können:
- Paketverluste, Übertragungsfehler und physische Verbindungsabbrüche.
- FEC-Wortfehler (Forward Error Correction)
- Ereignisse zur Überlastungsverwaltung, z. B. Pausen bei der prioritätsbasierten Flusssteuerung (Priority-based Flow Control, PFC) und Markierungen für die explizite Überlastungsbenachrichtigung (Explicit Congestion Notification, ECN).
| Name | Messwerttyp | Unterstützte Maschinenserien | Beschreibung |
|---|---|---|---|
| Schnittstellenklappen | network_switch/interface_flaps_count |
A4X Max oder A4X | Die kumulative Anzahl der Zustandsübergänge der physischen Verbindung (Wechsel zwischen UP und DOWN) auf der Switch-Port-Schnittstelle.Wichtige Labels: port_identifier, subblock_id, block_id, reservation_id, switch_type.
|
| FEC-Wortfehler | network_switch/fec_word_error_count |
A4X Max oder A4X | Die kumulative Anzahl der FEC-Wortfehler (Forward Error Correction). Verwenden Sie das boolesche Label correctable (true oder false), um zwischen korrigierbaren und nicht korrigierbaren Fehlern zu unterscheiden.Wichtige Labels: port_identifier, correctable, subblock_id, block_id, reservation_id, switch_type.
|
| ECN-markierte Pakete | network_switch/ecn_marked_packets_count |
A4X Max oder A4X | Die kumulative Anzahl der Pakete, die aufgrund von Überschreitungen des Pufferschwellenwerts mit ECN-Bits (Explicit Congestion Notification) gekennzeichnet sind. Wichtige Labels: port_identifier, subblock_id, block_id, reservation_id, switch_type.
|
| Pfc rx-Pakete | network_switch/pfc_rx_packets_count |
A4X Max oder A4X | Die kumulative Anzahl der auf dem Port empfangenen Pause-Frames für die prioritätsbasierte Flusssteuerung (Priority-based Flow Control, PFC). Hinweis: Gilt nur für dedizierte Umgebungen, in denen PFC aktiviert ist. Wichtige Labels: port_identifier, priority_index, subblock_id, block_id, reservation_id, switch_type.
|
| PFC-TX-Pakete | network_switch/pfc_tx_packets_count |
A4X Max oder A4X | Die kumulative Anzahl der Pause-Frames der prioritätsbasierten Flusssteuerung (PFC), die vom Port übertragen werden, um eingehenden Traffic zu drosseln. Hinweis: Gilt nur für dedizierte Umgebungen, in denen PFC aktiviert ist. Wichtige Labels: port_identifier, queue_name, subblock_id, block_id, reservation_id, switch_type.
|
| QoS-TX-Pakete | network_switch/qos_tx_packets |
A4X Max oder A4X | Die kumulative Anzahl der QoS-Pakete (Quality of Service), die in der angegebenen Warteschlange übertragen wurden. Wichtige Labels: port_identifier, queue_name, subblock_id, block_id, reservation_id, switch_type.
|
| Anzahl der eingehenden Pakete | network_switch/in_packets_count |
A4X Max oder A4X | Die kumulative Anzahl der eingehenden Pakete, die am Switch-Port empfangen wurden. Wichtige Labels: port_identifier, subblock_id, block_id, reservation_id, switch_type.
|
| In Fehlern | network_switch/in_errors |
A4X Max oder A4X | Die kumulative Anzahl der eingehenden Pakete, die mit Fehlern empfangen wurden, die ihre Zustellung verhindert haben. Schlüssellabels: port_identifier, peer_target_identifier, peer_port_identifier, subblock_id, block_id, reservation_id, switch_type.
|
| In „Verworfen“ | network_switch/in_discards |
A4X Max oder A4X | Die kumulative Anzahl der gültigen eingehenden Pakete, die verworfen wurden (z. B. aufgrund von fehlendem Zwischenspeicher). Schlüssellabels: port_identifier, peer_target_identifier, peer_port_identifier, subblock_id, block_id, reservation_id, switch_type.
|
| Ausgangsfehler | network_switch/out_errors |
A4X Max oder A4X | Die kumulative Anzahl der ausgehenden Pakete, die aufgrund von Fehlern nicht übertragen werden konnten. Schlüssellabels: port_identifier, peer_target_identifier, peer_port_identifier, subblock_id, block_id, reservation_id, switch_type.
|
| Ausgehende verworfene Pakete | network_switch/out_discards |
A4X Max oder A4X | Die kumulative Anzahl der ausgehenden Pakete, die verworfen wurden, obwohl keine Fehler erkannt wurden. Schlüssellabels: port_identifier, peer_target_identifier, peer_port_identifier, subblock_id, block_id, reservation_id, switch_type.
|
| Anzahl der eingehenden Bytes | network_switch/in_bytes_count |
A4X Max oder A4X | Die kumulative Anzahl der eingehenden Bytes, die am Switch-Port empfangen wurden. Wichtige Labels: port_identifier, subblock_id, block_id, reservation_id, switch_type.
|
| Anzahl der ausgehenden Bytes | network_switch/out_bytes_count |
A4X Max oder A4X | Die kumulative Anzahl der ausgehenden Byte, die über den Switch-Port übertragen wurden. Wichtige Labels: port_identifier, subblock_id, block_id, reservation_id, switch_type.
|
Messwerte zu schwerwiegenden GPU-Fehlern
Mit den folgenden Messwerten können Sie die Fehler überwachen, die bei Ihren GPUs auftreten und die dazu führen können, dass Ihre Compute-Instanzen beendet werden oder ihre Leistung beeinträchtigt wird:
| Name | Messwerttyp | Unterstützte Maschinenserien | Beschreibung |
|---|---|---|---|
| NVLink-Laufzeitfehler | instance/gpu/nvlink_runtime_error |
A4X Max oder A4X | Gibt an, ob ein NVLink-Laufzeitfehler aufgetreten ist. |
| Nicht korrigierbare DRAM-ECC-Fehler | instance/gpu/dram_uncorrectable_ecc_error_count |
A4X Max oder A4X | Die Anzahl der nicht korrigierbaren Fehlerkorrekturcodes (ECCs) in einem GPU-DRAM (Dynamic Random Access Memory). |
| Anzahl der nicht korrigierbaren DRAM-Zeilenneuzuordnungen | instance/gpu/dram_uncorrectable_row_remapping_count |
A4X Max oder A4X | Die Anzahl der Zeilenneuzuordnungen aufgrund nicht korrigierbarer Fehler in GPU-DRAMs. |
| Nicht korrigierbare DRAM-Zeilenneuzuordnung fehlgeschlagen | instance/gpu/dram_row_remapping_failed |
A4X Max oder A4X | Gibt an, ob eine Zeilenneuzuordnung in GPU-DRAMs aufgrund eines der folgenden Probleme fehlgeschlagen ist:
|
| Nicht korrigierbare PCIe-Fehler | instance/gpu/pcie_fatal_error_count |
A4X Max oder A4X | Die Anzahl der nicht korrigierbaren PCIe-Fehler (Peripheral Component Interconnect Express). |
| Nicht korrigierbare Cache-ECC-Fehler | instance/gpu/cache_uncorrectable_ecc_error_count |
A4X Max oder A4X | Die Anzahl der nicht korrigierbaren ECCs im Cache-Speicher. |
ML-Arbeitslastmesswerte
Wenn Sie die Produktivität – insbesondere den Goodput – Ihrer ML-Arbeitslasten überwachen möchten, verwenden Sie die folgenden Messwerte:
| Name | Messwerttyp | Unterstützte Maschinenserien | Beschreibung |
|---|---|---|---|
| Produktive Zeit | workload/goodput_time |
A4X, A4, A3 Ultra oder A3 Mega | Die Zeit in Sekunden, die die Arbeitslast für Goodput-Aktivitäten aufwendet. Diese Aktivitäten sind wichtige, nützliche Aufgaben, z. B. ein Vorwärts- oder Rückwärtsdurchlauf während des Modelltrainings. |
| Unproduktive Zeit | workload/badput_time |
A4X, A4, A3 Ultra oder A3 Mega | Die Zeit in Sekunden, die die Arbeitslast für Badput-Aktivitäten aufwendet. Diese Aktivitäten sind Overhead-Aufgaben, z. B. das Laden oder Vorverarbeiten von Daten für das Training. |
Messwerte zur Erkennung von Nachzüglern
Mithilfe von Messwerten zur Erkennung von Nachzüglern können Sie mutmaßliche Nachzügler erkennen und lokalisieren. Nachzügler sind einzelne, nicht abstürzende Fehler, die letztendlich die gesamte Arbeitslast verlangsamen.
Verwenden Sie den folgenden Messwert, um die Straggler-Erkennung für Ihre VMs zu überwachen:
| Name | Messwerttyp | Unterstützte Maschinenserien | Beschreibung |
|---|---|---|---|
| Verdächtige Nachzügler | instance/gpu/straggler_status |
A4X, A4, A3 Ultra oder A3 Mega | Ob eine VM als Nachzügler vermutet wird, der die Leistung der Arbeitslast beeinträchtigt. Wir empfehlen, nur dann auf vermutete Nachzügler zu reagieren, wenn andere Messwerte darauf hindeuten, dass bei der Arbeitslast Probleme auftreten. |
Sie können sich auch Messwerte zur Erkennung von Nachzüglern in den Logeinträgen für eine A4X-, A4-, A3 Ultra- oder A3 Mega-Instanz ansehen. Sie können beispielsweise die folgenden Abfragen verwenden:
| Beschreibung | Abfrage |
|---|---|
| Logs mit mutmaßlichen Nachzüglern für bestimmte VMs. Mit dieser Abfrage können Sie prüfen, ob es in Ihrem Projekt mutmaßliche Nachzügler für eine bestimmte Arbeitslast gibt. |
logName=~ "/logs/compute.googleapis.com%2Fworkload_diagnostic" AND jsonPayload.suspectedStragglersDetection.numNodes > 0 AND jsonPayload.suspectedStragglersDetection.nodes.instanceId="INSTANCE_ID"
Ersetzen Sie
OR jsonPayload.suspectedStragglersDetection.nodes.instanceId="INSTANCE_ID"
|
| Alle Logs aus der Straggler-Erkennung für Ihr Projekt. Mit dieser Abfrage können Sie prüfen, ob der Dienst zur Erkennung von Nachzüglern ausgeführt wird, wenn keine mutmaßlichen Nachzügler erkannt werden. Aufgrund der Einschränkungen können Sie die Logs ohne verdächtige Nachzügler nicht nach bestimmten VMs filtern. |
|
Messwerte zur Straggler-Erkennung sind aus folgenden Gründen besonders hilfreich für große ML-Arbeitslasten:
Umfangreiche ML-Arbeitslasten sind sehr anfällig für Nachzügler. Bei umfangreichen ML-Arbeitslasten wird synchrones und massiv verteiltes Computing verwendet. (Mit anderen Worten: Sie haben viele, stark voneinander abhängige Komponenten, die gleichzeitig ausgeführt werden.) Diese Architektur macht umfangreiche ML-Arbeitslasten sehr anfällig für Single-Point-of-Failure-Probleme wie Nachzügler.
Es ist sehr schwierig, Nachzügler in umfangreichen ML-Arbeitslasten zu erkennen und zu lokalisieren. Es gibt zwei Arten von Single-Point-of-Failure-Fehlern:
Stoppfehler: Fehler, die dazu führen, dass das gesamte System angehalten wird, z. B. Hostfehler und Wartungsereignisse. Sie sind relativ einfach zu erkennen und zu beheben.
Langsame Fehler: Fehler, die zu einer erheblichen Leistungsminderung ohne Abstürze führen. Sie sind sehr schwer zu lokalisieren und zu beheben.
Aufgrund ihrer langsamen Ausfallnatur sind Nachzügler von Natur aus schwer zu erkennen und zu lokalisieren, insbesondere bei umfangreichen synchronen Arbeitslasten.
Messwerte zur Erkennung nicht reagierender Arbeitslasten
Messwerte zur Erkennung nicht reagierender Arbeitslasten helfen Ihnen bei Folgendem:
- Erkennen, wenn eine gesamte Arbeitslast blockiert ist (manchmal als NCCL-Blockierung bezeichnet)
- Gründe für das Stocken der Arbeitslast, z. B. ob es durch einen Prozessabsturz oder ein blockiertes Netzwerk verursacht wurde
Verwenden Sie die folgenden Messwerte, um nicht reagierende Arbeitslasten für Ihre Compute-Instanzen zu erkennen und zu diagnostizieren:
| Name | Messwerttyp | Unterstützte Maschinenserien | Beschreibung |
|---|---|---|---|
| Nicht reagierende Arbeitslasten mithilfe von NCCL-Telemetrie erkennen | instance/gpu/nccl_hang |
A4X Max, A4X, A4 und A3 Ultra | Die Anzahl der erkannten nicht reagierenden Arbeitslast-Ereignisse als Zeitreihe. |
Erkennung nicht reagierender Arbeitslasten aktivieren
Wenn Sie die Erkennung nicht reagierender Arbeitslasten aktivieren möchten, müssen Sie CoMMA mit Heartbeat-Telemetrie aktivieren. Dabei handelt es sich um ein regelmäßiges Ping-Signal, das angibt, dass eine Arbeitslast ausgeführt wird. In aktuellen Versionen von CoMMA ist diese Option standardmäßig aktiviert. Wenn Sie jedoch die CoMMA-Version aus Version 1.1.1 des NICCL/gIB-Bundles verwenden, müssen Sie die Heartbeat-Telemetrie manuell aktivieren. Informationen dazu, welche Version des NICCL/gIB-Bundles Sie verwenden, finden Sie unter NCCL- und gIB-Version prüfen.
Wenn Sie die Heartbeat-Telemetrie für CoMMA manuell aktivieren möchten, geben Sie die folgenden Umgebungsvariablen in Ihrer Trainingsumgebung an:
NCCL_PROFILER_HEARTBEAT=true
NCCL_PROFILER_HEARTBEAT_UPLOAD_INTERVAL=10s
Verwenden Sie NCCL_PROFILER_HEARTBEAT, um die Heartbeat-Telemetrie zu aktivieren oder zu deaktivieren, und NCCL_PROFILER_HEARTBEAT_UPLOAD_INTERVAL, um die Häufigkeit der Heartbeat-Telemetrie anzugeben. Weitere Informationen finden Sie unter CoMMA-Umgebungsvariablen.
Erkennung nicht reagierender Arbeitslasten deaktivieren
Wenn Sie die Erkennung nicht reagierender Arbeitslasten deaktivieren möchten, deaktivieren Sie die Heartbeat-Telemetrie in CoMMA. Geben Sie dazu die folgende Umgebungsvariable in Ihrer Trainingsumgebung an:
NCCL_PROFILER_HEARTBEAT=false
Gründe für nicht reagierende Arbeitslasten
Wenn Sie wissen möchten, warum eine Arbeitslast nicht reagiert, prüfen Sie den Wert des Labels hang_reason. Gehen Sie dazu so vor:
-
Rufen Sie in der Google Cloud Console das leaderboard auf der Seite des Metrics Explorer auf:
Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Monitoring ist.
Suchen Sie nach dem folgenden Messwert:
compute.googleapis.com/instance/gpu/nccl_hangVerwenden Sie die Funktion Aggregation und wählen Sie die folgenden Labels aus:
instance_idhang_reason
In der folgenden Tabelle sind mögliche Werte für das Label aufgeführt, was diese Werte für Ihre Arbeitslasten bedeuten und welche nächsten Schritte empfohlen werden.
| Labelwert | Beschreibung | Empfehlungen |
|---|---|---|
MissingHeartbeatIssue |
Die Heartbeat-Telemetrie wurde für einen oder mehrere Ränge beendet, was in der Regel auf einen schwerwiegenden Prozess- oder Knotenabsturz hinweist. |
|
StalledRankIssue |
Heartbeat-Telemetriedaten werden weiterhin empfangen, aber die Ränge machen bei NCCL-Vorgängen keine Fortschritte. |
|
MissingCommunicatorIssue |
Alle Ränge, die zu einem NCCL-Kommunikator gehören, haben aufgehört, Fortschritte zu machen. |
|
NoHangIssue |
Der Standardwert. Es wurden keine Probleme gefunden. |
|
Messwerte aufrufen
So rufen Sie Messwerte für Ihre Compute-Instanzen und Slurm-Cluster auf:
So rufen Sie Infrastrukturmesswerte und Messwerte zur Straggler-Erkennung auf:
Wenn Sie sich einen schnellen Überblick über den Zustand und die Leistung Ihrer Infrastruktur verschaffen oder ein vorhandenes Dashboard anpassen möchten, verwenden Sie vordefinierte Dashboards.
Für spezielle Monitoring-Anforderungen können Sie benutzerdefinierte Dashboards erstellen.
Informationen zum Aufrufen von ML-Arbeitslastmesswerten finden Sie in der Dokumentation zum Einrichten des Monitorings für Ihre Arbeitslast.
Informationen zum Aufrufen von Logs aus der Straggler-Erkennung finden Sie unter Logs zur Straggler-Erkennung aufrufen.
Wenn bei der Verwendung eines Dashboards Probleme auftreten, lesen Sie den Hilfeartikel Fehlerbehebung bei langsamer Leistung.
Vordefinierte Dashboards verwenden
Sie können vordefinierte Monitoring-Dashboards für AI Hypercomputer verwenden, um Messwerte für Ihre Compute-Instanzen und Slurm-Cluster aufzurufen. Sie können auch eine Kopie eines vordefinierten Dashboards erstellen und an Ihre Anforderungen anpassen.
So verwenden Sie ein vordefiniertes Dashboard für AI Hypercomputer:
-
Öffnen Sie in der Google Cloud Console die Seite Dashboards :
Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Monitoring ist.
Klicken Sie in der Spalte Name auf den Namen eines der folgenden Dashboards, je nachdem, welche Messwerte Sie sich ansehen möchten:
Verwenden Sie das Dashboard Cluster Director Health Monitoring, um den Zustand von Compute-Instanzen, die GPU-Leistung und die Erkennung von Stragglern zu überwachen.
Weitere Informationen dazu, wie Sie diese Messwerte verwenden, um Probleme zu identifizieren und zu analysieren, finden Sie auch im Playbook-Dashboard GCE Interactive Playbook – Cluster Director Health Monitoring.
Verwenden Sie das Dashboard Cluster Director Transmission Efficiency, um die Effizienz der Netzwerkübertragung zu überwachen.
Verwenden Sie das Dashboard Cluster Director Block Network, um die Netzwerkeffizienz zwischen Blöcken und Unterblöcken zu überwachen.
Weitere Informationen dazu, wie Sie diese Messwerte verwenden, um Probleme zu identifizieren und zu analysieren, finden Sie im Playbook-Dashboard GCE Interactive Playbook – Cluster Director Block Network.
Die Detailseite des ausgewählten Dashboards wird geöffnet. Mit der Zeitraumauswahl in der Symbolleiste können Sie den Zeitraum der Daten ändern.
Optional: Wenn Sie eine Kopie eines Dashboards erstellen und an Ihre Anforderungen anpassen möchten, klicken Sie auf Dashboard kopieren.
Benutzerdefinierte Dashboards erstellen
So erstellen Sie ein benutzerdefiniertes Monitoring-Dashboard:
Wählen Sie die zu überwachenden Messwerte aus. Falls noch nicht geschehen, lesen Sie den Abschnitt Verfügbare Messwerte in diesem Dokument.
Logs zur Nachzüglererkennung ansehen
Führen Sie die folgenden Schritte aus, um Logs zur Nachzüglererkennung mit dem Log-Explorer aufzurufen:
-
Rufen Sie in der Google Cloud Console das und die Seite Log-Explorer auf:
Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis mit der Zwischenüberschrift Logging aus.
Auf der Seite werden standardmäßig alle Logs in Ihrem Projekt abgefragt. Klicken Sie auf Abfrage beenden.
Wählen Sie in der Symbolleiste mit der Zeitraumauswahl den Zeitraum aus, den Sie analysieren möchten.
Geben Sie im Bereich Abfrage eine Abfrage für Logs zur Erkennung von Nachzüglern ein.
Klicken Sie auf Abfrage ausführen.
Das folgende Beispiel zeigt einen Logeintrag für die Straggler-Erkennung.
{
...
"jsonPayload": {
...
"@type": "type.googleapis.com/ml.aitelemetry.performancedebugging.output.NetworkStragglersOutput",
"suspectedStragglersDetection": {
"numNodes": 4,
"nodes": [
{
"latencyMs": 9,
"instanceId": "INSTANCE_ID_1"
},
{
"latencyMs": 9,
"instanceId": "INSTANCE_ID_2"
},
{
"instanceId": "INSTANCE_ID_3",
"latencyMs": 4
},
{
"instanceId": "INSTANCE_ID_4",
"latencyMs": 0
}
],
"message": "Suspected stragglers detected."
}
},
"resource": {
"type": "project",
"labels": {
"project_id": "PROJECT_NUMBER"
}
},
...
"severity": "INFO",
"logName": "projects/PROJECT_ID/logs/compute.googleapis.com%2Fworkload_diagnostic",
...
}
Der Logeintrag enthält diese Felder:
numNodes: Die Anzahl der im Projekt erkannten mutmaßlichen Nachzügler-Compute-Instanzen. Im Beispiel wurden vier mutmaßliche Nachzügler-Compute-Instanzen erkannt.instanceId: Die ID einer Compute-Instanz, die als mutmaßlicher Nachzügler erkannt wurde.
Nächste Schritte
- VMs beobachten und überwachen
- Dashboards für Google Cloud -Dienste anpassen
- Fehlerbehebung bei langsamer Leistung