Raccogliere e visualizzare le metriche DCGM


Puoi monitorare l'utilizzo, le prestazioni e lo stato della GPU configurando GKE per inviare metriche NVIDIA Data Center GPU Manager (DCGM) a Cloud Monitoring.

Quando abiliti le metriche DCGM, GKE installa lo strumento DCGM-Exporter, installa i driver GPU gestiti da Google e implementa una risorsa ClusterPodMonitoring per inviare le metriche a Google Cloud Managed Service per Prometheus. Per i nuovi cluster GKE creati con la versione 1.32.1-gke.1357000 o successive, il pacchetto di metriche DCGM è abilitato per impostazione predefinita. Per i cluster che eseguono versioni precedenti, puoi attivare la raccolta delle metriche DCGM utilizzando la console Google Cloud , gcloud CLI o Terraform.

Puoi anche configurare DCGM autogestito 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'è DCGM

NVIDIA Data Center GPU Manager (DCGM) è un insieme di strumenti di NVIDIA che consentono di gestire e monitorare le GPU NVIDIA. DCGM espone varie strutture di osservabilità e contatori utilizzando ciò che chiama fields. Ogni campo ha un identificatore simbolico e un numero di campo. Puoi trovare un elenco completo all'indirizzo Elenco di ID campo di NVIDIA DCGM.

Se abiliti 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 attività della GPU monitorata e se viene utilizzata in modo efficace per l'elaborazione delle attività. Sono incluse le metriche per l'elaborazione dei core, la memoria, l'I/O e l'utilizzo dell'energia.
  • Le metriche delle prestazioni della GPU si riferiscono all'efficacia ed efficienza con cui una GPU può eseguire un'attività computazionale. Sono incluse le metriche per la velocità di clock e la temperatura.
  • Le metriche I/O della GPU come NVLink e PCIe misurano la larghezza di banda del 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à, installala e poi inizializzala. Se hai già installato gcloud CLI, scarica l'ultima versione eseguendo gcloud components update.

Requisiti per le metriche NVIDIA Data Center GPU Manager (DCGM)

Per raccogliere le metriche NVIDIA Data Center GPU Manager (DCGM), il cluster GKE deve soddisfare i seguenti requisiti:

Limitazioni

  • Se esegui un pacchetto di metriche NVIDIA Data Center GPU Manager (DCGM) autodeployato, devi interromperne la raccolta prima di attivare le metriche NVIDIA Data Center GPU Manager (DCGM) gestite, altrimenti potresti ritrovarti con metriche duplicate o errate.

  • Le metriche DCGM gestite, inclusi i relativi manifest e le immagini container sottostanti, sono progettate per funzionare solo sui cluster GKE. Non utilizzare le metriche DCGM gestite in modo autonomo o eseguirle al di fuori di GKE.

Configura 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

  1. Crea un node pool GPU.

    Devi utilizzare Predefinito o Più recente per Installazione driver GPU.

  2. Vai alla pagina Google Kubernetes Engine nella console Google Cloud .

    Vai a Google Kubernetes Engine

  3. Fai clic sul nome del cluster.

  4. Accanto a Cloud Monitoring, fai clic su .

  5. Seleziona SYSTEM e DCGM.

  6. Fai clic su Salva.

gcloud

  1. Crea un node pool GPU.

    Devi utilizzare default o latest per --gpu-driver-version.

  2. Aggiorna il cluster:

    gcloud container clusters update CLUSTER_NAME \
        --location=COMPUTE_LOCATION \
        --enable-managed-prometheus \
        --monitoring=SYSTEM,DCGM
    

    Sostituisci quanto segue:

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 i dashboard nella consoleGoogle Cloud o direttamente nelle pagine di panoramica e dettagli del cluster. Per informazioni, vedi Visualizzare le metriche di osservabilità.

Puoi visualizzare le metriche utilizzando la dashboard delle metriche DCGM di Grafana. Per ulteriori informazioni, consulta la sezione Query con Grafana. Se riscontri errori, consulta la sezione Compatibilità API.

Prezzi

Le metriche DCGM utilizzano Google Cloud Managed Service per Prometheus per caricare le metriche in Cloud Monitoring. I costi di Cloud Monitoring per l'importazione di queste metriche si basano sul numero di campioni importati. Tuttavia, queste metriche sono gratuite per i cluster registrati che appartengono a un progetto in cui è abilitata l'edizione GKE Enterprise.

