Questa pagina illustra le metriche della GPU supportate in Dataflow. Puoi utilizzare queste metriche per monitorare l'integrità e l'utilizzo della GPU. La maggior parte delle metriche è supportata in tutti i job Dataflow, ma alcune metriche richiedono una configurazione aggiuntiva per molti modelli di GPU.
Prerequisiti
Le metriche della GPU vengono raccolte solo dai job Dataflow che hanno richiesto esplicitamente le GPU. Per saperne di più, consulta Supporto GPU.
Panoramica
Sebbene Dataflow riporti molte metriche della GPU, le metriche principali sono la memoria totale e utilizzata, che sono equivalenti alle metriche della RAM, e l'attività del multiprocessore streaming (SM) e l'occupazione SM, che sono gli equivalenti più vicini alle metriche della CPU di Dataflow. Altre metriche sono trattate in Metriche comuni e Metriche GPM.
Per impostazione predefinita, vengono segnalate la memoria totale e utilizzata di ogni dispositivo GPU nel job. Nell'interfaccia di monitoraggio di Dataflow, queste metriche vengono visualizzate in "Utilizzo GPU di base". Queste metriche non sono le stesse di "Percentuale di accesso alla memoria", che si trova anche nelle metriche GPU di base, ma riportano la percentuale di tempo in cui è stata eseguita l'accesso alla memoria del dispositivo GPU.
L'attività SM e l'occupazione SM sono metriche GPM. Queste metriche non sono supportate sui dispositivi P4 e P100 e sono supportate per impostazione predefinita sui dispositivi H100 e successivi. Per tutti gli altri dispositivi, come i dispositivi T4 e L4, è necessaria una configurazione aggiuntiva. Per i passaggi per abilitarle, consulta Raccolta GPM. Se raccolte nel job, queste metriche si trovano in "Utilizzo GPM GPU" nell'interfaccia di monitoraggio di Dataflow.
Nozioni di base sulle metriche della GPU di Dataflow
Tutte le metriche della GPU vengono inviate dai worker Dataflow a Cloud Monitoring. Le metriche per dispositivo sono disponibili in dataflow.googleapis.com/worker/accelerator/gpu. Tutte queste metriche sono raggruppate in categorie generali, come utilizzo o temperatura, e hanno tutte le seguenti etichette:
- device_uuid: identifica in modo univoco il dispositivo GPU indipendentemente dal worker o dalla pipeline.
- device_number: il numero assegnato al dispositivo nel worker nell' intervallo [0, N), dove N è il numero di dispositivi GPU nel worker.
- device_model: il modello della GPU, ad esempio "Tesla T4".
device_uuid e device_model sono indipendenti dal worker e sono sempre gli stessi per lo stesso dispositivo fisico. device_number è legato al modo in cui viene identificato nel worker.
Metriche della GPU comuni per Dataflow
Le metriche comuni vengono riportate da ogni job Dataflow con GPU. In Monitoring, utilizzano tutte il seguente formato:
dataflow.googleapis.com/worker/accelerator/gpu/CATEGORY/NAME
La tabella seguente mostra ogni metrica e la relativa categoria, nome, unità e scopo.
| Metrica | Categoria | Nome | Unità | Descrizione |
|---|---|---|---|---|
| Percentuale di esecuzione del kernel | utilizzo | device_kernel_runtime | Percentuale | La percentuale di tempo in cui è stato eseguito almeno un kernel sulla GPU. Indica solo che la GPU è stata utilizzata, non se le sue risorse di elaborazione vengono utilizzate in modo efficiente. |
| Percentuale di accesso alla memoria | utilizzo | device_memory_access | Percentuale | La percentuale di tempo in cui è stata letta o scritta la memoria del dispositivo. Indica solo che è stato eseguito l'accesso alla memoria, non la percentuale di memoria in uso. |
| Limite di memoria | memoria | device_limit | MiB | La quantità di memoria disponibile sulla GPU. |
| Utilizzo memoria | memoria | device_usage | MiB | La quantità di memoria in uso dalla GPU. Include sia la memoria utilizzata dal job Dataflow sia la memoria riservata per il firmware, quindi è previsto un certo utilizzo anche se non è ancora stata trasferita memoria alla GPU. |
| Limite di alimentazione | alimentazione | device_limit | Watt | La quantità massima di energia che il dispositivo è impostato per utilizzare. Dataflow non modifica il valore predefinito. |
| Utilizzo avanzato | alimentazione | device_usage | Watt | La quantità di energia in uso dal dispositivo. |
| Temperatura attuale | temperatura | device_current | Celsius | La temperatura attuale della GPU. |
| Temperatura di funzionamento massima | temperatura | device_max_op | Celsius | La temperatura al di sotto della quale deve rimanere la GPU. Se la temperatura attuale supera questo valore, i driver della GPU tenteranno di raffreddare la GPU fino a quando non sarà al di sotto di questa temperatura. Dataflow non controlla questo valore. |
| Temperatura di rallentamento | temperatura | device_slowdown | Celsius | La temperatura alla quale la GPU inizierà a limitare la velocità. Se la temperatura attuale supera questo valore, dovresti aspettarti un peggioramento delle prestazioni fino a quando non si raffredda. Dataflow non controlla questo valore. |
| Temperatura di spegnimento | temperatura | device_shutdown | Celsius | La temperatura alla quale la GPU si spegnerà. Se la temperatura attuale supera questo valore, il dispositivo non sarà più disponibile. Dataflow non controlla questa temperatura e non tenta attivamente di recuperare le GPU che si sono arrestate a causa di una temperatura eccessivamente elevata. |
| Clock SM attuale | orologio | device_sm_current | MHz | La velocità attuale del clock SM. Se la temperatura supera la soglia di rallentamento, questo valore potrebbe diminuire nell'ambito della limitazione della velocità correlata al raffreddamento. |
| Clock SM massimo | orologio | device_sm_max | MHz | La velocità massima del clock SM. |
| Clock di memoria attuale | orologio | device_memory_current | MHz | La velocità attuale del clock di memoria. Se la temperatura supera la soglia di rallentamento, questo valore potrebbe diminuire nell'ambito della limitazione della velocità correlata al raffreddamento. |
| Clock di memoria massimo | orologio | device_memory_max | MHz | La velocità massima del clock di memoria. |
Metriche GPM per Dataflow
Dataflow offre un certo supporto per le metriche GPM. Il livello di supporto dipende dal modello della GPU e dalla configurazione dell'acceleratore. Per impostazione predefinita, la maggior parte dei job Dataflow con GPU richiede una configurazione aggiuntiva.
Le metriche GPM seguono le stesse nozioni di base delle metriche comuni.
Metriche supportate
Analogamente alle metriche comuni, i percorsi delle metriche GPM hanno il seguente formato:
dataflow.googleapis.com/worker/accelerator/gpu/CATEGORY/NAME
Alcune di queste metriche appartengono alla stessa categoria di alcune metriche comuni.
| Metrica | Categoria | Nome | Unità | Descrizione |
|---|---|---|---|---|
| Attività SM | utilizzo | device_sm_activity | Percentuale | La percentuale di tempo in cui un warp è stato attivo su un SM, calcolata in media in tutti gli SM del dispositivo. È simile alla percentuale di esecuzione del kernel, ma offre un'immagine più granulare che mostra meglio se le risorse della GPU vengono utilizzate in modo efficiente. NVIDIA definisce l'utilizzo efficace come 80% o più, mentre 50% o meno è un utilizzo inefficace. |
| Occupazione SM | utilizzo | device_sm_occupancy | Percentuale | La percentuale di warp attivi sul dispositivo rispetto al massimo. I job con limiti di memoria dovrebbero avere un'occupazione maggiore rispetto ai job con limiti di calcolo e la metrica Percentuale di accesso alla memoria può fornire informazioni in merito. Ulteriori dettagli sono disponibili nella documentazione di NVIDIA sull'occupazione raggiunta. |
| Attività pipe Tensor | utilizzo | device_tensor_pipe_activity | Percentuale | La percentuale di tempo in cui è stata utilizzata la pipe Tensor Core. Valori più elevati indicano un maggiore utilizzo dei Tensor Core della GPU, che sono importanti per le operazioni con matrici. |
| Attività pipe FP64 | utilizzo | device_fp64_pipe_activity | Percentuale | La percentuale di tempo in cui è stata utilizzata la pipe FP64 Core. Valori più elevati indicano un maggiore utilizzo dei core FP64 della GPU, che gestiscono le operazioni scalari di valori in virgola mobile a 64 bit. |
| Attività pipe FP32 | utilizzo | device_fp32_pipe_activity | Percentuale | La percentuale di tempo in cui è stata utilizzata la pipe FP32 Core. Valori più elevati indicano un maggiore utilizzo dei core FP32 della GPU, che gestiscono le operazioni scalari di valori in virgola mobile a 32 bit. |
| Attività pipe FP16 | utilizzo | device_fp16_pipe_activity | Percentuale | La percentuale di tempo in cui è stata utilizzata la pipe FP16. A differenza di FP64 e FP32, che sono associati rispettivamente ai core CUDA a 64 bit e 32 bit, FP16 è associato all'utilizzo delle funzionalità di precisione a metà dei Tensor Core. |
| Lettura PCIe | pcie | device_read | MiB/s | La velocità di lettura dei dati dalla VM host da parte della GPU tramite PCIe. |
| Trasferimento PCIe | pcie | device_transfer | MiB/s | La velocità di trasferimento dei dati dalla GPU alla VM host tramite PCIe. |
| Lettura NVLink | nvlink | device_read | MiB/s | La velocità di lettura dei dati dalla GPU tramite NVLink. Poiché NVLink copre solo la comunicazione GPU-GPU, questa metrica non è pertinente se ogni worker ha una sola GPU. |
| Trasferimento NVLink | nvlink | device_transfer | MiB/s | La velocità di trasferimento dei dati dalla GPU tramite NVLink. Poiché NVLink copre solo la comunicazione GPU-GPU, questa metrica non è pertinente se ogni worker ha una sola GPU. |
Raccolta delle metriche GPM
Per impostazione predefinita, tutti i job Dataflow con GPU che utilizzano l'architettura Hopper o versioni successive (ad es. H100, H100 Mega) raccolgono le metriche GPM, quindi non è necessaria alcuna configurazione aggiuntiva. Tuttavia, i job che utilizzano l'architettura Pascal o versioni precedenti (come P4 e P100) non supportano queste metriche.
Per tutti gli altri modelli, la raccolta di queste metriche richiede l'aggiunta di install-gke-dcgm-exporter alla configurazione dell'acceleratore worker. Ad esempio:
--experiment="worker_accelerator=type:TYPE;count:COUNT;install-nvidia-driver;install-gke-dcgm-exporter"
Questo flag installa un equivalente gestito da GKE di NVIDIA DCGM-exporter. I seguenti tipi supportano questa opzione:
- nvidia-l4
- nvidia-tesla-a100
- nvidia-a100-80gb
- nvidia-tesla-t4
- nvidia-tesla-v100
Se viene fornito un altro tipo, il servizio Dataflow restituisce un errore durante la creazione del job. Questo controllo ti aiuta a evitare di eseguire il container sui job in cui non è utile per la raccolta delle metriche.
Metriche legacy
In Monitoring, potresti visualizzare due metriche denominate dataflow.googleapis.com/job/gpu_utilization e dataflow.googleapis.com/job/gpu_memory_utilization. Queste metriche sono simili
a percentuale di esecuzione del kernel e percentuale di accesso alla memoria
rispettivamente, ma i worker le riportano calcolando la media delle GPU nel worker. Ti consigliamo di utilizzare gli equivalenti per dispositivo, soprattutto se i worker sono configurati per avere più di una GPU.
UI di Dataflow
Se al job Dataflow sono collegate GPU ai worker, le metriche dovrebbero essere visualizzate nella scheda "Metriche job" nella pagina del job, nella categoria "Dataflow ML". Questa categoria non viene visualizzata nei job senza GPU e richiede alcuni secondi per il caricamento, perché verifica innanzitutto che le metriche siano pertinenti al job.
Le seguenti sottocategorie vengono visualizzate in "Dataflow ML":
| Sottocategoria | Metriche | Condizioni |
|---|---|---|
| Utilizzo GPU di base | Percentuale di esecuzione del kernel Percentuale di accesso alla memoria Memoria totale/utilizzata |
Tutti i job GPU |
| Prestazioni GPU | Assorbimento/limite di potenza Lettura/limiti di temperatura |
Tutti i job GPU |
| Utilizzo GPM GPU | Attività SM Occupazione SM Attività pipe CUDA/Tensor |
Metriche GPM abilitate |
| I/O GPM GPU | Lettura/trasferimento PCIe Lettura/trasferimento NVLink |
Metriche GPM abilitate |
| Utilizzo GPU legacy | Metriche legacy | Tutti i job GPU |
Quando visualizzi le metriche non legacy, puoi filtrare i grafici in base a un nome worker e a un numero di dispositivo GPU specifici. Il nome del worker è lo stesso della VM se visualizzato in Compute Engine. Il numero del dispositivo GPU è lo stesso delle etichette delle metriche. Puoi utilizzare questo filtro per controllare le metriche su un dispositivo GPU specifico, ad esempio per vedere quanto è vicino il suo utilizzo di energia rispetto al limite:
