Collecter et afficher les métriques DCGM


Vous pouvez surveiller l'utilisation, les performances et l'état des GPU en configurant GKE pour envoyer des métriques du gestionnaire GPU de centre de données (DCGM) NVIDIA à Cloud Monitoring.

Lorsque vous activez les métriques DCGM, GKE installe l'outil DCGM-Exporter, installe les pilotes GPU gérés par Google et déploie une ressource ClusterPodMonitoring pour envoyer les métriques à Google Cloud Managed Service pour Prometheus. Pour les nouveaux clusters GKE exécutant la version 1.32.1-gke.1357000 ou ultérieure, le package de métriques DCGM est activé par défaut. Pour les clusters exécutant des versions antérieures, vous pouvez activer la collecte des métriques DCGM à l'aide de la console Google Cloud , de gcloud CLI ou de Terraform.

Vous pouvez également configurer un service DCGM autogéré si vous souhaitez personnaliser l'ensemble de métriques DCGM ou si vous avez un cluster qui ne répond pas aux exigences liées aux métriques DCGM gérées.

Qu'est-ce que DCGM ?

Le gestionnaire de GPU de centre de données (DCGM) NVIDIA est un ensemble d'outils NVIDIA qui vous permettent de gérer et de surveiller les GPU NVIDIA. DCGM expose différentes structures et différents compteurs d'observabilité à l'aide de ce qu'il appelle des fields. Chaque champ possède un identifiant symbolique et un numéro de champ. Vous trouverez la liste complète sur la page Liste des ID de champs DCGM NVIDIA.

Si vous activez les métriques DCGM sur GKE, les métriques compatibles sont automatiquement disponibles dans Cloud Monitoring. Ces métriques fournissent une vue complète de l'utilisation, des performances et de l'état des GPU.

  • Les métriques d'utilisation du GPU indiquent le niveau d'activité du GPU surveillé et s'il est utilisé efficacement pour les tâches de traitement. Cela inclut les métriques pour le traitement du cœur, la mémoire, les E/S et l'utilisation de l'énergie.
  • Les métriques de performances du GPU font référence à l'efficacité et à l'efficience avec lesquelles un GPU peut effectuer une tâche de calcul. Cela inclut les métriques pour la fréquence d'horloge et la température.
  • Les métriques d'E/S de GPU, comme NVlink et PCIe, mesurent la bande passante de transfert de données.

Avant de commencer

Avant de commencer, effectuez les tâches suivantes :

  • Activez l'API Google Kubernetes Engine.
  • Activer l'API Google Kubernetes Engine
  • Si vous souhaitez utiliser Google Cloud CLI pour cette tâche, installez puis initialisez gcloud CLI. Si vous avez déjà installé gcloud CLI, assurez-vous de disposer de la dernière version en exécutant la commande gcloud components update.

Exigences concernant les métriques du gestionnaire de GPU de centre de données (DCGM) NVIDIA

Pour collecter des métriques du gestionnaire de GPU NVIDIA Data Center (DCGM), votre cluster GKE doit répondre aux exigences suivantes :

  • Les clusters doivent exécuter GKE version 1.30.1-gke.1204000 ou ultérieure.
  • La collecte des métriques système doit être activée.
  • La collecte gérée Google Cloud Managed Service pour Prometheus doit être activée.
  • Les pools de nœuds doivent exécuter des pilotes GPU gérés par GKE. Cela signifie que vous devez créer vos pools de nœuds à l'aide de default ou latest pour --gpu-driver-version.
  • Pour GKE version 1.32.0-gke.1764000 ou ultérieure, les métriques de profilage sont collectées pour tous les types de GPU compatibles avec GKE. Pour les versions antérieures de GKE, les métriques de profilage ne sont collectées que pour les GPU NVIDIA H100 80 Go.

Limites

  • Si vous exécutez un package de métriques du gestionnaire de GPU NVIDIA Data Center (DCGM) autodéployé, vous devez arrêter de le collecter avant d'activer les métriques du gestionnaire de GPU NVIDIA Data Center (DCGM) géré, faute de quoi vous risquez d'obtenir des métriques en double ou incorrectes.

  • Les métriques DCGM gérées, y compris leurs fichiers manifestes et images de conteneurs sous-jacents, ne sont conçues que pour fonctionner sur les clusters GKE. N'utilisez pas les métriques DCGM gérées de manière autonome ni en dehors de GKE.

Configurer la collecte de métriques DCGM

Vous pouvez activer la collecte des métriques DCGM par GKE pour un cluster existant à l'aide de la console Google Cloud , de gcloud CLI ou de Terraform.

Console

  1. Créer un pool de nœuds GPU.

    Vous devez utiliser l'option Par défaut ou La plus récente pour l'installation du pilote de GPU.

  2. Accédez à la page Google Kubernetes Engine dans la console Google Cloud .

    Accéder à Google Kubernetes Engine

  3. Cliquez sur le nom de votre cluster.

  4. À côté de Cloud Monitoring, cliquez sur .

  5. Sélectionnez SYSTEM et DCGM.

  6. Cliquez sur "Enregistrer".

gcloud

  1. Créez un pool de nœuds GPU.

    Vous devez utiliser default ou latest pour --gpu-driver-version.

  2. Mettez à jour votre cluster :

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

    Remplacez les éléments suivants :

Terraform

Pour configurer la collecte de métriques à l'aide de Terraform, consultez le bloc monitoring_config dans le registre Terraform pour google_container_cluster. Pour obtenir des informations générales sur l'utilisation de Google Cloud avec Terraform, consultez Terraform avec Google Cloud.

Utiliser les métriques DCGM

Vous pouvez afficher les métriques DCGM à l'aide des tableaux de bord de la consoleGoogle Cloud ou directement sur les pages "Présentation du cluster" et "Détails du cluster". Pour en savoir plus, consultez Afficher les métriques d'observabilité.

Vous pouvez afficher les métriques à l'aide du tableau de bord des métriques Grafana DCGM. Pour en savoir plus, consultez Interroger à l'aide de Grafana. Si vous rencontrez des erreurs, consultez Compatibilité de l'API.

Tarifs

Les métriques DCGM utilisent Google Cloud Managed Service pour Prometheus pour charger des métriques dans Cloud Monitoring. Les frais liés à l'ingestion de ces métriques sont calculés par Cloud Monitoring en fonction du nombre d'échantillons ingérés. Toutefois, ces métriques sont gratuites pour les clusters enregistrés qui appartiennent à un projet sur lequel l'édition GKE Enterprise est activée.

Pour en savoir plus, consultez la tarification Cloud Monitoring.

Quota

Les métriques DCGM consomment le quota Requêtes d'ingestion de séries temporelles par minute de l'API Cloud Monitoring. Avant d'activer les packages de métriques, vérifiez votre utilisation maximale récente de ce quota. Si vous avez plusieurs clusters dans le même projet ou que vous approchez déjà de la limite de ce quota, vous pouvez demander une augmentation de la limite de quota avant d'activer un package d'observabilité.

Métriques DCGM

Les noms des métriques Cloud Monitoring figurant dans ce tableau doivent être précédés du préfixe prometheus.googleapis.com/. Ce préfixe a été omis dans les entrées du tableau.

En plus des libellés sur la ressource surveillée prometheus_target, toutes les métriques DCGM collectées sur GKE sont associées aux libellés suivants :

Étiquettes GPU :

  • UUID : UUID de l'appareil GPU
  • device : nom de l'appareil GPU.
  • gpu : numéro d'index (entier) de l'appareil GPU sur le nœud. Par exemple, si huit GPU sont associés, cette valeur peut être comprise entre 0 et 7.
  • modelName : nom du modèle de l'appareil GPU, par exemple NVIDIA L4.

Étiquettes Kubernetes :

  • container : nom du conteneur Kubernetes utilisant l'appareil GPU.
  • namespace : espace de noms Kubernetes du pod et du conteneur utilisant l'appareil GPU.
  • pod : pod Kubernetes utilisant l'appareil GPU.
Nom de la métrique PromQL
Nom de la métrique Cloud Monitoring
Genre, Type, Unité
Ressources surveillées
Version de GKE requise
Description
DCGM_FI_DEV_FB_FREE
DCGM_FI_DEV_FB_FREE/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Tampon de l'image disponible en Mo.
DCGM_FI_DEV_FB_TOTAL
DCGM_FI_DEV_FB_TOTAL/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Tampon total de l'image du GPU, en Mo.
DCGM_FI_DEV_FB_USED
DCGM_FI_DEV_FB_USED/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Tampon de l'image utilisé en Mo.
DCGM_FI_DEV_GPU_TEMP
DCGM_FI_DEV_GPU_TEMP/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Relevés de température actuels de l'appareil (en °C).
DCGM_FI_DEV_GPU_UTIL
DCGM_FI_DEV_GPU_UTIL/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Utilisation du GPU (en %).
DCGM_FI_DEV_MEM_COPY_UTIL
DCGM_FI_DEV_MEM_COPY_UTIL/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Utilisation de la mémoire (en %).
DCGM_FI_DEV_MEMORY_TEMP
DCGM_FI_DEV_MEMORY_TEMP/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Température de la mémoire de l'appareil (en °C).
DCGM_FI_DEV_POWER_USAGE
DCGM_FI_DEV_POWER_USAGE/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Consommation d'énergie de l'appareil (en watts).
DCGM_FI_DEV_SM_CLOCK
DCGM_FI_DEV_SM_CLOCK/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Fréquence d'horloge du multiprocesseur de flux (en MHz).
DCGM_FI_DEV_TOTAL_ENERGY_CONSUMPTION
DCGM_FI_DEV_TOTAL_ENERGY_CONSUMPTION/counter

CUMULATIVEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Consommation d'énergie totale du GPU en mJ depuis le dernier rechargement du pilote.
DCGM_FI_PROF_DRAM_ACTIVE
DCGM_FI_PROF_DRAM_ACTIVE/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Ratio des cycles pendant lesquels l'interface de mémoire de l'appareil est active pour envoyer ou recevoir des données.
DCGM_FI_PROF_GR_ENGINE_ACTIVE
DCGM_FI_PROF_GR_ENGINE_ACTIVE/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Ratio de temps pendant lequel le moteur graphique est actif.
DCGM_FI_PROF_NVLINK_RX_BYTES
DCGM_FI_PROF_NVLINK_RX_BYTES/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Taux de données NvLink rx (lecture) actives en octets, y compris l'en-tête et la charge utile.
DCGM_FI_PROF_NVLINK_TX_BYTES
DCGM_FI_PROF_NVLINK_TX_BYTES/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Taux de données de transmission NvLink actives en octets, y compris l'en-tête et la charge utile.
DCGM_FI_PROF_PCIE_RX_BYTES
DCGM_FI_PROF_PCIE_RX_BYTES/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Taux de données PCIe rx (lecture) actives en octets, y compris l'en-tête et la charge utile.
DCGM_FI_PROF_PCIE_TX_BYTES
DCGM_FI_PROF_PCIE_TX_BYTES/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Taux de données de transmission PCIe actives en octets, y compris l'en-tête et la charge utile.
DCGM_FI_PROF_PIPE_FP16_ACTIVE
DCGM_FI_PROF_PIPE_FP16_ACTIVE/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Ratio des cycles pendant lesquels le pipeline fp16 est actif.
DCGM_FI_PROF_PIPE_FP32_ACTIVE
DCGM_FI_PROF_PIPE_FP32_ACTIVE/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Ratio des cycles pendant lesquels le pipeline fp32 est actif.
DCGM_FI_PROF_PIPE_FP64_ACTIVE
DCGM_FI_PROF_PIPE_FP64_ACTIVE/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Ratio des cycles pendant lesquels le pipeline fp64 est actif.
DCGM_FI_PROF_PIPE_TENSOR_ACTIVE
DCGM_FI_PROF_PIPE_TENSOR_ACTIVE/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Ratio des cycles pendant lesquels un canal Tensor est actif.
DCGM_FI_PROF_SM_ACTIVE
DCGM_FI_PROF_SM_ACTIVE/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Ratio de cycles où un SM a au moins un warp associé.

Pour vous aider à comprendre comment utiliser ces métriques, nous les avons regroupées comme suit :

Utilisation du calcul ou du cœur

Ces métriques vous permettent d'identifier les appareils sous-utilisés et d'ajuster votre allocation de calcul ou de GPU pour optimiser l'utilisation. Une faible utilisation signifie que vous payez peut-être une capacité de GPU supérieure à celle dont vous avez besoin. Ces métriques peuvent vous aider à réduire les coûts en consolidant le calcul sur moins d'appareils.

DCGM_FI_DEV_GPU_UTIL

Cette métrique représente la fraction de temps pendant laquelle le GPU a été actif.

Utilisation prévue : fournit un aperçu de l'utilisation moyenne du GPU. Cette métrique est semblable à DCGM_FI_PROF_GR_ENGINE_ACTIVE, qui peut être une métrique plus précise pour l'utilisation du GPU.

DCGM_FI_PROF_GR_ENGINE_ACTIVE

Cette métrique représente le niveau d'activité du moteur graphique pour chaque intervalle d'échantillonnage. La valeur est dérivée du nombre moyen de cycles actifs par rapport au nombre maximal de cycles disponibles au cours de l'intervalle d'échantillonnage. Par exemple, si, sur un intervalle d'échantillonnage d'une seconde, 1 000 cycles étaient disponibles et qu'une moyenne de 324 cycles était réellement active (en cours de traitement), la valeur de la métrique résultante serait de 0,324. Cela peut être interprété comme une utilisation de 32,4 % (0,324 x 100).

Utilisation prévue : fournit un aperçu de l'utilisation moyenne du GPU. Des valeurs d'utilisation constamment élevées indiquent que le GPU peut être un goulot d'étranglement à l'origine de problèmes de performances du système. Des valeurs d'utilisation constamment faibles indiquent que l'application n'utilise pas pleinement la puissance de traitement disponible.

DCGM_FI_PROF_PIPE_FP16_ACTIVE, DCGM_FI_PROF_PIPE_FP32_ACTIVE, DCGM_FI_PROF_PIPE_FP64_ACTIVE, DCGM_FI_PROF_PIPE_TENSOR_ACTIVE

Ces métriques représentent le ratio de cycles pendant lesquels un pipeline de GPU donné est actif par rapport au nombre maximal de cycles soutenus écoulés.

Utilisation prévue : mesurez l'efficacité de l'utilisation des différents pipelines de calcul du GPU.

DCGM_FI_PROF_SM_ACTIVE

Cette métrique représente la fraction de temps pendant laquelle au moins un warp a été actif sur un SM(multiprocesseur de flux), moyennée sur tous les SM. Par exemple, si le GPU dispose de 80 SM et que, pendant la période d'échantillonnage, 16 SM exécutent un warp, la valeur sm_active obtenue est de (16/80) = 0,20, ce qui peut être interprété comme suit : 20 % des SM disponibles exécutent un warp.

Utilisation prévue : mesure de l'utilisation du parallélisme du GPU.

Utilisation de la mémoire

Ces métriques servent principalement à détecter lorsque les appareils GPU ne disposent pas de suffisamment de mémoire pour les applications. Ces applications peuvent bénéficier d'une capacité de GPU plus importante.

DCGM_FI_DEV_FB_FREE, DCGM_FI_DEV_FB_USED, DCGM_FI_DEV_FB_TOTAL

Ces métriques concernent la mémoire tampon de trame, qui est la mémoire du GPU. Les métriques indiquent la mémoire libre et la mémoire utilisée, dont la somme correspond à la mémoire totale. ainsi que la mémoire totale disponible.

Utilisation prévue : déterminez les schémas d'utilisation de la mémoire GPU. Cela vous permet de corréler l'utilisation réelle de la mémoire sur le GPU avec l'utilisation attendue pour déterminer l'efficacité de la mémoire de votre application.

DCGM_FI_DEV_MEM_COPY_UTIL

Cette métrique représente la fraction de temps de la dernière période d'échantillonnage pendant laquelle des données ont été lues ou écrites dans la mémoire globale (appareil).

Utilisation prévue : déterminez les schémas de transfert de données vers et depuis la mémoire GPU. Des valeurs élevées de cette métrique, combinées à de faibles valeurs des métriques d'utilisation des ressources de calcul, peuvent indiquer que le transfert de mémoire est le goulot d'étranglement dans les applications en cours d'exécution.

DCGM_FI_PROF_DRAM_ACTIVE

