Dataflow-GPU-Messwerte

Auf dieser Seite werden die in Dataflow unterstützten GPU-Messwerte behandelt. 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, die GPUs explizit angefordert haben. Weitere Informationen finden Sie unter GPU-Unterstützung.

Übersicht

Dataflow meldet viele GPU-Messwerte. Die wichtigsten Messwerte sind der gesamte und der verwendete Arbeitsspeicher, die den RAM-Messwerten entsprechen, sowie die Streaming-Multiprozessor-Aktivität (SM) und die SM-Belegung, die die engsten Entsprechungen zu den Dataflow-CPU-Messwerten sind. Weitere Messwerte werden unter Allgemeine Messwerte und GPM-Messwerte behandelt.

Der gesamte und der verwendete Arbeitsspeicher jedes GPU-Geräts im Job werden standardmäßig gemeldet. Auf der Dataflow-Monitoringoberfläche werden diese unter „Einfache GPU-Auslastung“ angezeigt. Diese Messwerte sind nicht mit dem Messwert „Prozentsatz des Speicherzugriffs“ identisch, der sich ebenfalls unter den grundlegenden GPU-Messwerten befindet. Dieser Messwert gibt den Prozentsatz der Zeit an, in der auf den Arbeitsspeicher des GPU-Geräts zugegriffen wurde.

SM-Aktivität und SM-Belegung sind GPM-Messwerte. Diese Messwerte werden auf P4- und P100-Geräten nicht unterstützt und auf H100-Geräten und höher 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 dieser Messwerte finden Sie unter GPM-Erfassung. Wenn diese Messwerte für den Job erfasst werden, finden Sie sie auf der Dataflow-Monitoringoberflä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 gruppiert und haben alle die folgenden Labels:

  • device_uuid: Identifiziert das GPU-Gerät unabhängig vom Worker oder der Pipeline eindeutig.
  • device_number: Die dem Gerät auf dem Worker zugewiesene Nummer im Bereich von [0, N), 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. device_number ist mit der Identifizierung auf diesem Worker verknüpft.

Allgemeine GPU-Messwerte für Dataflow

Allgemeine 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 Kernel-Ausführung Auslastung device_kernel_runtime Prozent Der Prozentsatz der Zeit, in der mindestens ein Kernel auf der GPU ausgeführt wurde. Dieser Messwert zeigt nur, dass die GPU verwendet wurde, nicht aber, ob ihre Verarbeitungsressourcen effizient genutzt wurden.
Prozentsatz des Speicherzugriffs Auslastung device_memory_access Prozent Der Prozentsatz der Zeit, in der in den Gerätespeicher geschrieben oder aus diesem gelesen wurde. Dieser Messwert zeigt nur, dass auf den Speicher zugegriffen wurde, nicht aber den Prozentsatz des verwendeten Speichers.
Speicherlimit Arbeitsspeicher device_limit MiB Die Größe des auf der GPU verfügbaren Speichers.
Arbeitsspeichernutzung Arbeitsspeicher device_usage MiB Die von der GPU verwendete Arbeitsspeichermenge. 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 keine Daten an die GPU übertragen wurden.
Leistungsgrenze Leistung device_limit Watt Die maximale Leistung, die das Gerät verwenden darf. Dataflow ändert diese Einstellung nicht von der Standardeinstellung.
Leistungsaufnahme Leistung device_usage Watt Die vom Gerät verwendete Leistung.
Aktuelle Temperatur Temperatur device_current Celsius Die aktuelle Temperatur der GPU.
Maximale Betriebstemperatur Temperatur device_max_op Celsius Die Temperatur, unter der die GPU bleiben sollte. Wenn die aktuelle Temperatur diesen Wert überschreitet, versuchen die GPU-Treiber, die GPU abzukühlen, bis sie unter dieser Temperatur liegt. Dataflow hat darauf keinen Einfluss.
Temperatur für Verlangsamung Temperatur device_slowdown Celsius Die Temperatur, bei der die GPU mit der Drosselung beginnt. Wenn die aktuelle Temperatur diesen Wert überschreitet, ist mit einer Leistungsminderung zu rechnen, bis die Temperatur sinkt. Dataflow hat darauf keinen Einfluss.
Temperatur für Herunterfahren Temperatur device_shutdown Celsius Die Temperatur, bei der die GPU heruntergefahren wird. Wenn die aktuelle Temperatur diesen Wert überschreitet, ist das Gerät nicht mehr verfügbar. Dataflow hat keinen Einfluss auf diese Temperatur und unternimmt auch keine aktiven Versuche, GPUs wiederherzustellen, die aufgrund einer zu hohen Temperatur heruntergefahren wurden.
Aktuelle SM-Taktfrequenz Taktfrequenz device_sm_current MHz Die aktuelle Geschwindigkeit der SM-Taktfrequenz. Wenn die Temperatur den Schwellenwert für die Verlangsamung überschreitet, kann dieser Wert im Rahmen der kühlungsbedingten Drosselung sinken.
Maximale SM-Taktfrequenz Taktfrequenz device_sm_max MHz Die maximale Geschwindigkeit der SM-Taktfrequenz.
Aktuelle Speichertaktfrequenz Taktfrequenz device_memory_current MHz Die aktuelle Geschwindigkeit der Speichertaktfrequenz. Wenn die Temperatur den Schwellenwert für die Verlangsamung überschreitet, kann dieser Wert im Rahmen der kühlungsbedingten Drosselung sinken.
Maximale Speichertaktfrequenz Taktfrequenz device_memory_max MHz Die maximale Geschwindigkeit der Speichertaktfrequenz.

