Comment surveiller et gérer les GPU NVIDIA sur Ubuntu avec nvidia-smi

1. Introduction

Lorsque vous utilisez un GPU sous Ubuntu, il est essentiel de surveiller son état avec précision. Cela revêt une importance particulière dans les charges de travail de deep learning ou de rendu graphique, où la compréhension de l’utilisation du GPU et des versions des pilotes est indispensable. Dans cet article, nous expliquons comment utiliser nvidia‑smi, l’outil de gestion des GPU NVIDIA, et présentons des méthodes pour vérifier les informations du GPU sous Ubuntu.

2. Vérification des informations du GPU avec nvidia‑smi

nvidia‑smi est un outil en ligne de commande qui vous permet de surveiller l’utilisation, la consommation de mémoire et d’autres informations détaillées sur les GPU NVIDIA. Il est particulièrement utile pour vérifier l’activité du GPU en temps réel ou récupérer des métriques d’utilisation détaillées.

Utilisation de base

Vous pouvez utiliser la commande suivante pour surveiller l’utilisation du GPU et la consommation de mémoire en temps réel :

nvidia-smi --query-gpu=timestamp,name,utilization.gpu,utilization.memory,memory.used,memory.free --format=csv -l 1

Cette commande récupère des informations détaillées incluant l’utilisation du GPU, la consommation de mémoire et la mémoire disponible. L’option -l vous permet de définir l’intervalle de rafraîchissement en secondes.

Format d’affichage et sortie vers un fichier

Par défaut, les résultats sont affichés sous forme de tableau, mais vous pouvez les exporter au format CSV pour faciliter le traitement. Si vous souhaitez enregistrer les informations dans un fichier, indiquez la destination avec l’option -f.

nvidia-smi --query-gpu=timestamp,name,utilization.gpu,utilization.memory,memory.used,memory.free --format=csv -l 1 -f /path/to/output.csv

Cela vous permet de sauvegarder les journaux d’utilisation du GPU et de les analyser ultérieurement.

3. Récupération des informations de processus avec nvidia‑smi

nvidia‑smi vous permet également d’obtenir des informations sur les processus qui utilisent actuellement le GPU. Cela aide à identifier la quantité de ressources GPU consommées par chaque processus.

Obtention des informations de processus

Utilisez la commande suivante pour afficher le PID et la consommation de mémoire des processus qui utilisent le GPU :

nvidia-smi --query-compute-apps=pid,process_name,used_memory --format=csv,noheader

Cette commande renvoie une liste des processus GPU actifs et indique la consommation de mémoire de chaque processus.

Sous-commande pmon de nvidia‑smi

L’outil nvidia‑smi comprend aussi une sous‑commande pmon, qui fournit une surveillance détaillée des processus GPU.

nvidia-smi pmon --delay 10 -s u -o DT

Cela affiche les informations des processus GPU à des intervalles spécifiés. L’option --delay définit l’intervalle de rafraîchissement en secondes, et vous pouvez choisir quelles informations afficher.

4. Installation et vérification des pilotes NVIDIA

Pour utiliser un GPU NVIDIA sous Ubuntu, le pilote NVIDIA approprié doit être installé. Voici les étapes d’installation et de vérification.

Installation du pilote

Installez d’abord le pilote NVIDIA adapté à votre système avec la commande suivante :

sudo apt install nvidia-driver-510

Une fois l’installation terminée, redémarrez votre système.

Vérification de l’installation

Après le redémarrage, exécutez la commande suivante pour confirmer que le pilote est correctement installé :

nvidia-smi

Si la version du pilote et la version CUDA s’affichent, l’installation a réussi.

5. Vérification du fonctionnement du GPU avec TensorFlow

Vous pouvez également vérifier la fonctionnalité du GPU en le testant avec TensorFlow, un framework d’apprentissage automatique.

Installation d’Anaconda

Installez d’abord Anaconda et configurez votre environnement :

bash ./Anaconda3-2022.05-Linux-x86_64.sh
conda update -n base conda
conda update anaconda
conda update -y --all
conda install tensorflow-gpu==2.4.1

Vérification de la reconnaissance du GPU par TensorFlow

Ensuite, vérifiez si TensorFlow reconnaît le GPU :

from tensorflow.python.client import device_lib
device_lib.list_local_devices()

Si le dispositif GPU apparaît dans la liste, TensorFlow détecte correctement le GPU.

6. Surveillance et journalisation du GPU

nvidia‑smi permet la surveillance du GPU en temps réel ainsi que l’enregistrement de journaux. Cela aide à suivre l’utilisation du GPU sur la durée et à optimiser les performances.

Surveillance périodique

Pour configurer la surveillance périodique, utilisez l’option -l pour spécifier l’intervalle de mise à jour, et éventuellement consignez les données dans un fichier :

nvidia-smi --query-gpu=timestamp,name,utilization.gpu,utilization.memory,memory.used,memory.free --format=csv -l 1 -f /var/log/gpu.log

Contrôle programmable via les liaisons Python

nvidia-smi fournit des liaisons Python (nvidia-ml-py) qui vous permettent de récupérer les informations du GPU de manière programmatique. Cela permet une surveillance et un contrôle plus personnalisés depuis des scripts Python.

7. Conclusion

nvidia-smi est un outil puissant pour vérifier et gérer l’utilisation des GPU NVIDIA sous Ubuntu. Cet article a expliqué l’utilisation de base, la surveillance des processus, l’installation du pilote et la vérification du GPU TensorFlow. Utilisez ces techniques pour maximiser les performances du GPU et optimiser votre système.

侍エンジニア塾