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:
