Dataflow-GPU-Messwerte

Auf dieser Seite werden die in Dataflow unterstützten GPU-Messwerte beschrieben. Mit diesen Messwerten können Sie den Zustand und die Nutzung der GPU überwachen. Die meisten Messwerte werden für alle Dataflow-Jobs unterstützt. Für einige Messwerte ist jedoch für viele GPU-Modelle eine zusätzliche Konfiguration erforderlich.

Vorbereitung

GPU-Messwerte werden nur von Dataflow-Jobs erfasst, für die explizit GPUs angefordert wurden. Weitere Informationen finden Sie unter GPU-Unterstützung.

Übersicht

Dataflow meldet zwar viele GPU-Messwerte, die wichtigsten sind jedoch der gesamte und der verwendete Arbeitsspeicher, die den RAM-Messwerten entsprechen, sowie die Streaming-Multiprozessor-Aktivität (SM) und die SM-Auslastung, die den Dataflow-CPU-Messwerten am nächsten kommen. Weitere Messwerte finden Sie unter Allgemeine Messwerte und GPM-Messwerte.

Der gesamte und verwendete Arbeitsspeicher jedes GPU-Geräts im Job wird standardmäßig gemeldet. In der Dataflow-Monitoring-Oberfläche werden diese unter „Basic GPU utilization“ (Grundlegende GPU-Auslastung) angezeigt. Diese Messwerte sind nicht identisch mit dem „Prozentsatz des Arbeitsspeicherzugriffs“, der sich ebenfalls unter den grundlegenden GPU-Messwerten befindet, aber den Prozentsatz der Zeit angibt, in der auf den GPU-Gerätespeicher zugegriffen wurde.

„SM Activity“ und „SM Occupancy“ sind GPM-Messwerte. Diese Messwerte werden auf P4- und P100-Geräten nicht unterstützt und auf H100-Geräten und neueren Geräten standardmäßig unterstützt. Für alle anderen Geräte wie T4- und L4-Geräte ist eine zusätzliche Einrichtung erforderlich. Eine Anleitung zum Aktivieren finden Sie unter GPM-Erfassung. Wenn diese Messwerte für den Job erfasst werden, finden Sie sie in der Dataflow-Monitoring-Oberfläche unter „GPU-GPM-Auslastung“.

Grundlagen zu Dataflow-GPU-Messwerten

Alle GPU-Messwerte werden von Dataflow-Workern an Cloud Monitoring gesendet. Messwerte pro Gerät finden Sie unter dataflow.googleapis.com/worker/accelerator/gpu. Alle diese Messwerte sind in allgemeine Kategorien wie Auslastung oder Temperatur unterteilt und haben die folgenden Labels:

  • device_uuid: Identifiziert das GPU-Gerät unabhängig von Worker oder Pipeline eindeutig.
  • device_number: Die Nummer, die dem Gerät auf dem Worker im Bereich [0, N) zugewiesen ist, wobei N die Anzahl der GPU-Geräte auf dem Worker ist.
  • device_model: Das Modell der GPU, z. B. „Tesla T4“.

Sowohl device_uuid als auch device_model sind unabhängig vom Worker und für dasselbe physische Gerät immer gleich. Die device_number hängt davon ab, wie sie auf dem Worker identifiziert wird.

Häufige GPU-Messwerte für Dataflow

Gängige Messwerte werden von jedem Dataflow-Job mit GPUs gemeldet. In Monitoring haben sie alle das folgende Format:

dataflow.googleapis.com/worker/accelerator/gpu/CATEGORY/NAME

In der folgenden Tabelle sind die einzelnen Messwerte mit Kategorie, Name, Einheit und Zweck aufgeführt.