Per maggiori informazioni, consulta la pagina Prezzi di Cloud Monitoring.

Quota

Le metriche DCGM utilizzano la quota Richieste di importazione di serie temporali al minuto dell'API Cloud Monitoring. Prima di attivare i pacchetti di metriche, controlla il picco di utilizzo recente di questa quota. Se hai molti cluster nello stesso progetto o ti stai già avvicinando al limite della quota, puoi richiedere un aumento del limite di quota prima di attivare uno dei due 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 della risorsa monitorata prometheus_target, tutte le metriche DCGM raccolte su GKE hanno le seguenti etichette associate:

Etichette GPU:

  • UUID: l'UUID del dispositivo GPU
  • device: 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 da 0 a 7.
  • modelName: il nome del modello di dispositivo GPU, ad esempio NVIDIA L4.

Etichette Kubernetes:

  • container: il nome del container Kubernetes che utilizza il dispositivo GPU.
  • namespace: lo spazio dei nomi Kubernetes del pod e del container che utilizzano il dispositivo GPU.
  • pod: il pod Kubernetes che utilizza il dispositivo GPU.
Nome metrica PromQL
Nome metrica Cloud Monitoring
Tipo, Unità
Risorse monitorate
Versione GKE richiesta
Descrizione
DCGM_FI_DEV_FB_FREE
DCGM_FI_DEV_FB_FREE/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Buffer di frame libero in MB.
DCGM_FI_DEV_FB_TOTAL
DCGM_FI_DEV_FB_TOTAL/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Framebuffer totale della GPU in MB.
DCGM_FI_DEV_FB_USED
DCGM_FI_DEV_FB_USED/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Frame buffer utilizzato in MB.
DCGM_FI_DEV_GPU_TEMP
DCGM_FI_DEV_GPU_TEMP/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Letture della temperatura attuale per il dispositivo (in °C).
DCGM_FI_DEV_GPU_UTIL
DCGM_FI_DEV_GPU_UTIL/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Utilizzo GPU (in %).
DCGM_FI_DEV_MEM_COPY_UTIL
DCGM_FI_DEV_MEM_COPY_UTIL/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Utilizzo della memoria (in %).
DCGM_FI_DEV_MEMORY_TEMP
DCGM_FI_DEV_MEMORY_TEMP/gauge

GAUGEDOUBLE1 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

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Consumo energetico del dispositivo (in watt).
DCGM_FI_DEV_SM_CLOCK
DCGM_FI_DEV_SM_CLOCK/gauge

GAUGEDOUBLE1 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

CUMULATIVEDOUBLE1 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

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Il rapporto tra i cicli in cui l'interfaccia di 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

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Il rapporto tra il tempo in cui il motore della grafica è attivo.
DCGM_FI_PROF_NVLINK_RX_BYTES
DCGM_FI_PROF_NVLINK_RX_BYTES/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Il tasso di dati rx (lettura) NvLink attivi in byte, inclusi intestazione e payload.
DCGM_FI_PROF_NVLINK_TX_BYTES
DCGM_FI_PROF_NVLINK_TX_BYTES/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Il tasso di trasmissione (tx) dei dati NvLink attivi in byte, inclusi intestazione e payload.
DCGM_FI_PROF_PCIE_RX_BYTES
DCGM_FI_PROF_PCIE_RX_BYTES/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Il tasso di dati PCIe rx (lettura) attivi in byte, inclusi sia l'intestazione che il payload.
DCGM_FI_PROF_PCIE_TX_BYTES
DCGM_FI_PROF_PCIE_TX_BYTES/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Il tasso di dati PCIe tx (trasmissione) attivi in byte, inclusi sia l'intestazione che il payload.
DCGM_FI_PROF_PIPE_FP16_ACTIVE
DCGM_FI_PROF_PIPE_FP16_ACTIVE/gauge

GAUGEDOUBLE1 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

GAUGEDOUBLE1 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

GAUGEDOUBLE1 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

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Il rapporto tra i cicli in cui è attiva una pipeline tensoriale.
DCGM_FI_PROF_SM_ACTIVE
DCGM_FI_PROF_SM_ACTIVE/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Il rapporto tra i cicli a cui è assegnato almeno un warp.

