In diesem Dokument wird beschrieben, wie Sie Cloud Monitoring-Dashboards verwenden, um A4X Max-, A4X-, A4-, A3 Ultra- und A3 Mega-Instanzen zu ü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 Ausfallzeiten in Ihren Arbeitslasten minimieren.
Wenn Sie benutzerdefinierte Dashboards erstellen oder vorgefertigte Monitoring-Dashboards verwenden, können Sie Folgendes überwachen:
Status von Compute-Instanzen
GPU-Leistung
Effizienz der Netzwerkübertragung
Netzwerkeffizienz zwischen Blöcken und Unterblöcken
Effizienz von Arbeitslasten für maschinelles Lernen (ML)
Nachzüglererkennung
Erkennung von nicht reagierenden Arbeitslasten
Informationen zum Überwachen von Clustern mit Cluster Director finden Sie unter Clusterleistung mit vorgefertigten Dashboards überwachen.
Hinweis
Bevor Sie Ihre Arbeitslast überwachen, sollten Sie die folgenden Schritte ausführen, falls Sie dies noch nicht getan haben:
Stellen Sie eine Arbeitslast bereit, die Sie beobachten können. Informationen dazu, welche Arbeitslasten unterstützt werden, finden Sie in diesem Dokument unter Einschränkungen. Informationen zum Bereitstellen einer Arbeitslast finden Sie unter Übersicht über Bereitstellungsoptionen.
Informationen zu den Google Cloud Diensten zum Monitoring von Arbeitslasten:
Die Messwerte in diesem Dokument werden in Monitoring-Dashboards verwendet. Weitere Informationen zu Monitoring-Dashboards, Aufbewahrungszeiträumen für Monitoring> und Preisen für Monitoring.
Die Erkennung von Nachzüglern stellt auch Logeinträge in Cloud Logging bereit. Weitere Informationen zu Logging-Schnittstellen, Aufbewahrungszeiträumen für Logging und Logging-Preisen
Wenn Sie über die Google Cloud Console auf Google Cloud Dienste und APIs 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.
- Für die Compute-Instanzen muss die Maschinenserie A4X Max, A4X, A4, A3 Ultra oder A3 Mega verwendet werden.
- Die Erkennung von Nachzüglern unterstützt jedoch auch VM-Instanzen, die die Maschinenserie A3 Mega verwenden.
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 reservierter Kapazität erstellt worden sein.
- Für die Compute-Instanzen muss die Maschinenserie A4X Max, A4X, A4, A3 Ultra oder A3 Mega verwendet werden.
Wenn Sie Messwerte für ML-Arbeitslasten überwachen möchten, müssen Sie Monitoring für Ihre Arbeitslast einrichten.
Einschränkungen bei der Erkennung von Nachzüglern
Für Messwerte zur Erkennung von Stragglern gelten die folgenden zusätzlichen Einschränkungen:
- Bei unterstützten Maschinenserien, die nicht A3 Mega sind, wird die Erkennung von Nachzüglern nur für Compute-Instanzen unterstützt, bei denen die CoMMA-Bibliothek (Collective Communication Analyzer) NCCL-Telemetrie in Google Cloud -Dienste exportieren kann. Weitere Informationen finden Sie in der CoMMA-Übersicht.
- Es dauert in der Regel bis zu 10 Minuten, bis ein Nachzügler erkannt wird.
- Im Gegensatz zu den anderen Messwerten in diesem Dokument können Sie Messwerte zur Erkennung von Straggler-Aufgaben für Ihre Projekte nicht nach Cluster, Block, Unterblock oder Compute-Instanz filtern. Sie können Abfragen für Logs zur Erkennung von Straggler-Instanzen jedoch nach der ID einer oder mehrerer Compute-Instanzen filtern, die als Straggler infrage kommen.
Einschränkungen bei der Erkennung nicht reagierender Arbeitslasten
Messwerte zur Erkennung nicht reagierender Arbeitslasten werden nur für Compute-Instanzen unterstützt, die die CoMMA-Bibliothek (Collective Communication Analyzer) verwenden, um NCCL-Telemetrie 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:
-
So rufen Sie Messwerte in Cloud Monitoring auf:
Monitoring-Bearbeiter (
roles/monitoring.editor) für das Projekt -
So rufen Sie Logs zur Erkennung von Nachzüglern in Logging auf:
Logbetrachter (
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 beobachten:
-
So rufen Sie Dashboards auf:
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 sind die folgenden Messwerte zum Monitoring Ihrer Compute-Instanzen und Slurm-Cluster verfügbar:
Informationen zum Überwachen der Integrität, Leistung und 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 Erkennung von Nachzüglern.
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 der verfügbaren Messwerte in Compute Engine finden Sie unter Google Cloud -Messwerte.
GPU-Messwerte
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 | Gibt an, ob der Computer, auf dem die Compute-Instanz ausgeführt wird, fehlerfrei ist oder ob der Computer fehlerhaft ist und repariert werden muss. |
| NVSwitch-Status | instance/gpu/nvswitch_status |
A4X Max, A4X, A4, A3 Ultra oder A3 Mega | Gibt an, ob ein NVLink-Switch auf einer NVIDIA-GPU, die an eine Compute-Instanz angehängt ist, Probleme hat. |
| VM-Infrastrukturzustand | instance/gpu/infra_health |
A4X, A4, A3 Ultra oder A3 Mega | Der Status des Clusters, Blocks, Unterblocks und Hosts, auf dem Ihre Compute-Instanzen ausgeführt werden. Wenn dieser Messwert angibt, dass die Infrastruktur einer Compute-Instanz fehlerhaft ist, wird das Problem auch im Messwert beschrieben. |
| Vorhersagewert für VM-Fehler | instance/gpu/failure_prediction_score |
A4X, A4, A3 Ultra oder A3 Mega |
Die Wahrscheinlichkeit, dass die Leistung des Hosts, auf dem die Compute-Instanz ausgeführt wird, in den nächsten fünf Stunden nachlässt. Der Wert kann zwischen 0.0 und 1.0 liegen. Je näher der Wert über einen längeren Zeitraum an 1.0 bleibt, desto wahrscheinlicher ist es, dass die Compute-Instanz beeinträchtigt wird. In diesem Fall empfehlen wir, den Job auf eine andere Compute-Instanz zu verschieben und den Host als fehlerhaft zu melden, wenn Probleme mit der Compute-Instanz auftreten.
|
GPU-Leistungsmesswerte
Verwenden Sie die folgenden Messwerte, um die Leistung Ihrer GPUs zu überwachen:
| Name | Messwerttyp | Unterstützte Maschinenserien | Beschreibung |
|---|---|---|---|
| Kumulierte Kontextnutzung | instance/gpu/accumulated_context_utilization_seconds |
A4X Max, A4X, A4, A3 Ultra oder A3 Mega | Die Gesamtzeit in Sekunden, in der 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 liefert der Messwert den Stromverbrauch für jede GPU auf dem Host separat. |
| 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 Grad Celsius (°C) und in Dezimalwerten der einzelnen 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 Grad Celsius (°C) und in Dezimalwerten, den einzelne GPUs haben, bevor sie aufgrund hoher Temperaturen verlangsamt werden müssen. Bei Compute-Instanzen mit mehreren angehängten GPUs gibt der Messwert den thermischen Headroom für jede GPU auf dem Host separat an. |
Messwerte zur GPU-Netzwerkleistung
Verwenden Sie die folgenden Messwerte, um die Netzwerkleistung Ihrer GPUs zu überwachen. Informationen zum Überwachen von ToR-Netzwerk-Switches im Backend finden Sie unter ToR-Switch-Messwerte.
| Name | Messwerttyp | Unterstützte Maschinenserien | Beschreibung |
|---|---|---|---|
| Änderungen bei der Verknüpfung von Mobilfunkanbietern | instance/gpu/link_carrier_changes |
A4X, A4, A3 Ultra oder A3 Mega | Wie oft sich der Carrier des Netzwerk-Links pro Minute ändert. |
| Netzwerk-RTT | instance/gpu/network_rtt |
A4X, A4, A3 Ultra oder A3 Mega | Die Umlaufzeit in Mikrosekunden für die Übertragung von Netzwerkdaten zwischen einer Quelle und einem Ziel. |
| Netzwerktraffic 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 Unterblöcken | instance/gpu/network/inter_subblock_tx |
A4X, A4, A3 Ultra oder A3 Mega | Die Anzahl der Byte des Netzwerkverkehrs zwischen Unterblöcken. |
| Netzwerktraffic innerhalb eines Unterblocks | instance/gpu/network/intra_subblock_tx |
A4X, A4, A3 Ultra oder A3 Mega | Die Anzahl der Byte des Netzwerkverkehrs in einem einzelnen Unterblock. |
| Aktive NVLink-Geschwindigkeit | instance/gpu/nvlink_active_speed |
A4X Max, A4X, A4, A3 Ultra oder A3 Mega | Die aktuelle Portgeschwindigkeit der Zugriffsverbindung in Gbit/s. |
| Durchsatz-RX-Bytes | instance/gpu/throughput_rx_bytes |
A4X, A4, A3 Ultra oder A3 Mega | Die Anzahl der durch Netzwerkverkehr empfangenen Bytes. |
| Durchsatz-Tx-Bytes | instance/gpu/throughput_tx_bytes |
A4X, A4, A3 Ultra oder A3 Mega | Die Anzahl der für den Netzwerkverkehr übertragenen Byte. |
Messwerte für ToR-Switches
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 Pufferwarteschlangentiefe bewerten.
- Paketverwerfungen, Fehler, Schnittstellenflaps und Ereignisse zur Überlastungssteuerung diagnostizieren.
Bei diesen Messwerten wird der überwachte Ressourcentyp compute.googleapis.com/NetworkSwitch und das Messwerttyp-Präfix compute.googleapis.com/ verwendet.
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:
Messwerte für Systemzustand und ‑status wechseln
Mit den in diesem Abschnitt aufgeführten Messwerten können Sie Folgendes tun:
- Überprüfen Sie den Betriebsstatus der Switch-Ports.
- Überwachen Sie die CPU- und Arbeitsspeicherauslastung des Switches.
- Prüfen Sie die Startzeiten, 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 Bruch zwischen 0.0 und 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 gesamte Speicherkapazitä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.
|
Kapazitäts- und Warteschlangenmesswerte wechseln
Verwenden Sie die folgenden Messwerte, um die Referenz- und die nutzbare Netzwerkkapazität zu verfolgen und die Pufferwarteschlangenlängen und Warteschlangenverluste 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 Baseline-Bandbreitenkapazität 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 gibt Kapazitätsreduzierungen aufgrund von beeinträchtigten oder offline geschalteten Links an. Schlüssellabels: subblock_id, block_id, reservation_id, switch_type.
|
| Maximale Warteschlangentiefe 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. Schlüssellabels: port_identifier, queue_name, subblock_id, block_id, reservation_id, switch_type.
|
| Verluste 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 Überlastung der Warteschlange oder Puffererschöpfung aus ausgehenden Warteschlangen verworfen wurden. Schlüssellabels: port_identifier, queue_name, subblock_id, block_id, reservation_id, switch_type.
|
| Im Zwischenspeicher verworfene Daten | network_switch/in_buffer_discards |
A4X Max oder A4X | Die kumulative Anzahl der eingehenden Pakete, die aufgrund von Pufferüberlauf am Eingang verworfen wurden. Schlüssellabels: port_identifier, peer_target_identifier, peer_port_identifier, subblock_id, block_id, reservation_id, switch_type.
|
Messwerte für Switch-Paketverluste, ‑Fehler und ‑Ablaufsteuerung
Verwenden Sie die Messwerte in diesem Abschnitt, um die folgenden Probleme zu diagnostizieren, die zu Verzögerungen beim verteilten Training oder zu Zeitüberschreitungen bei der kollektiven Kommunikation (z. B. NCCL-Watchdog-Zeitüberschreitungen) führen können:
- Verworfene Pakete, Übertragungsfehler und physische Link-Flaps.
- FEC-Wortfehler (Forward Error Correction).
- Ereignisse zur Stauverwaltung, z. B. PFC-Pausen (Priority-based Flow Control) und ECN-Markierungen (Explicit Congestion Notification).
| Name | Messwerttyp | Unterstützte Maschinenserien | Beschreibung |
|---|---|---|---|
| Schnittstellenabdeckungen | network_switch/interface_flaps_count |
A4X Max oder A4X | Die kumulative Anzahl der Statusübergänge des physischen Links (Flaps zwischen UP und DOWN) auf der Switchport-Schnittstelle.Schlüssellabels: port_identifier, subblock_id, block_id, reservation_id, switch_type.
|
| Fehler bei der FEC-Wortkorrektur | network_switch/fec_word_error_count |
A4X Max oder A4X | Die kumulative Anzahl von FEC-Wortfehlern (Forward Error Correction). Verwenden Sie das boolesche Label correctable (true oder false), um zwischen korrigierbaren und nicht korrigierbaren Fehlern zu unterscheiden.Schlüssellabels: 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) markiert wurden. Schlüssellabels: port_identifier, subblock_id, block_id, reservation_id, switch_type.
|
| Pfc-Empfangspakete | network_switch/pfc_rx_packets_count |
A4X Max oder A4X | Die kumulative Anzahl der PFC-Pausen-Frames (Priority-based Flow Control), die am Port empfangen wurden. Hinweis:Gilt nur für dedizierte Umgebungen, in denen PFC aktiviert ist. Schlüssellabels: port_identifier, priority_index, subblock_id, block_id, reservation_id, switch_type.
|
| Pfc-Transaktionspakete | network_switch/pfc_tx_packets_count |
A4X Max oder A4X | Die kumulative Anzahl von PFC-Pausen-Frames (Priority-based Flow Control), die über den Port gesendet werden, um eingehenden Traffic zu drosseln. Hinweis:Gilt nur für dedizierte Umgebungen, in denen PFC aktiviert ist. Schlüssellabels: 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. Schlüssellabels: port_identifier, queue_name, subblock_id, block_id, reservation_id, switch_type.
|
| Anzahl der Pakete | network_switch/in_packets_count |
A4X Max oder A4X | Die kumulative Anzahl der eingehenden Pakete, die am Switch-Port empfangen wurden. Schlüssellabels: port_identifier, subblock_id, block_id, reservation_id, switch_type.
|
| Fehler | network_switch/in_errors |
A4X Max oder A4X | Die kumulative Anzahl der eingehenden Pakete, die mit Fehlern empfangen wurden, die eine 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 gültiger eingehender Pakete, die verworfen wurden (z. B. aufgrund von fehlendem Pufferspeicher). Schlüssellabels: port_identifier, peer_target_identifier, peer_port_identifier, subblock_id, block_id, reservation_id, switch_type.
|
| Fehler bei der Ausgabe | 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.
|
| Ausgeschiedene | 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 Byte | network_switch/in_bytes_count |
A4X Max oder A4X | Die kumulative Anzahl der eingehenden Bytes, die am Switch-Port empfangen wurden. Schlüssellabels: port_identifier, subblock_id, block_id, reservation_id, switch_type.
|
| Anzahl der ausgehenden Byte | network_switch/out_bytes_count |
A4X Max oder A4X | Die kumulative Anzahl der ausgehenden Bytes, die über den Switch-Port übertragen wurden. Schlüssellabels: 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 sich negativ auf ihre Leistung auswirken:
| 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 (Error-Correcting Codes, ECCs) in einem dynamischen Arbeitsspeicher (Dynamic Random Access Memory, DRAM) der GPU. |
| 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 die Neuzuordnung einer Zeile 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. |
Messwerte für ML-Arbeitslasten
Verwenden Sie die folgenden Messwerte, um die Produktivität, insbesondere den Goodput, Ihrer ML-Arbeitslasten zu überwachen:
| 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 für Badput-Aktivitäten aufgewendet wird. 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 Ausreißern können Sie verdächtige Ausreißer erkennen und eingrenzen. Nachzügler sind einzelne, nicht abstürzende Fehler, die die gesamte Arbeitslast verlangsamen.
Verwenden Sie den folgenden Messwert, um die Erkennung von Straggler-VMs zu überwachen:
| Name | Messwerttyp | Unterstützte Maschinenserien | Beschreibung |
|---|---|---|---|
| Mutmaßliche Nachzügler | instance/gpu/straggler_status |
A4X, A4, A3 Ultra oder A3 Mega | Gibt an, ob eine VM als Straggler 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 die Messwerte zur Erkennung von Nachzüglern auch 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 vermuteten Nachzüglern für bestimmte VMs: Mit dieser Abfrage können Sie prüfen, ob es für eine bestimmte Arbeitslast in Ihrem Projekt verdächtige Nachzügler 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 vermuteten Nachzügler erkannt werden. Aufgrund der Einschränkungen können Sie die Logs nicht nach bestimmten VMs filtern, ohne dass verdächtige Straggler berücksichtigt werden. |
|
Messwerte zur Erkennung von Nachzüglern sind aus folgenden Gründen besonders hilfreich für umfangreiche ML-Arbeitslasten:
Umfangreiche ML-Arbeitslasten sind sehr anfällig für Straggler. 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-Fehler wie Straggler.
Nachzügler in umfangreichen ML-Arbeitslasten zu erkennen und zu identifizieren ist sehr schwierig. Es gibt zwei Arten von Single-Point-of-Failure:
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.
Da sie sich langsam verschlechtern, sind sie von Natur aus schwer zu erkennen und zu lokalisieren, insbesondere bei synchronen Arbeitslasten in großem Maßstab.
Messwerte zur Erkennung nicht reagierender Arbeitslasten
Mit Messwerten zur Erkennung nicht reagierender Arbeitslasten können Sie Folgendes tun:
- Erkennen, wenn eine gesamte Arbeitslast ins Stocken geraten ist (manchmal auch als NCCL-Hänger bezeichnet)
- Sie können nachvollziehen, warum die Arbeitslast ins Stocken geraten ist, z. B. ob dies durch einen Prozessabsturz oder ein überlastetes Netzwerk verursacht wurde.
Mit den folgenden Messwerten können Sie nicht reagierende Arbeitslasten für Ihre Compute-Instanzen erkennen und diagnostizieren:
| Name | Messwerttyp | Unterstützte Maschinenserien | Beschreibung |
|---|---|---|---|
| Ereignisse für nicht reagierende Arbeitslasten, die mithilfe von NCCL-Telemetrie erkannt wurden | instance/gpu/nccl_hang |
A4X Max, A4X, A4 und A3 Ultra | Die Anzahl der erkannten Ereignisse für nicht reagierende Arbeitslasten als Zeitreihe. |
Erkennung nicht reagierender Arbeitslasten aktivieren
Damit die Erkennung nicht reagierender Arbeitslasten aktiviert werden kann, müssen Sie CoMMA mit Heartbeat-Telemetrie aktivieren. Dabei handelt es sich um ein regelmäßiges Pingsignal, das angibt, dass eine Arbeitslast ausgeführt wird. In den aktuellen Versionen von CoMMA ist diese Funktion standardmäßig aktiviert. Wenn Sie jedoch die Version von CoMMA aus Version 1.1.1 des NICCL/gIB-Bundles verwenden, müssen Sie die Heartbeat-Telemetrie manuell aktivieren. Informationen dazu, wie Sie die Version des NICCL/gIB-Bundles ermitteln, 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
Verwende NCCL_PROFILER_HEARTBEAT, um die Herzschlag-Telemetrie zu aktivieren oder zu deaktivieren, und NCCL_PROFILER_HEARTBEAT_UPLOAD_INTERVAL, um die Häufigkeit der Herzschlag-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, indem Sie die folgende Umgebungsvariable in Ihrer Trainingsumgebung angeben:
NCCL_PROFILER_HEARTBEAT=false
Gründe für das Nichtreagieren von 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 das Feature Aggregation und wählen Sie die folgenden Labels aus:
instance_idhang_reason
In der folgenden Tabelle sind mögliche Werte für das Label, die Bedeutung dieser Werte für Ihre Arbeitslasten und empfohlene nächste Schritte aufgeführt.
| Labelwert | Beschreibung | Empfehlungen |
|---|---|---|
MissingHeartbeatIssue |
Die Heartbeat-Telemetrie wurde für mindestens einen Rang beendet. Das deutet in der Regel auf einen schwerwiegenden Prozess- oder Knotenabsturz hin. |
|
StalledRankIssue |
Es werden weiterhin Heartbeat-Telemetriedaten empfangen, aber die Ränge werden bei NCCL-Vorgängen nicht aktualisiert. |
|
MissingCommunicatorIssue |
Alle Ranks, die zu einem NCCL-Communicator gehören, haben keine Fortschritte mehr gemacht. |
|
NoHangIssue |
Der Standardwert. Es wurden keine Probleme festgestellt. |
|
Messwerte aufrufen
So rufen Sie Messwerte für Ihre Compute-Instanzen und Slurm-Cluster auf: Verwenden Sie dazu Monitoring-Dashboards wie folgt:
So rufen Sie Infrastrukturmesswerte und Messwerte zur Erkennung von Nachzüglern auf:
Vorkonfigurierte Dashboards bieten einen schnellen Überblick über den Zustand und die Leistung Ihrer Infrastruktur. Sie können auch ein vorhandenes Dashboard anpassen.
Für bestimmte Monitoring-Anforderungen können Sie benutzerdefinierte Dashboards erstellen.
Informationen zum Aufrufen von Messwerten für ML-Arbeitslasten finden Sie in der Dokumentation zum Einrichten des Monitorings für Ihre Arbeitslast.
Wenn bei der Verwendung eines Dashboards Probleme auftreten, lesen Sie den Abschnitt Probleme mit der Leistung beheben.
Vordefinierte Dashboards verwenden
Sie können Monitoring-Dashboards verwenden, die für AI Hypercomputer vorkonfiguriert sind, um Messwerte für Ihre Compute-Instanzen und Slurm-Cluster aufzurufen. Sie können auch eine Kopie eines vorgefertigten Dashboards erstellen und es an Ihre Anforderungen anpassen.
So verwenden Sie ein vorgefertigtes 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 aufrufen möchten:
Verwenden Sie das Dashboard Cluster Director Health Monitoring, um den Zustand von Compute-Instanzen, die GPU-Leistung und die Erkennung von Nachzüglern zu überwachen.
Weitere Informationen zur Verwendung dieser Messwerte zum Identifizieren und Analysieren von Problemen finden Sie auch im Playbook-Dashboard GCE Interactive Playbook – Cluster Director Health Monitoring.
Verwenden Sie das Dashboard Cluster Director Transmission Efficiency (Übertragungseffizienz von Cluster Director), um die Effizienz der Netzwerkübertragung zu überwachen.
Um die Netzwerkeffizienz zwischen Blöcken und Unterblöcken zu überwachen, verwenden Sie das Dashboard Cluster Director Block Network.
Weitere Informationen zur Verwendung dieser Messwerte zum Identifizieren und Analysieren von Problemen finden Sie auch im GCE Interactive Playbook – Cluster Director Block Network-Dashboard.
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 Messwerte aus, die überwacht werden sollen. Falls noch nicht geschehen, lesen Sie den Abschnitt Verfügbare Messwerte in diesem Dokument.
Logs zur Erkennung von Nachzüglern ansehen
So rufen Sie Logs zur Erkennung von Nachzüglern mit dem Log-Explorer auf:
-
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.
Standardmäßig werden auf der Seite 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 Protokolle zur Erkennung von Straggler-Ereignissen ein.
Klicken Sie auf Abfrage ausführen.
Das folgende Beispiel zeigt einen Logeintrag zur Erkennung von Nachzüglern.
{
...
"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 mutmaßlichen Straggler-Compute-Instanzen, die im Projekt erkannt wurden. Im Beispiel wurden vier mutmaßliche Nachzügler-Compute-Instanzen erkannt.instanceId: Die ID einer Compute-Instanz, die als mutmaßlicher Straggler erkannt wurde.
Nächste Schritte
- VMs beobachten und überwachen
- Dashboards für Google Cloud -Dienste anpassen
- Probleme mit der Leistung beheben