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:
- 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 de 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
. - 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 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
-
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 Google Cloud Console.
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 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 GPUdevice
: 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 de0
à7
. 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 libre 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 |
Température actuelle 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 SM (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 envoie ou reçoit 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 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 |
|
GAUGE , DOUBLE , 1
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 |
|
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 (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 |
|
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 pipeline de tenseur 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 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
- Découvrez comment afficher les métriques d'observabilité.