Messwert Kategorie Name Einheit Beschreibung
Prozentsatz der laufenden Kernel Auslastung device_kernel_runtime Prozent Der Prozentsatz der Zeit, in der mindestens ein Kernel auf der GPU ausgeführt wurde. Das zeigt nur, dass die GPU verwendet wurde, nicht aber, ob ihre Verarbeitungsressourcen effizient genutzt werden.
Prozentsatz des Arbeitsspeicherzugriffs Auslastung device_memory_access Prozent Der Prozentsatz der Zeit, in der in den Gerätespeicher geschrieben oder aus diesem gelesen wurde. Hier wird nur angezeigt, dass auf den Arbeitsspeicher zugegriffen wurde, nicht der Prozentsatz des verwendeten Arbeitsspeichers.
Arbeitsspeicherlimit Arbeitsspeicher device_limit MiB Die Größe des auf der GPU verfügbaren Speichers.
Arbeitsspeichernutzung Arbeitsspeicher device_usage MiB Die Menge des von der GPU verwendeten Arbeitsspeichers. Dazu gehört sowohl der vom Dataflow-Job verwendete Arbeitsspeicher als auch der für die Firmware reservierte Arbeitsspeicher. Daher ist eine gewisse Nutzung zu erwarten, auch wenn noch kein Arbeitsspeicher an die GPU übertragen wurde.
Korrigierbare flüchtige ECC-Fehler memory/ecc/volatile device_correctable_total Anzahl Die Anzahl der korrigierbaren (Einzelbit-)ECC-Fehler seit dem letzten Neuladen des Treibers. Bei Dataflow wird der Treiber nur beim Starten des Workers neu geladen. Dies entspricht also Fehlern während der Lebensdauer des Workers.
Nicht korrigierbare flüchtige ECC-Fehler memory/ecc/volatile device_uncorrectable_total Anzahl Die Anzahl der nicht korrigierbaren (Double-Bit-)ECC-Fehler seit dem letzten Neuladen des Treibers. Bei Dataflow wird der Treiber nur beim Starten des Workers neu geladen. Dies entspricht also Fehlern während der Lebensdauer des Workers.
Leistungsgrenze power device_limit Watt Die maximale Leistung, die das Gerät verwenden darf. In Dataflow wird dies nicht von der Standardeinstellung geändert.
Stromverbrauch power device_usage Watt Die vom Gerät verwendete Strommenge.
Aktuelle Temperatur Temperatur device_current Celsius Die aktuelle Temperatur der GPU.
Maximale Betriebstemperatur Temperatur device_max_op Celsius Die Temperatur, die die GPU nicht überschreiten sollte. Wenn die aktuelle Temperatur diesen Wert überschreitet, versuchen die GPU-Treiber, die GPU zu kühlen, bis sie unter dieser Temperatur liegt. Dataflow hat darauf keinen Einfluss.
Temperatur für Drosselung Temperatur device_slowdown Celsius Die Temperatur, bei der die GPU mit dem Throttling beginnt. Wenn die aktuelle Temperatur diesen Wert überschreitet, ist mit einer Leistungsminderung zu rechnen, bis die Temperatur wieder sinkt. Dataflow hat darauf keinen Einfluss.
Abschalttemperatur Temperatur device_shutdown Celsius Die Temperatur, bei der die GPU abgeschaltet wird. Wenn die aktuelle Temperatur diesen Wert überschreitet, ist das Gerät nicht mehr verfügbar. Dataflow hat keinen Einfluss auf diese Temperatur und versucht auch nicht aktiv, GPUs wiederherzustellen, die aufgrund einer zu hohen Temperatur heruntergefahren wurden.
Aktueller SM-Takt Uhr device_sm_current MHz Die aktuelle Geschwindigkeit des SM-Takts. Wenn die Temperatur den Schwellenwert für die Verlangsamung überschreitet, kann die Leistung im Rahmen der drosselungsbedingten Kühlung sinken.
Maximale SM-Taktrate Uhr device_sm_max MHz Die maximale Geschwindigkeit des SM-Takts.
Aktueller Speichertakt Uhr device_memory_current MHz Die aktuelle Geschwindigkeit des Arbeitsspeichertakts. Wenn die Temperatur den Schwellenwert für die Verlangsamung überschreitet, kann die Leistung im Rahmen der drosselungsbedingten Kühlung sinken.
Max. Arbeitsspeichertakt Uhr device_memory_max MHz Die maximale Geschwindigkeit des Speichertakts.

GPM-Messwerte für Dataflow

