Puoi monitorare l'utilizzo, le prestazioni e lo stato delle GPU configurando GKE in modo da inviare le metriche di NVIDIA Data Center GPU Manager (DCGM) a Cloud Monitoring.
Quando attivi le metriche DCGM, GKE installa lo strumento DCGM-Exporter, i driver GPU gestiti da Google e una risorsa ClusterPodMonitoring per inviare le metriche a Google Cloud Managed Service per Prometheus.
Puoi anche configurare DCGM autonomo se vuoi personalizzare l'insieme di metriche DCGM o se hai un cluster che non soddisfa i requisiti per le metriche DCGM gestite.
Che cos'è il DCGM
NVIDIA Data Center GPU Manager (DCGM) è un insieme di strumenti NVIDIA che ti consente di gestire e monitorare le GPU NVIDIA. DCGM espone varie strutture di osservabilità
e contatori utilizzando ciò che definisce fields
. Ogni campo ha un identificatore simbolico e un numero di campo.
Puoi trovare un elenco completo all'indirizzo NVIDIA DCGM list of Field IDs.
Se attivi le metriche DCGM su GKE, le metriche supportate sono disponibili automaticamente in Cloud Monitoring. Queste metriche forniscono una visione completa dell'utilizzo, delle prestazioni e dell'integrità della GPU.
- Le metriche di utilizzo della GPU indicano il livello di utilizzo della GPU monitorata e se viene utilizzata efficacemente per l'elaborazione delle attività. Sono incluse le metriche per l'elaborazione di core, memoria, I/O e utilizzo dell'alimentazione.
- Le metriche relative alle prestazioni della GPU si riferiscono all'efficacia e all'efficienza con cui una GPU può eseguire un'attività di calcolo. Sono incluse le metriche per la frequenza indicata in MHz e la temperatura.
- Le metriche di I/O della GPU come NVlink e PCIe misurano la larghezza di banda di trasferimento dei dati.
Prima di iniziare
Prima di iniziare, assicurati di aver eseguito le seguenti operazioni:
- Attiva l'API Google Kubernetes Engine. Attiva l'API Google Kubernetes Engine
- Se vuoi utilizzare Google Cloud CLI per questa attività,
installa e poi
inizializza gcloud CLI. Se hai già installato gcloud CLI, ottieni la versione più recente eseguendo
gcloud components update
.
Requisiti per le metriche di NVIDIA Data Center GPU Manager (DCGM)
Per raccogliere le metriche di NVIDIA Data Center GPU Manager (DCGM), il cluster GKE deve soddisfare i seguenti requisiti:
- GKE 1.30.1-gke.1204000 o versioni successive
- La raccolta delle metriche di sistema deve essere abilitata
- La raccolta gestita di Google Cloud Managed Service per Prometheus deve essere abilitata
- I pool di nodi devono eseguire driver GPU gestiti da GKE. Ciò significa che devi creare i node pool utilizzando
default
olatest
per--gpu-driver-version
. - Le metriche di profilazione vengono raccolte solo per le GPU NVIDIA H100 da 80 GB.
Configurare la raccolta delle metriche DCGM
Puoi consentire a GKE di raccogliere le metriche DCGM per un cluster esistente utilizzando la console Google Cloud, gcloud CLI o Terraform.
Console
-
Per Installazione del driver GPU, devi utilizzare Predefinito o Ultimo.
Vai alla pagina Google Kubernetes Engine nella console Google Cloud.
Fai clic sul nome del cluster.
Accanto a Cloud Monitoring, fai clic su edit.
Seleziona
SYSTEM
eDCGM
.Fai clic su Salva.
gcloud
Crea un pool di nodi GPU.
Devi utilizzare
default
olatest
per--gpu-driver-version
.Aggiorna il cluster:
gcloud container clusters update CLUSTER_NAME \ --location=COMPUTE_LOCATION \ --enable-managed-prometheus \ --monitoring=SYSTEM,DCGM
Sostituisci quanto segue:
CLUSTER_NAME
: il nome del cluster esistente.COMPUTE_LOCATION
: la posizione di Compute Engine del cluster.
Terraform
Per configurare la raccolta delle metriche DCGM utilizzando Terraform, consulta il blocco monitoring_config
nel registro Terraform per google_container_cluster
.
Per informazioni generali sull'utilizzo di Google Cloud con Terraform, consulta
Terraform con Google Cloud.
Utilizzare le metriche DCGM
Puoi visualizzare le metriche DCGM utilizzando le dashboard nella console Google Cloud o direttamente nelle pagine Panoramica del cluster e Dettagli del cluster. Per informazioni, consulta Visualizzare le metriche di osservabilità.
Puoi visualizzare le metriche utilizzando la dashboard delle metriche DCGM di Grafana. Per ulteriori informazioni, consulta la sezione Eseguire query utilizzando Grafana. Se si verificano errori, consulta Compatibilità API.
Prezzi
Le metriche DCGM utilizzano Google Cloud Managed Service per Prometheus per caricare le metriche in Cloud Monitoring. Gli addebiti di Cloud Monitoring per l'importazione di queste metriche si basano sul numero di campioni importati. Tuttavia, queste metriche sono senza costi per i cluster registrati che appartengono a un progetto in cui è abilitata la versione GKE Enterprise.
Per maggiori informazioni, consulta Prezzi di Cloud Monitoring.
Quota
Le metriche DCGM utilizzano la quota Richieste di importazione delle serie temporali al minuto dell'API Cloud Monitoring. Prima di attivare i pacchetti di metriche, controlla l'utilizzo massimo recente della quota. Se hai molti cluster nello stesso progetto o stai già avvicinandoti a questo limite di quota, puoi richiedere un aumento del limite di quota prima di attivare uno dei pacchetti di osservabilità.
Metriche DCGM
I nomi delle metriche di Cloud Monitoring in questa tabella devono avere il prefisso prometheus.googleapis.com/
. Questo prefisso è stato omesso dalle voci della tabella.
Oltre alle etichette sulla risorsa monitorata prometheus_target
, a tutte le metriche DCGM raccolte su GKE sono associate le seguenti etichette:
Etichette GPU:
UUID
: l'UUID del dispositivo GPUdevice
: il nome del dispositivo GPU.-
gpu
: il numero di indice come numero intero del dispositivo GPU sul nodo. Ad esempio, se sono collegate 8 GPU, questo valore può variare da0
a7
. modelName
: il nome del modello del dispositivo GPU, ad esempioNVIDIA L4
.
Etichette Kubernetes:
container
: il nome del contenitore Kubernetes che utilizza il dispositivo GPU.-
namespace
: lo spazio dei nomi Kubernetes del pod e del contenitore che utilizzano il dispositivo GPU. pod
: il pod Kubernetes che utilizza il dispositivo GPU.
Nome della metrica PromQL Nome della metrica Cloud Monitoring |
|
---|---|
Tipo, Tipo, Unità
Risorse monitorate Versione GKE obbligatoria |
Descrizione |
DCGM_FI_DEV_FB_FREE DCGM_FI_DEV_FB_FREE/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Buffer di frame libero in MB. |
DCGM_FI_DEV_FB_TOTAL DCGM_FI_DEV_FB_TOTAL/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Frame Buffer totale della GPU in MB. |
DCGM_FI_DEV_FB_USED DCGM_FI_DEV_FB_USED/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Frame Buffer utilizzato in MB. |
DCGM_FI_DEV_GPU_TEMP DCGM_FI_DEV_GPU_TEMP/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Letture della temperatura attuale del dispositivo (in °C). |
DCGM_FI_DEV_GPU_UTIL DCGM_FI_DEV_GPU_UTIL/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Utilizzo GPU (in %). |
DCGM_FI_DEV_MEM_COPY_UTIL DCGM_FI_DEV_MEM_COPY_UTIL/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Utilizzo della memoria (in %). |
DCGM_FI_DEV_MEMORY_TEMP DCGM_FI_DEV_MEMORY_TEMP/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Temperatura della memoria del dispositivo (in °C). |
DCGM_FI_DEV_POWER_USAGE DCGM_FI_DEV_POWER_USAGE/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Consumo di energia del dispositivo (in watt). |
DCGM_FI_DEV_SM_CLOCK DCGM_FI_DEV_SM_CLOCK/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Frequenza di clock SM (in MHz). |
DCGM_FI_DEV_TOTAL_ENERGY_CONSUMPTION DCGM_FI_DEV_TOTAL_ENERGY_CONSUMPTION/counter |
|
CUMULATIVE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Consumo energetico totale della GPU in mJ dall'ultimo ricaricamento del driver. |
DCGM_FI_PROF_DRAM_ACTIVE DCGM_FI_PROF_DRAM_ACTIVE/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Il rapporto tra i cicli in cui l'interfaccia della memoria del dispositivo è attiva per l'invio o la ricezione di dati. |
DCGM_FI_PROF_GR_ENGINE_ACTIVE DCGM_FI_PROF_GR_ENGINE_ACTIVE/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Il rapporto tra il tempo in cui il motore grafico è attivo. |
DCGM_FI_PROF_NVLINK_RX_BYTES DCGM_FI_PROF_NVLINK_RX_BYTES/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
La frequenza dei dati NvLink rx (lettura) attivi in byte, inclusi intestazione e payload. |
DCGM_FI_PROF_NVLINK_TX_BYTES DCGM_FI_PROF_NVLINK_TX_BYTES/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
La frequenza dei dati di trasmissione (tx) NvLink attivi in byte, inclusi intestazione e payload. |
DCGM_FI_PROF_PCIE_RX_BYTES DCGM_FI_PROF_PCIE_RX_BYTES/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
La frequenza dei dati PCIe rx (lettura) attivi in byte, inclusi intestazione e payload. |
DCGM_FI_PROF_PCIE_TX_BYTES DCGM_FI_PROF_PCIE_TX_BYTES/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
La frequenza dei dati PCIe tx (trasmissione) attivi in byte, inclusi intestazione e payload. |
DCGM_FI_PROF_PIPE_FP16_ACTIVE DCGM_FI_PROF_PIPE_FP16_ACTIVE/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Il rapporto tra i cicli in cui la pipeline FP16 è attiva. |
DCGM_FI_PROF_PIPE_FP32_ACTIVE DCGM_FI_PROF_PIPE_FP32_ACTIVE/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Il rapporto tra i cicli in cui la pipeline FP32 è attiva. |
DCGM_FI_PROF_PIPE_FP64_ACTIVE DCGM_FI_PROF_PIPE_FP64_ACTIVE/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Il rapporto tra i cicli in cui la pipeline FP64 è attiva. |
DCGM_FI_PROF_PIPE_TENSOR_ACTIVE DCGM_FI_PROF_PIPE_TENSOR_ACTIVE/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Il rapporto tra i cicli in cui è attiva qualsiasi pipeline del tensore. |
DCGM_FI_PROF_SM_ACTIVE DCGM_FI_PROF_SM_ACTIVE/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Il rapporto tra i cicli a cui un SM ha assegnato almeno un warp. |
Per aiutarti a capire come possono essere utilizzate queste metriche, le abbiamo raggruppate come segue:
Utilizzo di calcolo o core
Queste metriche ti consentono di identificare i dispositivi sottoutilizzati e di modificare il calcolo o l'allocazione della GPU per ottimizzare l'utilizzo. Un utilizzo ridotto significa che potresti pagare per una capacità GPU superiore a quella necessaria. Queste metriche possono contribuire a risparmiare sui costi consolidando il calcolo su un numero inferiore di dispositivi.
DCGM_FI_DEV_GPU_UTIL
Questa metrica rappresenta la frazione di tempo in cui la GPU è stata attiva.
Utilizzo previsto: fornisce una panoramica dell'utilizzo medio della GPU. Questa metrica è simile a DCGM_FI_PROF_GR_ENGINE_ACTIVE, che potrebbe essere una metrica più accurata per l'utilizzo della GPU.
DCGM_FI_PROF_GR_ENGINE_ACTIVE
Questa metrica indica il grado di utilizzo del motore grafico per ogni intervallo di campionamento. Il valore è ricavato dal numero medio di cicli attivi rispetto ai cicli disponibili massimi possibili nell'intervallo di campionamento. Ad esempio, se su un intervallo di campionamento di un secondo erano disponibili 1000 cicli e in media 324 cicli erano effettivamente attivi (eseguivano operazioni), il valore della metrica risultante sarebbe 0,324. Questo valore può essere interpretato approssimativamente come (0,324 x 100) 32,4% di utilizzo.
Utilizzo previsto: fornisce una panoramica dell'utilizzo medio della GPU. Valori di utilizzo costantemente elevati indicano che la GPU potrebbe essere un collo di bottiglia che causa problemi di prestazioni del sistema. Valori di utilizzo costantemente bassi indicano che l'applicazione non utilizza completamente la potenza di elaborazione disponibile.
DCGM_FI_PROF_PIPE_FP16_ACTIVE
, DCGM_FI_PROF_PIPE_FP32_ACTIVE
,
DCGM_FI_PROF_PIPE_FP64_ACTIVE
, DCGM_FI_PROF_PIPE_TENSOR_ACTIVE
Queste metriche rappresentano il rapporto tra i cicli attivi di una determinata pipeline della GPU e i cicli trascorsi sostenuti dal picco.
Utilizzo previsto: misura l'efficacia con cui vengono utilizzate le varie pipeline di calcolo nella GPU.
DCGM_FI_PROF_SM_ACTIVE
Questa metrica rappresenta la frazione di tempo in cui almeno un warp è stato attivo su un multiprocessore streaming(SM), calcolata in media su tutti gli SM. Ad esempio, se la GPU ha 80 SM disponibili e durante il periodo di campionamento 16 SM stavano eseguendo un warp, il valore sm_active
risultante sarà (16/80) 0, 20, che può essere interpretato come il 20% degli SM disponibili in cui è stato eseguito un warp.
Utilizzo previsto: fornisce una misura dell'utilizzo del parallelismo della GPU.
Utilizzo della memoria
L'utilizzo principale di queste metriche è rilevare quando i dispositivi GPU non dispongono di memoria sufficiente per le applicazioni. Queste applicazioni potrebbero trarre vantaggio dall'allocazione di più capacità GPU.
DCGM_FI_DEV_FB_FREE
, DCGM_FI_DEV_FB_USED
, DCGM_FI_DEV_FB_TOTAL
Queste metriche si riferiscono alla memoria framebuffer, ovvero la memoria sulla GPU. Le metriche riportano la memoria libera e la memoria utilizzata, che si sommano al totale. Inoltre, la memoria totale disponibile.
Utilizzo previsto: determina i pattern di utilizzo della memoria GPU. In questo modo, puoi correlare l'utilizzo effettivo della memoria sulla GPU con l'utilizzo previsto per determinare l'efficienza della memoria dell'applicazione.
DCGM_FI_DEV_MEM_COPY_UTIL
Questa metrica rappresenta la frazione di tempo nell'ultimo periodo di esempio in cui è stata letta o scritta la memoria globale (del dispositivo).
Utilizzo previsto: determina i pattern di trasferimento dei dati verso e dalla memoria GPU. Valori elevati di questa metrica, combinati con valori bassi delle metriche di utilizzo del calcolo, possono indicare che il trasferimento di memoria è il collo di bottiglia nelle applicazioni in esecuzione.
DCGM_FI_PROF_DRAM_ACTIVE
Questa metrica rappresenta il rapporto tra i cicli in cui l'interfaccia della memoria GPU invia o riceve dati. Sono inclusi i caricamenti e le memorizzazioni dai thread in esecuzione su SM, nonché le copie di memoria verso e dalla memoria GPU. Valori più elevati indicano livelli più elevati di traffico di memoria.
Utilizzo previsto:
Questa metrica è simile alla metrica DCGM_FI_DEV_MEM_COPY_UTIL
e potrebbe essere più precisa.
Utilizzo I/O
Le seguenti metriche forniscono informazioni sull'utilizzo della trasmissione dei dati tra la GPU e il computer host o tra più dispositivi GPU. Un modo per utilizzare queste metriche è rilevare quando un'applicazione sovraccarica l'interconnessione. A causa dell'intrinseca natura intermittente di questa trasmissione, potrebbe essere opportuno esplorare dati con una risoluzione più elevata (ad es. una distribuzione) per fornire un quadro più dettagliato del comportamento dell'interconnessione.
DCGM_FI_PROF_NVLINK_RX_BYTES
, DCGM_FI_PROF_NVLINK_TX_BYTES
Queste metriche rappresentano il throughput in byte di trasmissione (tx) e ricezione (rx) di NVLink.
Utilizzo previsto: monitora il carico sui connettori NVLink (tra i chip GPU). Se il valore di queste metriche è vicino alla larghezza di banda totale di NVLink disponibile e le metriche di utilizzo del calcolo sono basse, potrebbe indicare che NVLink è un collo di bottiglia nelle applicazioni in esecuzione.
DCGM_FI_PROF_PCIE_RX_BYTES
, DCGM_FI_PROF_PCIE_TX_BYTES
Queste metriche rappresentano il throughput in byte di trasmissione (tx) e ricezione (rx) PCIe, dove tx indica la GPU che trasmette i dati e rx la GPU che li riceve.
Utilizzo previsto: monitora il carico sul bus PCIe (tra CPU e GPU). Se i valori di queste metriche sono vicini alla larghezza di banda totale del bus PCIe e le metriche di utilizzo del calcolo sono basse, questo potrebbe indicare che il bus PCIe è un collo di bottiglia nelle applicazioni in esecuzione.
Utilizzo della potenza
Le seguenti metriche forniscono informazioni sull'utilizzo della potenza della GPU, a volte fondamentale per le prestazioni e l'efficienza del workload.
DCGM_FI_DEV_GPU_TEMP
Questa metrica rappresenta la temperatura media in tutti i core della GPU.
Utilizzo previsto: monitora quando la GPU è vicina al surriscaldamento, principalmente per correlarla al throttling del clock. Puoi anche utilizzare questa metrica per identificare le GPU soggette a surriscaldamento per carichi più leggeri in applicazioni più avanzate.
DCGM_FI_DEV_POWER_USAGE
Questa metrica rappresenta il consumo di energia della GPU in watt. Ti consigliamo di monitorare l'utilizzo dell'alimentazione come metrica di utilizzo della GPU. Le GPU NVIDIA regolano i clock dell'engine in base al lavoro che devono svolgere. Con l'aumento della frequenza di clock (e quindi dell'utilizzo), aumenta anche il consumo di energia.
Utilizzo previsto: monitora la potenza utilizzata dalla GPU per le applicazioni utente.
DCGM_FI_DEV_TOTAL_ENERGY_CONSUMPTION
Questa metrica rappresenta il consumo energetico totale della GPU in millijoule (mJ) dopo l'ultimo ricaricamento del driver. La frequenza calcolata in base a questa metrica deve corrispondere alla metrica relativa all'assorbimento di corrente.
Utilizzo previsto: monitora la potenza utilizzata dalla GPU per le applicazioni utente.
Metriche relative alle prestazioni della GPU
Le prestazioni della GPU si riferiscono all'efficacia e all'efficienza con cui una GPU può eseguire un'attività di calcolo.
DCGM_FI_DEV_MEMORY_TEMP
Questa metrica indica la temperatura media del blocco di memoria.
Utilizzo previsto: per mostrare la temperatura del blocco di memoria e correlarla con la temperatura della GPU.
DCGM_FI_DEV_SM_CLOCK
Questa metrica rappresenta la velocità di clock media in tutti gli SM. Questa metrica viene calcolata su un intervallo di tempo specificato.
Utilizzo previsto: monitora la velocità di clock per rilevare la limitazione e correlarla con le prestazioni dell'applicazione.
Passaggi successivi
- Scopri come visualizzare le metriche di osservabilità.