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 des métriques à Google Cloud Managed Service pour Prometheus.

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 le DCGM ?

Le gestionnaire GPU de centre de données (DCGM) NVIDIA est un ensemble d'outils NVIDIA qui vous permet de gérer et de surveiller les GPU NVIDIA. DCGM expose différentes structures et compteurs d'observabilité à l'aide de ce qu'il appelle 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 champ de 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'occupation du GPU surveillé et s'il est utilisé efficacement pour le traitement des tâches. Cela inclut les métriques pour le traitement de base, la mémoire, les E/S et l'utilisation de l'alimentation.
  • Les métriques de performances du GPU font référence à l'efficacité avec laquelle un GPU peut effectuer une tâche de calcul. Cela inclut les métriques de fréquence d'horloge et de température.
  • Les métriques d'E/S de GPU telles que 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 GPU de centre de données (DCGM) NVIDIA

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

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 leurs images de conteneur sous-jacents, ne sont destinées à fonctionner que sur les clusters GKE. N'utilisez pas les métriques DCGM gérées de manière autonome ni ne les exécutez en dehors de GKE.

Configurer la collecte des métriques DCGM

Vous pouvez autoriser GKE à collecter des métriques DCGM 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 Google Cloud Console.

    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 la page Terraform avec Google Cloud.

Utiliser les métriques DCGM

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

Vous pouvez afficher les métriques à l'aide du tableau de bord des métriques DCGM Grafana. Pour en savoir plus, consultez la section Interroger à l'aide de Grafana. Si vous rencontrez des erreurs, consultez la section 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 étiquettes sur la ressource surveillée prometheus_target, toutes les métriques DCGM collectées sur GKE sont associées aux étiquettes suivantes:

Étiquettes GPU :

  • UUID : UUID de l'appareil GPU
  • device : nom de l'appareil GPU.
  • gpu: numéro d'index sous forme d'entier de l'appareil GPU sur le nœud. Par exemple, si huit GPU sont connectés, cette valeur peut aller de 0 à 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 libre 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
Température actuelle 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 SM (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 envoie ou reçoit 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 de réception (lecture) NvLink 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
Débit des données de transmission (tx) 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 (TX) 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 pipeline de tenseur 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 de calcul ou de cœur

Ces métriques vous permettent d'identifier les appareils sous-utilisés et d'ajuster votre calcul ou votre allocation de GPU pour optimiser l'utilisation. Une utilisation faible signifie que vous payez peut-être plus de capacité GPU que nécessaire. Ces métriques peuvent vous aider à réduire les coûts en regroupant 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 indique le niveau d'occupation 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 sur 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 étaient réellement actifs (effectuant un travail), la valeur de la métrique résultante serait de 0,324. Cela peut être interprété approximativement comme (0,324 x 100) 32,4 % d'utilisation.

Utilisation prévue:fournit un aperçu de l'utilisation moyenne du GPU. Des valeurs d'utilisation élevées et constantes indiquent que le GPU peut être un goulot d'étranglement à l'origine de problèmes de performances 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 des cycles pour lesquels un pipeline de GPU donné est actif par rapport au nombre maximal de cycles soutenus écoulés.

Utilisation prévue:mesure l'efficacité avec laquelle les différents pipelines de calcul du GPU sont utilisés.

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), moyenne pour l'ensemble des SM. Par exemple, si le GPU dispose de 80 SM disponibles et que, pendant la période d'échantillonnage, 16 SM exécutaient un warp, la valeur sm_active résultante serait (16/80) 0,20, ce qui peut être interprété comme 20% des SM disponibles exécutant un warp.

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

Utilisation de la mémoire

L'utilisation principale de ces métriques consiste à détecter quand les appareils GPU ne disposent pas de suffisamment de mémoire pour les applications. Il peut être utile d'allouer plus de capacité de GPU à ces applications.

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 disponible et la mémoire utilisée, qui s'additionnent pour donner le total. Et aussi, la mémoire totale disponible.

Utilisation prévue:déterminez les tendances d'utilisation de la mémoire GPU. Cela vous permet de mettre en corrélation 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 au cours de la dernière période d'échantillonnage pendant laquelle la mémoire globale (appareil) a été lue ou écrite.

Utilisation prévue:détermine les modèles de transfert de données vers et depuis la mémoire GPU. Des valeurs élevées de cette métrique, combinées à des valeurs faibles des métriques d'utilisation des ressources de calcul, peuvent indiquer que le transfert de mémoire est le goulot d'étranglement des 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 du GPU envoie ou reçoit des données. Cela inclut les chargements et les stockages à partir de threads exécutés sur les SM, ainsi que les copies de mémoire vers et depuis la mémoire du GPU. Plus la valeur est élevée, plus le trafic de mémoire est élevé.

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 appareils GPU. Une façon d'utiliser ces métriques consiste à détecter quand une application surcharge l'interconnexion. En raison de l'instabilité inhérente de cette transmission, il peut être intéressant d'explorer des données à plus haute résolution (par exemple, une distribution) pour obtenir une image plus détaillée 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:suivi de 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 qui transmet les données et rx au GPU qui les reçoit.

Utilisation prévue:suivi de la charge sur le 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'alimentation

Les métriques suivantes fournissent des informations sur l'utilisation de l'alimentation du GPU, parfois cruciale pour les performances et l'efficacité de la charge 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:permet de suivre le moment où le GPU est sur le point de surchauffer, principalement pour le mettre en corrélation avec le limitation de la fréquence d'horloge. Vous pouvez également utiliser cette métrique pour identifier les GPU susceptibles de surchauffer pour une charge plus légère dans des 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 en tant que métrique d'occupation du GPU. Les GPU NVIDIA ajustent les horloges du moteur en fonction de la quantité de travail qu'ils effectuent. À mesure que la fréquence d'horloge (et donc l'utilisation) augmente, la consommation d'énergie augmente également.

Utilisation prévue:permet de suivre 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 d'énergie totale du GPU en millijoule (mJ) après le dernier rechargement du pilote. Le taux calculé sur cette métrique doit correspondre à la métrique de consommation d'énergie.

Utilisation prévue:permet de suivre 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é avec laquelle 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 à 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 un intervalle de temps spécifié.

Utilisation prévue:suivez la vitesse d'horloge pour détecter la limitation et la mettre en corrélation avec les performances de l'application.

Étape suivante