Dataflow bietet einige Unterstützung für GPM-Messwerte. Der Grad der Unterstützung hängt vom GPU-Modell und von der Beschleunigerkonfiguration ab. Für die meisten Dataflow-Jobs mit GPUs ist standardmäßig eine zusätzliche Konfiguration erforderlich.

Für GPM-Messwerte gelten dieselben Grundlagen wie für gängige Messwerte.

Unterstützte Messwerte

Ähnlich wie bei den allgemeinen Messwerten haben GPM-Messwertpfade das folgende Format:

dataflow.googleapis.com/worker/accelerator/gpu/CATEGORY/NAME

Einige dieser Messwerte gehören zur selben Kategorie wie einige gängige Messwerte.

Messwert Kategorie Name Einheit Beschreibung
SM-Aktivität Auslastung device_sm_activity Prozent Der Prozentsatz der Zeit, in der ein Warp auf dem SM aktiv war, gemittelt über alle SMs auf dem Gerät. Dieser Wert ähnelt dem Kernel Running Percentage (Prozentsatz der laufenden Kernel), bietet aber ein detaillierteres Bild, das besser zeigt, ob die Ressourcen der GPU effizient genutzt werden. NVIDIA definiert eine effektive Nutzung als 80% oder mehr und eine ineffektive Nutzung als 50% oder weniger.
SM-Belegung Auslastung device_sm_occupancy Prozent Der Prozentsatz der aktiven Warps auf dem Gerät im Verhältnis zum Maximum. Arbeitsspeicherbegrenzte Jobs sollten eine höhere Auslastung als rechenbegrenzte Jobs haben. Der Messwert Memory Access Percentage (Prozentsatz des Arbeitsspeicherzugriffs) kann Aufschluss darüber geben. Weitere Informationen finden Sie in der NVIDIA-Dokumentation zur erreichten Auslastung.
Tensor-Pipelineaktivität Auslastung device_tensor_pipe_activity Prozent Der Prozentsatz der Zeit, in der die Tensor Core-Pipeline verwendet wurde. Höhere Werte deuten auf eine stärkere Nutzung der Tensor-Cores der GPU hin, die für Matrixoperationen wichtig sind.
FP64-Pipelineaktivität Auslastung device_fp64_pipe_activity Prozent Der Prozentsatz der Zeit, in der die FP64-Core-Pipeline verwendet wurde. Höhere Werte deuten auf eine stärkere Nutzung der FP64-Cores der GPU hin, die skalare Operationen von 64-Bit-Gleitkommawerten verarbeiten.
FP32-Pipelineaktivität Auslastung device_fp32_pipe_activity Prozent Der Prozentsatz der Zeit, in der die FP32-Core-Pipeline verwendet wurde. Höhere Werte deuten auf eine stärkere Nutzung der FP32-Cores der GPU hin, die skalare Operationen von 32-Bit-Gleitkommawerten verarbeiten.
FP16-Pipelineaktivität Auslastung device_fp16_pipe_activity Prozent Der Prozentsatz der Zeit, in der die FP16-Pipe verwendet wurde. Im Gegensatz zu FP64 und FP32, die jeweils mit 64-Bit- und 32-Bit-CUDA-Kernen verknüpft sind, wird bei FP16 die Halbprazisionsfunktion von Tensor-Kernen genutzt.
PCIe-Lesen pcie device_read MiB/s Die Datenrate, mit der die GPU Daten von der Host-VM über PCIe liest.
PCIe-Übertragung pcie device_transfer MiB/s Die Datenübertragungsrate von der GPU zur Host-VM über PCIe.
NVLink-Lesevorgang nvlink device_read MiB/s Die Datenrate, mit der Daten von der GPU über NVLink gelesen werden. Da NVLink nur die GPU-zu-GPU-Kommunikation abdeckt, ist dies irrelevant, wenn jeder Worker nur eine einzelne GPU hat.
NVLink-Übertragung nvlink device_transfer MiB/s Die Datenübertragungsrate von der GPU über NVLink. Da NVLink nur die GPU-zu-GPU-Kommunikation abdeckt, ist dies irrelevant, wenn jeder Worker nur eine einzelne GPU hat.

