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. In der Dataflow-Monitoringoberfläche werden diese unter „Einfache GPU-Auslastung“ angezeigt. Diese Messwerte sind nicht mit dem „Prozentsatz des Arbeitsspeicherzugriffs“ identisch, der sich ebenfalls unter den grundlegenden GPU-Messwerten befindet, aber den Prozentsatz der Zeit meldet, 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 werden standardmäßig auf H100-Geräten und höher unterstützt. Für alle anderen Geräte wie T4- und L4-Geräte ist eine zusätzliche Einrichtung erforderlich. Informationen zum Aktivieren finden Sie unter GPM-Erfassung. Wenn diese Messwerte für den Job erfasst werden, finden Sie sie in 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 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 ist an die Identifizierung auf diesem Worker gebunden.
Allgemeine GPU-Messwerte für Dataflow
Allgemeine Messwerte werden von jedem Dataflow-Job mit GPUs gemeldet. In Monitoring verwenden 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. Dies zeigt nur, dass die GPU verwendet wurde, nicht ob ihre Verarbeitungsressourcen effizient genutzt werden. |
| Prozentsatz des Arbeitsspeicherzugriffs | Auslastung | device_memory_access | Prozent | Der Prozentsatz der Zeit, in der Daten aus dem Gerätespeicher gelesen oder in ihn geschrieben wurden. Dies zeigt nur, dass auf den Arbeitsspeicher zugegriffen wurde, nicht den Prozentsatz des verwendeten Arbeitsspeichers. |
| Arbeitsspeicherlimit | Arbeitsspeicher | device_limit | MiB | Die Menge des auf der GPU verfügbaren Arbeitsspeichers. |
| 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 keine Daten an die GPU übertragen wurden. |
| Korrigierbare flüchtige ECC-Fehler | Arbeitsspeicher/ECC/flüchtig | device_correctable_total | Anzahl | Die Anzahl der korrigierbaren (Einzelbit-)ECC-Fehler seit dem letzten Neuladen des Treibers. Bei Dataflow erfolgt das Neuladen des Treibers nur beim Start des Workers. Dies entspricht also den Fehlern während der Lebensdauer des Workers. |
| Nicht korrigierbare flüchtige ECC-Fehler | Arbeitsspeicher/ECC/flüchtig | device_uncorrectable_total | Anzahl | Die Anzahl der nicht korrigierbaren (Doppelbit-)ECC-Fehler seit dem letzten Neuladen des Treibers. Bei Dataflow erfolgt das Neuladen des Treibers nur beim Start des Workers. Dies entspricht also den Fehlern während der Lebensdauer des Workers. |
| Leistungsgrenze | Leistung | device_limit | Watt | Die maximale Leistung, die das Gerät verwenden soll. Dataflow ändert dies nicht vom Standardwert. |
| 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 zu kühlen, bis sie unter dieser Temperatur liegt. Dataflow hat keine Kontrolle darüber. |
| Verlangsamungstemperatur | 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 sie abgekühlt ist. Dataflow hat keine Kontrolle darüber. |
| 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 keine Kontrolle über 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 Arbeitsspeicher-Taktfrequenz | Taktfrequenz | device_memory_current | MHz | Die aktuelle Geschwindigkeit der Arbeitsspeicher-Taktfrequenz. Wenn die Temperatur den Schwellenwert für die Verlangsamung überschreitet, kann dieser Wert im Rahmen der kühlungsbedingten Drosselung sinken. |
| Maximale Arbeitsspeicher-Taktfrequenz | Taktfrequenz | device_memory_max | MHz | Die maximale Geschwindigkeit der Arbeitsspeicher-Taktfrequenz. |
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.
GPM-Messwerte folgen denselben Grundlagen wie 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 einem SM aktiv war, gemittelt über alle SMs auf dem Gerät. Dies ähnelt dem 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, während eine Nutzung von 50% oder weniger als ineffektiv gilt. |
| SM-Belegung | Auslastung | device_sm_occupancy | Prozent | Der Prozentsatz der aktiven Warps auf dem Gerät im Verhältnis zum Maximum. Jobs mit Arbeitsspeicherlimit sollten eine höhere Belegung haben als Jobs mit Rechenlimit. Die Metrik Prozentsatz des Arbeitsspeicherzugriffs kann Aufschluss darüber geben. Weitere Informationen finden Sie in der NVIDIA-Dokumentation zur erreichten Belegung. |
| 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 Matrixvorgänge 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 Skalarvorgänge mit 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 Skalarvorgänge mit 32-Bit-Gleitkommawerten verarbeiten. |
| FP16-Pipelineaktivitä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 Halbpräzisionsfunktionen von Tensor-Cores zu nutzen. |
| PCIe-Lesevorgang | 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-Lesevorgang | 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 dies 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 dies 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 früher (z. B. P4 und P100) unterstützen diese Messwerte jedoch nicht.
Für alle anderen Modelle ist zum Erfassen dieser Messwerte 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, den Container für Jobs auszuführen, 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 laufenden Kernel bzw. dem Prozentsatz des Arbeitsspeicherzugriffs
. Die Worker melden sie jedoch, indem sie die Werte über alle GPUs auf dem Worker mitteln. 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 an seine Worker 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.
Die folgenden Unterkategorien werden unter „Dataflow ML“ angezeigt:
| Unterkategorie | Messwerte | Bedingungen |
|---|---|---|
| Einfache GPU-Auslastung | Prozentsatz der laufenden Kernel Prozentsatz des Arbeitsspeicherzugriffs Gesamter/verwendeter Arbeitsspeicher |
Alle GPU-Jobs |
| GPU-Leistung | Leistungsaufnahme/-limit Temperaturmessung/-limits Aktuelle/maximale SM-Taktfrequenz Aktuelle/maximale Arbeitsspeicher-Taktfrequenz Korrigierbare/nicht korrigierbare flüchtige ECC-Fehler |
Alle GPU-Jobs |
| GPU-GPM-Auslastung | SM-Aktivität SM-Belegung CUDA-/Tensor-Pipelineaktivität |
GPM-Messwerte aktiviert |
| GPU-GPM-E/A | PCIe-Lesevorgang/-Übertragung NVLink-Lesevorgang/-Ü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 am Limit liegt:
