Metriche GPU Dataflow

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:

Esempio di filtro delle metriche GPU per dispositivo