Cette métrique représente le ratio de cycles pendant lesquels l'interface de mémoire GPU envoie ou reçoit des données. Cela inclut les chargements et les stockages à partir de threads s'exécutant sur des SM, ainsi que les copies de mémoire vers et depuis la mémoire GPU. Plus la valeur est élevée, plus le trafic mémoire est important.

Utilisation prévue : cette métrique est semblable à la métrique DCGM_FI_DEV_MEM_COPY_UTIL et peut être plus précise.

Utilisation des E/S

Les métriques suivantes fournissent des informations sur l'utilisation de la transmission de données entre le GPU et l'hôte, ou entre plusieurs GPU. Vous pouvez utiliser ces métriques pour détecter quand une application surcharge l'interconnexion. En raison de la nature intrinsèquement irrégulière de cette transmission, il peut être intéressant d'explorer des données de résolution plus élevée (par exemple, une distribution) pour obtenir une image plus précise du comportement de l'interconnexion.

DCGM_FI_PROF_NVLINK_RX_BYTES, DCGM_FI_PROF_NVLINK_TX_BYTES

Ces métriques représentent le débit de transmission (tx) et de réception (rx) NVLink en octets.

Utilisation prévue : Suivez la charge sur les connecteurs NVLink (entre les puces GPU). Si la valeur de ces métriques est proche de la bande passante NVLink totale disponible et que les métriques d'utilisation des ressources de calcul sont faibles, cela peut indiquer que le NVLink est un goulot d'étranglement dans les applications en cours d'exécution.

DCGM_FI_PROF_PCIE_RX_BYTES, DCGM_FI_PROF_PCIE_TX_BYTES

Ces métriques représentent le débit de transmission (tx) et de réception (rx) PCIe en octets, où tx correspond au GPU transmettant des données et rx au GPU recevant des données.

Utilisation prévue : Suivi de la charge du bus PCIe (entre le processeur et le GPU). Si les valeurs de ces métriques sont proches de la bande passante totale du bus PCIe et que les métriques d'utilisation des ressources de calcul sont faibles, cela peut indiquer que le bus PCIe est un goulot d'étranglement dans les applications en cours d'exécution.

Utilisation de l'énergie

Les métriques suivantes fournissent des informations sur l'utilisation de l'énergie du GPU, parfois cruciales pour les performances et l'efficacité des charges de travail.

DCGM_FI_DEV_GPU_TEMP

Cette métrique représente la température moyenne sur l'ensemble des cœurs de GPU.

Utilisation prévue : suivez le moment où le GPU est sur le point de surchauffer, principalement pour le corréler à la limitation de la fréquence d'horloge. Vous pouvez également utiliser cette métrique pour identifier les GPU sujets à la surchauffe pour une charge plus légère dans les applications plus avancées.

DCGM_FI_DEV_POWER_USAGE

Cette métrique représente la consommation d'énergie du GPU en watts. Vous pouvez suivre la consommation d'énergie comme métrique d'activité du GPU. Les GPU NVIDIA ajustent les fréquences du moteur en fonction de la charge de travail. À mesure que la fréquence d'horloge (et donc l'utilisation) augmente, la consommation d'énergie augmente également.

Utilisation prévue : suivez la quantité d'énergie utilisée par le GPU pour les applications utilisateur.

DCGM_FI_DEV_TOTAL_ENERGY_CONSUMPTION

Cette métrique représente la consommation totale d'énergie du GPU en millijoules (mJ) depuis le dernier rechargement du pilote. Le taux calculé pour cette métrique doit correspondre à la métrique de consommation électrique.

Utilisation prévue : suivez la quantité d'énergie utilisée par le GPU pour les applications utilisateur.

Métriques de performances du GPU

Les performances du GPU font référence à l'efficacité et à l'efficience avec lesquelles un GPU peut effectuer une tâche de calcul.

DCGM_FI_DEV_MEMORY_TEMP

Cette métrique indique la température moyenne du bloc de mémoire.

Utilisation prévue : afficher la température du bloc de mémoire et la corréler avec la température du GPU.

DCGM_FI_DEV_SM_CLOCK

Cette métrique représente la vitesse d'horloge moyenne sur l'ensemble des SM. Cette métrique est calculée sur une période spécifiée.

Utilisation prévue : suivez la vitesse d'horloge pour détecter la limitation et la corréler avec les performances des applications.

Étapes suivantes