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
oulatest
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
-
Vous devez utiliser l'option Par défaut ou La plus récente pour l'installation du pilote de GPU.
Accédez à la page Google Kubernetes Engine dans la console Google Cloud .
Cliquez sur le nom de votre cluster.
À côté de Cloud Monitoring, cliquez sur edit.
Sélectionnez
SYSTEM
etDCGM
.Cliquez sur "Enregistrer".
gcloud
Créez un pool de nœuds GPU.
Vous devez utiliser
default
oulatest
pour--gpu-driver-version
.Mettez à jour votre cluster :
gcloud container clusters update CLUSTER_NAME \ --location=COMPUTE_LOCATION \ --enable-managed-prometheus \ --monitoring=SYSTEM,DCGM
Remplacez les éléments suivants :
CLUSTER_NAME
: nom du cluster existant.COMPUTE_LOCATION
: emplacement Compute Engine du cluster.
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 GPUdevice
: 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 entre0
et7
. modelName
: nom du modèle de l'appareil GPU, par exempleNVIDIA 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 |
|
GAUGE , DOUBLE , 1
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 |
|
GAUGE , DOUBLE , 1
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 |
|
GAUGE , DOUBLE , 1
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 |
|
GAUGE , DOUBLE , 1
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 |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Utilisation du GPU (en %). |
DCGM_FI_DEV_MEM_COPY_UTIL DCGM_FI_DEV_MEM_COPY_UTIL/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Utilisation de la mémoire (en %). |
DCGM_FI_DEV_MEMORY_TEMP DCGM_FI_DEV_MEMORY_TEMP/gauge |
|
GAUGE , DOUBLE , 1
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 |
|
GAUGE , DOUBLE , 1
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 |
|
GAUGE , DOUBLE , 1
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 |
|
CUMULATIVE , DOUBLE , 1
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 |
|
GAUGE , DOUBLE , 1
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 |
|
GAUGE , DOUBLE , 1
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 |
|
GAUGE , DOUBLE , 1
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 |
|
GAUGE , DOUBLE , 1
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 |
|
GAUGE , DOUBLE , 1
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 |
|
GAUGE , DOUBLE , 1
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 |
|
GAUGE , DOUBLE , 1
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 |
|
GAUGE , DOUBLE , 1
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 |
|
GAUGE , DOUBLE , 1
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 |
|
GAUGE , DOUBLE , 1
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 |
|
GAUGE , DOUBLE , 1
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
- Découvrez comment afficher les métriques d'observabilité.