Per aiutarti a capire come possono essere utilizzate queste metriche, le abbiamo raggruppate nel seguente modo:

Utilizzo di calcolo o core

Queste metriche ti consentono di identificare i dispositivi sottoutilizzati e di modificare l'allocazione di calcolo o GPU per ottimizzare l'utilizzo. Un utilizzo basso significa che potresti pagare una capacità GPU superiore al necessario. Queste metriche possono aiutare 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 rappresenta il livello di attività del motore della grafica per ogni intervallo di campionamento. Il valore è derivato dal numero medio di cicli attivi rispetto al numero massimo possibile di cicli disponibili nell'intervallo di campionamento. Ad esempio, se in un intervallo di campionamento di un secondo erano disponibili 1000 cicli e in realtà erano attivi (in esecuzione) in media 324 cicli, il valore della metrica risultante sarebbe 0,324. Questo valore può essere interpretato approssimativamente come un utilizzo del 32,4% (0,324 x 100).

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 in cui una determinata pipeline della GPU è attiva e i cicli trascorsi sostenuti dal picco.

Utilizzo previsto:misura l'efficacia con cui vengono utilizzate le varie pipeline computazionali della 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 eseguivano un warp, il valore sm_active risultante sarebbe (16/80) 0, 20, che può essere interpretato come il 20% degli SM disponibili aveva un warp in esecuzione.

Utilizzo previsto: Fornisce una misura di come viene utilizzato il parallelismo della GPU.

Utilizzo della memoria

L'utilizzo principale di queste metriche è rilevare quando i dispositivi GPU non hanno memoria sufficiente per le applicazioni. Queste applicazioni potrebbero trarre vantaggio dall'allocazione di una maggiore capacità della 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 della GPU. Le metriche indicano la memoria libera e la memoria utilizzata, la cui somma corrisponde 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 della tua 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 (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, potrebbero 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. Ciò include carichi e archivi da thread eseguiti su SM, nonché copie della memoria da e verso la memoria della GPU. Valori più alti 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 l'host o tra più dispositivi GPU. Un modo per utilizzare queste metriche è rilevare quando un'applicazione sovraccarica l'interconnessione. A causa della natura intrinseca di burst di questa trasmissione, potrebbe valere la pena esplorare dati a 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 di trasmissione (tx) e ricezione (rx) NVLink in byte.

Utilizzo previsto: Monitora il carico sui connettori NVLink (tra chip GPU). Se il valore di queste metriche si avvicina alla larghezza di banda NVLink totale disponibile e le metriche di utilizzo del calcolo sono basse, ciò 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 di trasmissione (tx) e ricezione (rx) PCIe in byte, dove tx è 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, ciò potrebbe indicare che il bus PCIe è un collo di bottiglia nelle applicazioni in esecuzione.

Utilizzo dell'energia

Le seguenti metriche forniscono informazioni sull'utilizzo dell'energia della GPU, a volte fondamentali per le prestazioni e l'efficienza del carico di lavoro.

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 correlarlo alla limitazione della velocità di clock. Puoi anche utilizzare questa metrica per identificare le GPU soggette a surriscaldamento per un carico più leggero in applicazioni più avanzate.

DCGM_FI_DEV_POWER_USAGE

Questa metrica rappresenta il consumo energetico della GPU in watt. Potresti voler monitorare il consumo energetico come metrica di utilizzo della GPU. Le GPU NVIDIA regolano le frequenze del motore in base al carico di lavoro. Man mano che la velocità di clock (e quindi l'utilizzo) aumenta, aumenta anche il consumo energetico.

Utilizzo previsto:Monitora la quantità di energia 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. Il tasso calcolato su questa metrica deve corrispondere alla metrica di consumo energetico.

Utilizzo previsto:Monitora la quantità di energia utilizzata dalla GPU per le applicazioni utente.

Metriche sul rendimento della GPU

Le prestazioni della GPU si riferiscono all'efficacia ed efficienza con cui una GPU può eseguire un'attività computazionale.

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 metterla in correlazione 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 in un intervallo di tempo specificato.

Utilizzo previsto: Tieni traccia della velocità di clock per rilevare la limitazione e correlarla alle prestazioni dell'applicazione.

Passaggi successivi