GPM-Messwerte erfassen

Für alle Dataflow-Jobs mit GPUs, die auf der Hopper-Architektur oder höher basieren (z. B. H100, H100 Mega), werden GPM-Messwerte standardmäßig erfasst. Es ist also keine zusätzliche Konfiguration erforderlich. Bei Jobs mit Pascal-Architektur oder älter (z. B. P4 und P100) werden diese Messwerte jedoch nicht unterstützt.

Für alle anderen Modelle ist zum Erfassen dieser Messwerte das Hinzufügen von install-gke-dcgm-exporter zur Worker-Beschleunigerkonfiguration erforderlich. Beispiel:

--experiment="worker_accelerator=type:TYPE;count:COUNT;install-nvidia-driver;install-gke-dcgm-exporter"

Mit diesem Flag wird ein von GKE verwaltetes Äquivalent zum NVIDIA DCGM-Exporter installiert. Die folgenden Typen unterstützen diese Option:

  • nvidia-l4
  • nvidia-tesla-a100
  • nvidia-a100-80gb
  • nvidia-tesla-t4
  • nvidia-tesla-v100

Wenn ein anderer Typ angegeben wird, gibt der Dataflow-Dienst bei der Joberstellung einen Fehler zurück. Mit dieser Prüfung können Sie vermeiden, dass der Container für Jobs ausgeführt wird, bei denen er nicht zur Erhebung von Messwerten beiträgt.

Legacy-Messwerte

In Monitoring werden möglicherweise zwei Messwerte mit den Namen dataflow.googleapis.com/job/gpu_utilization und dataflow.googleapis.com/job/gpu_memory_utilization angezeigt. Diese Messwerte ähneln Prozentsatz der Kernel-Ausführung bzw. Prozentsatz des Arbeitsspeicherzugriffs. Worker melden sie jedoch, indem sie den Durchschnitt über alle GPUs auf dem Worker bilden. Wir empfehlen, die Äquivalente pro Gerät zu verwenden, insbesondere wenn für Worker mehr als eine GPU konfiguriert ist.

Benutzeroberfläche von Dataflow

Wenn dem Dataflow-Job GPUs zugewiesen sind, sollten die Messwerte auf der Jobseite auf dem Tab „Jobmesswerte“ in der Kategorie „Dataflow ML“ angezeigt werden. Diese Kategorie wird bei Jobs ohne GPUs nicht angezeigt. Das Laden dauert einige Sekunden, da zuerst geprüft wird, ob die Messwerte für den Job relevant sind.

Die folgenden Unterkategorien werden unter „Dataflow ML“ angezeigt:

Unterkategorie Messwerte Conditions
Einfache GPU-Auslastung Prozentsatz der Kernel-Ausführung
Prozentsatz des Speicherzugriffs
Gesamt-/verwendeter Arbeitsspeicher
Alle GPU-Jobs
GPU-Leistung Leistungsaufnahme/Grenzwert
Temperaturmessung/Grenzwerte
Aktueller/maximaler SM-Takt
Aktueller/maximaler Speichertakt
Korrigierbare/nicht korrigierbare flüchtige ECC-Fehler
Alle GPU-Jobs
GPU-GPM-Auslastung SM-Aktivität
SM-Belegung
CUDA-/Tensor-Pipeline-Aktivität
GPM-Messwerte aktiviert
GPU-GPM-E/A PCIe-Lesen/Übertragen
NVLink-Lesen/Übertragen
GPM-Messwerte aktiviert
Legacy-GPU-Auslastung Alte Messwerte Alle GPU-Jobs

Wenn Sie nicht mehr vorhandene Messwerte ansehen, können Sie die Diagramme nach einem bestimmten Workernamen und einer bestimmten GPU-Gerätenummer filtern. Der Worker-Name ist derselbe Name wie der Name der VM in Compute Engine. Die GPU-Gerätenummer ist dieselbe wie in den Messwertlabels. Mit dieser Filterung können Sie Messwerte für ein bestimmtes GPU-Gerät prüfen, z. B. wie nah der Stromverbrauch am Limit liegt:

Beispiel für das Filtern von GPU-Messwerten nach Gerät