Gestionnaire de GPU NVIDIA Data Center (DCGM)

L'intégration du gestionnaire de GPU NVIDIA Data Center collecte des métriques clés avancées de GPU à partir de DCGM, y compris l'utilisation de blocs SM (Streaming Multiprocessor) et d'occupation du réseau, le taux de trafic PCIe et le taux de trafic NVLink. Pour plus d'informations sur l'objectif et l'interprétation de ces métriques, consultez la page Profiler des métriques dans la présentation des fonctionnalités de DCGM.

Pour en savoir plus sur le gestionnaire de GPU du centre de données NVIDIA, consultez la documentation DCGM. Cette intégration est compatible avec les versions 3.1 et ultérieures de DCGM.

L'Agent Ops collecte les métriques DCGM à l'aide de la bibliothèque cliente go-dcgm de NVIDIA.

Ces métriques ne sont disponibles que pour les systèmes Linux. Les métriques ne sont pas collectées à partir des modèles de GPU NVIDIA K80, P100 et P4.

Prérequis

Pour collecter des métriques DCGM, vous devez procéder comme suit :

Installer DCGM et vérifier l'installation

Vous devez installer la version 3.1 ou ultérieure de DCGM, et vous assurer qu'elle s'exécute en tant que service privilégié. Pour installer DCGM, consultez la section Installation de la documentation DCGM.

Pour vérifier que DCGM fonctionne correctement, procédez comme suit :

  1. Vérifiez l'état du service DCGM en exécutant la commande suivante :

    sudo service nvidia-dcgm status
    

    Si le service est en cours d'exécution, le service nvidia-dcgm est répertorié en tant que active (running). Le résultat se présente comme suit :

    ● nvidia-dcgm.service - NVIDIA DCGM service
    Loaded: loaded (/usr/lib/systemd/system/nvidia-dcgm.service; disabled; vendor preset: enabled)
    Active: active (running) since Sat 2023-01-07 15:24:29 UTC; 3s ago
    Main PID: 24388 (nv-hostengine)
    Tasks: 7 (limit: 14745)
    CGroup: /system.slice/nvidia-dcgm.service
           └─24388 /usr/bin/nv-hostengine -n --service-account nvidia-dcgm
    
  2. Vérifiez que les appareils GPU sont trouvés en exécutant la commande suivante :

    dcgmi discovery --list
    

    Si des appareils sont détectés, le résultat se présente comme suit :

    1 GPU found.
    +--------+----------------------------------------------------------------------+
    | GPU ID | Device Information                                                   |
    +--------+----------------------------------------------------------------------+
    | 0      | Name: NVIDIA A100-SXM4-40GB                                          |
    |        | PCI Bus ID: 00000000:00:04.0                                         |
    |        | Device UUID: GPU-a2d9f5c7-87d3-7d57-3277-e091ad1ba957                |
    +--------+----------------------------------------------------------------------+
    

Configurer l'Agent Ops pour DCGM

En suivant le guide de configuration de l'agent Ops, ajoutez les éléments requis pour collecter la télémétrie de votre service DCGM, puis redémarrez l'agent.

Exemple de configuration

Les commandes suivantes créent la configuration permettant de collecter et d'ingérer la télémétrie pour DCGM et de redémarrer l'Agent Ops :

# Configures Ops Agent to collect telemetry from the app and restart Ops Agent.
set -e

# Create a back up of the existing file so existing configurations are not lost.
sudo cp /etc/google-cloud-ops-agent/config.yaml /etc/google-cloud-ops-agent/config.yaml.bak

# Configure the Ops Agent.
sudo tee /etc/google-cloud-ops-agent/config.yaml > /dev/null << EOF
metrics:
  receivers:
    dcgm:
      type: dcgm
  service:
    pipelines:
      dcgm:
        receivers:
          - dcgm
EOF

sudo systemctl restart google-cloud-ops-agent

Après avoir exécuté ces commandes, vous pouvez vérifier que l'agent a redémarré. Exécutez la commande suivante et vérifiez que les composants du sous-agent "Metrics Agent" (Agent de métriques) et "Logging Agent" (Agent Logging) sont répertoriés comme "active" (en cours d'exécution) :

sudo systemctl status google-cloud-ops-agent"*"

Si vous utilisez un compte de service personnalisé au lieu du compte de service Compute Engine par défaut, ou si vous disposez d'une très ancienne VM Compute Engine, vous devrez peut-êtreautoriser l'Agent Ops.

Configurer la collecte de métriques

Pour ingérer des métriques à partir de DGCM, vous devez créer un récepteur pour les métriques produites par DGCM, puis créer un pipeline pour le nouveau récepteur.

Ce récepteur ne permet pas d'utiliser plusieurs instances dans la configuration, par exemple pour surveiller plusieurs points de terminaison. Toutes ces instances écrivent dans la même série temporelle, et Cloud Monitoring n'a aucun moyen de les distinguer.

Pour configurer un récepteur pour vos métriques dcgm, spécifiez les champs suivants :

Champ Par défaut Description
collection_interval 60s Une valeur time duration, telle que 30s ou 5m.
endpoint localhost:5555 Adresse du service DCGM, au format host:port.
type Cette valeur doit être dcgm.

Métriques surveillées

Le tableau suivant fournit la liste des métriques que l'Agent Ops collecte à partir du service DCGM. Toutes les métriques ne sont pas disponibles pour tous les modèles de GPU. Les métriques ne sont pas collectées à partir des modèles de GPU NVIDIA K80, P100 et P4.