GPM-Messwerte für Dataflow

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

Für GPM-Messwerte gelten dieselben Grundlagen wie für allgemeine 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 allgemeine 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 Messwert ähnelt dem Prozentsatz der Kernel-Ausführung, 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. Jobs mit Speicherbegrenzung sollten eine höhere Belegung aufweisen als Jobs mit Rechenbegrenzung. Der Messwert „Prozentsatz des Speicherzugriffs“ kann Aufschluss darüber geben. Weitere Informationen finden Sie in der NVIDIA-Dokumentation zur erreichten Belegung.
Tensor-Pipeline-Aktivitä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 Matrixvorgänge wichtig sind.
FP64-Pipeline-Aktivitä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 Skalarvorgänge mit 64-Bit-Gleitkommawerten verarbeiten.
FP32-Pipeline-Aktivitä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 Skalarvorgänge mit 32-Bit-Gleitkommawerten verarbeiten.
FP16-Pipeline-Aktivität Auslastung device_fp16_pipe_activity Prozent Der Prozentsatz der Zeit, in der die FP16-Pipeline verwendet wurde. Im Gegensatz zu FP64 und FP32, die mit 64-Bit- bzw. 32-Bit-CUDA-Cores verknüpft sind, wird FP16 verwendet, um die Half-Precision-Funktionen von Tensor-Cores zu nutzen.
PCIe-Lesevorgänge PCIe device_read MiB/s Die Rate der Daten, die von der GPU über PCIe von der Host-VM gelesen werden.
PCIe-Übertragung PCIe device_transfer MiB/s Die Rate der Datenübertragung von der GPU zur Host-VM über PCIe.
NVLink-Lesevorgänge nvlink device_read MiB/s Die Rate der Daten, die von der GPU über NVLink gelesen werden. Da NVLink nur die GPU-zu-GPU-Kommunikation abdeckt, ist dieser Messwert irrelevant, wenn jeder Worker nur eine einzige GPU hat.
NVLink-Übertragung nvlink device_transfer MiB/s Die Rate der Datenübertragung von der GPU über NVLink. Da NVLink nur die GPU-zu-GPU-Kommunikation abdeckt, ist dieser Messwert irrelevant, wenn jeder Worker nur eine einzige GPU hat.

GPM-Messwerte erfassen

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

Für alle anderen Modelle ist zum Erfassen dieser Messwerte die Option install-gke-dcgm-exporter zur Konfiguration des Worker-Beschleunigers hinzuzufügen. Beispiel:

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

Dieses Flag installiert ein von GKE verwaltetes Äquivalent zum NVIDIA DCGM-Exporter. 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 Messwerterfassung 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 dem Prozentsatz der Kernel-Ausführung bzw. dem Prozentsatz des Speicherzugriffs . Die Worker melden sie jedoch, indem sie den Durchschnitt über alle GPUs auf dem Worker bilden. Wir empfehlen, die entsprechenden Messwerte 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 angehängt sind, sollten die Messwerte auf der Jobseite auf dem Tab „Jobmesswerte“ unter der Kategorie „Dataflow ML“ angezeigt werden. Diese Kategorie wird für Jobs ohne GPUs nicht angezeigt. Das Laden dauert einige Sekunden, da zuerst geprüft wird, ob die Messwerte für den Job relevant sind.

Unter „Dataflow ML“ werden die folgenden Unterkategorien angezeigt:

Unterkategorie Messwerte Bedingungen
Einfache GPU-Auslastung Prozentsatz der Kernel-Ausführung
Prozentsatz des Speicherzugriffs
Gesamter/verwendeter Arbeitsspeicher
Alle GPU-Jobs
GPU-Leistung Leistungsaufnahme/-grenze
Temperaturmessung/-grenzen
Alle GPU-Jobs
GPU-GPM-Auslastung SM-Aktivität
SM-Belegung
CUDA-/Tensor-Pipeline-Aktivität
GPM-Messwerte aktiviert
GPU-GPM-E/A PCIe-Lesevorgänge/-Übertragung
NVLink-Lesevorgänge/-Übertragung
GPM-Messwerte aktiviert
Legacy-GPU-Auslastung Legacy-Messwerte Alle GPU-Jobs

Wenn Sie nicht Legacy-Messwerte ansehen, können Sie die Diagramme nach einem bestimmten Worker-Namen und einer bestimmten GPU-Gerätenummer filtern. Der Worker-Name ist derselbe Name wie der der VM, wenn er unter Compute Engine angezeigt wird. 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 die Leistungsaufnahme an der Leistungsgrenze liegt:

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