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 richiedono una configurazione aggiuntiva per molti modelli di GPU.

Prerequisiti

Le metriche GPU vengono raccolte solo dai job Dataflow che hanno richiesto esplicitamente le GPU. Per saperne di più, consulta la sezione Supporto GPU.

Panoramica

Sebbene Dataflow riporti molte metriche GPU, le principali sono memoria totale e utilizzata, che sono equivalenti alle metriche RAM, e attività del multiprocessore streaming (SM) e occupazione SM, che sono gli equivalenti più vicini alle metriche CPU di Dataflow. Altre metriche sono trattate nelle sezioni 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, questi valori vengono visualizzati nella sezione "Utilizzo GPU di base". Queste metriche non sono uguali alla "Percentuale di accesso alla memoria", che si trova anche nelle metriche GPU di base, ma riporta la percentuale di tempo in cui è stata eseguita l'accesso alla memoria del dispositivo GPU.

Attività SM e 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 attivarli, vedi Raccolta GPM. Se raccolte nel job, queste metriche si trovano in "Utilizzo GPU GPM" nell'interfaccia di monitoraggio Dataflow.

Nozioni di base sulle metriche GPU di Dataflow

Tutte le metriche GPU vengono inviate dai worker Dataflow a Cloud Monitoring. Le metriche per dispositivo sono disponibili nella sezione 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 sul worker nell'intervallo [0, N), dove N è il numero di dispositivi GPU sul worker.
  • device_model: il modello della GPU, ad esempio "Tesla T4".

Sia device_uuid che device_model sono indipendenti dal lavoratore e sono sempre uguali per lo stesso dispositivo fisico. device_number è legato al modo in cui viene identificato sul lavoratore.

Metriche GPU comuni per Dataflow

Le metriche comuni vengono segnalate da ogni job Dataflow con GPU. In Monitoring, tutti utilizzano il seguente formato:

dataflow.googleapis.com/worker/accelerator/gpu/CATEGORY/NAME

La seguente tabella mostra ogni metrica e la relativa categoria, nome, unità e scopo.

Metrica Categoria Nome Unità Descrizione
Percentuale in esecuzione del kernel utilizzo device_kernel_runtime Percentuale La percentuale di tempo in cui almeno un kernel è stato eseguito sulla GPU. Questo mostra 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 Percentuale di tempo in cui è stata letta o scritta la memoria del dispositivo. Mostra 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 da parte della GPU. Ciò include sia la memoria utilizzata dal job Dataflow sia la memoria riservata al firmware, quindi è previsto un certo utilizzo anche se non è ancora stata trasferita memoria alla GPU.
Errori ECC volatili correggibili memory/ecc/volatile device_correctable_total Conteggio Il numero di errori ECC correggibili (a un bit) dall'ultimo ricaricamento del driver. Per Dataflow, il ricaricamento del driver avviene solo all'avvio del worker, quindi equivale agli errori durante il ciclo di vita del worker.
Errori ECC volatili non correggibili memory/ecc/volatile device_uncorrectable_total Conteggio Il numero di errori ECC non correggibili (a doppio bit) dall'ultimo ricaricamento del driver. Per Dataflow, il ricaricamento del driver avviene solo all'avvio del worker, quindi equivale agli errori durante il ciclo di vita del worker.
Limite di potenza power device_limit Watts La quantità massima di energia che il dispositivo è impostato per utilizzare. Dataflow non modifica questo valore predefinito.
Utilizzo avanzato power device_usage Watts La quantità di energia utilizzata 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 raffreddarla finché non scende al di sotto di questa temperatura. Dataflow non controlla questa impostazione.
Temperatura di rallentamento temperatura device_slowdown Celsius La temperatura alla quale la GPU inizierà a ridurre le prestazioni. Se la temperatura attuale supera questo valore, dovresti aspettarti un calo delle prestazioni finché non si raffredda. Dataflow non controlla questo aspetto.
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 correlata al raffreddamento.
Clock SM massimo orologio device_sm_max MHz La velocità massima del clock SM.
Current Memory Clock orologio device_memory_current MHz La velocità attuale del clock della memoria. Se la temperatura supera la soglia di rallentamento, questo valore potrebbe diminuire nell'ambito della limitazione correlata al raffreddamento.
Max Memory Clock orologio device_memory_max MHz La velocità massima del clock della memoria.