Type de métrique
Genre, type
Ressources surveillées
Étiquettes
Modèles de GPU compatibles
workload.googleapis.com/dcgm.gpu.profiling.dram_utilization
GAUGEDOUBLE
gce_instance
gpu_number
model
uuid
Tout, sauf K80, P100 et P4
GAUGEINT64
gce_instance
direction
gpu_number
model
uuid
Tout, sauf K80, P100 et P4
workload.googleapis.com/dcgm.gpu.profiling.pcie_traffic_rate
GAUGEINT64
gce_instance
direction
gpu_number
model
uuid
Tout, sauf K80, P100 et P4
workload.googleapis.com/dcgm.gpu.profiling.pipe_utilization
GAUGEDOUBLE
gce_instance
gpu_number
model
pipe
uuid
Tout, sauf K80, P100 et P4. Pour L4, la valeur fp64 de pipe n'est pas accepté.
workload.googleapis.com/dcgm.gpu.profiling.sm_occupancy
GAUGEDOUBLE
gce_instance
gpu_number
model
uuid
Tout, sauf K80, P100 et P4
workload.googleapis.com/dcgm.gpu.profiling.sm_utilization
GAUGEDOUBLE
gce_instance
gpu_number
model
uuid
Tout, sauf K80, P100 et P4

En outre, la configuration intégrée de l'Agent Ops collecte également les métriques agent.googleapis.com/gpu, qui sont signalées par la bibliothèque de gestion NVIDIA (NVML). Vous n'avez pas besoin de configuration supplémentaire dans l'agent Ops pour collecter ces métriques, mais vous devez créer votre VM avec des GPU associés et installer le pilote de GPU. Pour en savoir plus, consultez la page À propos des métriques gpu.

Vérifier la configuration

Cette section explique comment vérifier que vous avez bien configuré le récepteur NVIDIA DCGM. La collecte de la télémétrie par l'agent Ops peut prendre une ou deux minutes.

Pour vérifier que les métriques NVIDIA DCGM sont envoyées à Cloud Monitoring, procédez comme suit :

  1. Dans le panneau de navigation de la console Google Cloud, sélectionnez Monitoring, puis  Explorateur de métriques :

    Accéder à l'explorateur de métriques

  2. Dans la barre d'outils du volet de création de requêtes, sélectionnez le bouton nommé  MQL ou  PromQL.
  3. Vérifiez que MQL est sélectionné dans le bouton d'activation Langage. Le bouton de langage se trouve dans la barre d'outils qui vous permet de mettre en forme votre requête.
  4. Saisissez la requête suivante dans l'éditeur, puis cliquez sur Exécuter la requête :
    fetch gce_instance
    | metric 'workload.googleapis.com/dcgm.gpu.profiling.sm_utilization'
    | every 1m
    

Afficher le tableau de bord

Pour afficher vos métriques NVIDIA DCGM, vous devez configurer un graphique ou un tableau de bord. L'intégration NVIDIA DCGM inclut un ou plusieurs tableaux de bord. Tous les tableaux de bord sont automatiquement installés après la configuration de l'intégration et que l'agent Ops a commencé à collecter des données de métriques.

Vous pouvez également afficher des aperçus statiques de tableaux de bord sans installer l'intégration.

Pour afficher un tableau de bord installé, procédez comme suit :

  1. Dans le panneau de navigation de la console Google Cloud, sélectionnez Monitoring, puis  Tableaux de bord :

    Accéder à la page Tableaux de bord

  2. Sélectionnez l'onglet Liste des tableaux de bord, puis choisissez la catégorie Intégrations.
  3. Cliquez sur le nom du tableau de bord que vous souhaitez afficher.

Si vous avez configuré une intégration, mais que le tableau de bord n'a pas été installé, vérifiez que l'agent Ops est en cours d'exécution. Lorsqu'un graphique ne contient aucune donnée de métrique, l'installation du tableau de bord échoue. Une fois que l'agent Ops a commencé à collecter des métriques, le tableau de bord est installé.

Pour afficher un aperçu statique du tableau de bord, procédez comme suit :

  1. Dans le panneau de navigation de la console Google Cloud, sélectionnez Monitoring, puis  Intégrations :

    Accéder à la page Intégrations

  2. Cliquez sur le filtre de plate-forme de déploiement Compute Engine.
  3. Recherchez l'entrée de NVIDIA DCGM et cliquez sur Afficher les détails.
  4. Cliquez sur l'onglet Tableaux de bord pour afficher un aperçu statique. Si le tableau de bord est installé, vous pouvez y accéder en cliquant sur Afficher le tableau de bord.

Pour en savoir plus sur les tableaux de bord dans Cloud Monitoring, consultez la page Tableaux de bord et graphiques.

Pour en savoir plus sur l'utilisation de la page Intégrations, consultez la page Gérer les intégrations.

Limites de DCGM et profilage de pause

L'utilisation simultanée de DCGM peut entrer en conflit avec l'utilisation d'autres outils de développement NVIDIA, tels que Nsight Systems ou Nsight Compute. Cette limitation s'applique aux GPU NVIDIA A100 et antérieurs. Pour en savoir plus, consultez la section Profiler le taux d'échantillonnage de la fonctionnalité DCGM.

Lorsque vous devez utiliser des outils tels que les systèmes Nsight sans interruption importante, vous pouvez suspendre ou reprendre temporairement la collecte des métriques à l'aide des commandes suivantes :

dcgmi profile --pause
dcgmi profile --resume

Lorsque le profilage est mis en pause, aucune des métriques DCGM collectées par l'agent Ops n'est émise par la VM.

Étapes suivantes

Pour accéder à un tutoriel pas à pas expliquant comment utiliser Ansible pour installer l'agent Ops, configurer une application tierce et installer un exemple de tableau de bord, consultez la vidéo Install the Ops Agent to troubleshoot third-party applications (Installer l'agent Ops pour résoudre les problèmes liés à des applications tierces).