Metriche GPM per Dataflow

Dataflow offre un certo supporto per le metriche GPM. Il livello di supporto dipende dal modello di 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 gli stessi principi di base delle metriche comuni.

Metriche supportate

Analogamente ai percorsi delle metriche comuni, i percorsi delle metriche GPM hanno il seguente formato:

dataflow.googleapis.com/worker/accelerator/gpu/CATEGORY/NAME

Alcune di queste metriche rientrano nella 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 sull'SM, calcolata in media in tutti gli SM sul dispositivo. È simile alla percentuale di esecuzione del kernel, ma offre un quadro più granulare che mostra meglio se le risorse della GPU vengono utilizzate in modo efficiente. NVIDIA definisce l'utilizzo efficace come pari o superiore all'80%, mentre l'utilizzo inefficace come pari o inferiore al 50%.
Occupazione SM utilizzo device_sm_occupancy Percentuale Percentuale di warp attivi sul dispositivo rispetto al massimo. I job con limiti di memoria dovrebbero avere un'occupazione superiore rispetto a quelli con limiti di calcolo e la metrica Percentuale di accesso alla memoria può fornire informazioni al riguardo. Per ulteriori dettagli, consulta la documentazione NVIDIA sull'occupazione raggiunta.
Attività di Tensor Pipe utilizzo device_tensor_pipe_activity Percentuale La percentuale di tempo in cui è stato utilizzato il canale Tensor Core. Valori più elevati indicano un maggiore utilizzo dei Tensor Core della GPU, che sono importanti per le operazioni con le matrici.
Attività della pipeline FP64 utilizzo device_fp64_pipe_activity Percentuale La percentuale di tempo in cui è stata utilizzata la pipeline del core FP64. Valori più elevati indicano un maggiore utilizzo dei core FP64 della GPU, che gestiscono operazioni scalari di valori in virgola mobile a 64 bit.
Attività pipe FP32 utilizzo device_fp32_pipe_activity Percentuale La percentuale di tempo durante il quale è stata utilizzata la pipeline del core FP32. Valori più elevati indicano un maggiore utilizzo dei core FP32 della GPU, che gestiscono 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 pipeline FP16. A differenza di FP64 e FP32, che sono associati rispettivamente ai core CUDA a 64 bit e 32 bit, FP16 è associato allo sfruttamento delle funzionalità di mezza precisione dei Tensor Core.
Lettura PCIe pcie device_read MiB/s La velocità di lettura dei dati da parte della GPU dalla VM host 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 da parte della GPU tramite NVLink. Poiché NVLink copre solo la comunicazione da GPU a GPU, questo 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 da GPU a GPU, questo non è pertinente se ogni worker ha una sola GPU.

Raccolta delle metriche GPM

Qualsiasi job Dataflow con GPU che utilizzano l'architettura Hopper o versioni successive (ad es. H100, H100 Mega) raccoglie le metriche GPM per impostazione predefinita, 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 contenitore su 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 rispettivamente a Percentuale di esecuzione del kernel e Percentuale di accesso alla memoria, ma i worker le segnalano calcolando la media tra le GPU del 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 il job Dataflow ha GPU collegate ai suoi worker, le metriche dovrebbero essere visualizzate nella scheda "Metriche del 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 prima che le metriche siano pertinenti al job.

Le seguenti sottocategorie vengono visualizzate nella sezione "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
Clock SM attuale/massimo
Clock di memoria attuale/massimo
Errori ECC volatili correggibili/non correggibili
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 di worker e a un numero del 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 consumo energetico al limite:

Esempio di filtro delle metriche GPU per dispositivo