• Drapeau FranceFrançais(FR)
  • UK FlagEnglish(EN)
Retour au blogMLOps

Administrer un GPU NVIDIA sous Linux

Guide des commandes NVIDIA sous Linux pour DevOps : diagnostic GPU, supervision des ressources, analyse des processus et dépannage système.

Administrer un GPU NVIDIA sous Linux

Lors de la construction de ma première plateforme privée d’inférence LLM sur Kubernetes équipée d’une NVIDIA RTX 3090, j’ai découvert qu’administrer un GPU nécessite des réflexes différents de ceux utilisés pour administrer un serveur classique.

Lorsqu’un GPU NVIDIA ne fonctionne pas comme prévu, les premières questions sont généralement les mêmes:

  • le système Linux détecte-t-il correctement le matériel ?
  • le pilote NVIDIA est-il chargé ?
  • le GPU répond-il correctement ?
  • quelle application utilise actuellement les ressources ?
  • existe-t-il des erreurs remontées par le noyau Linux ?

L’objectif de cet article n’est pas de présenter toutes les commandes NVIDIA existantes, mais de partager les commandes essentielles que j’utilise pour vérifier, superviser et diagnostiquer un GPU NVIDIA sous Linux.

Prérequis

Pour utiliser les commandes présentées dans cet article, il faut :

  • une machine Linux ;
  • un ou plusieurs GPU NVIDIA installés ;
  • un pilote NVIDIA installé pour utiliser nvidia-smi ;
  • un accès terminal.

Les résultats peuvent varier selon: le modèle du GPU, la version du pilote NVIDIA, la distribution Linux utilisée et la configuration matérielle du serveur.


1. Vérifier que Linux détecte le GPU

Avant même de vérifier le pilote NVIDIA, la première étape consiste à vérifier que le système d’exploitation voit bien le matériel.

lspci -nn | grep -i nvidia

Les GPU NVIDIA utilisent généralement l’interface PCI Express (PCIe) pour communiquer avec le système. L’option -nn affiche également les identifiants PCI du matériel.

Cette commande est particulièrement utile :

  • après l’installation d’une nouvelle carte GPU ;
  • après une intervention matérielle ;
  • lorsqu’un GPU n’est plus visible ;
  • lorsqu’une application ne détecte plus le GPU.

2. Vérifier l’état général du GPU

nvidia-smi

nvidia-smi est l’outil principal fourni par NVIDIA pour surveiller et diagnostiquer les GPU. C’est généralement la première commande exécutée lorsqu’un problème apparaît. Elle fournit une vue globale du GPU :

  • le modèle du GPU ;
  • la version du pilote NVIDIA ;
  • la température ;
  • l’utilisation du GPU ;
  • la mémoire utilisée ;
  • la consommation électrique ;
  • les processus utilisant le GPU.

3. Lister les GPU disponibles

Sur un serveur équipé de plusieurs GPU, il est souvent utile d’obtenir rapidement la liste des cartes visibles.

nvidia-smi -L

Cette commande affiche une liste simplifiée des GPU visibles par le pilote NVIDIA. Chaque GPU possède :

  • un identifiant local ;
  • un UUID (Universally Unique Identifier).

L’UUID permet d’identifier précisément une carte, notamment dans les environnements multi-GPU.

C’est une commande particulièrement utile sur :

  • les serveurs multi-GPU ;
  • les environnements virtualisés ;
  • les opérations d’inventaire.

4. Obtenir les informations détaillées du GPU

Lorsque nvidia-smi ne suffit pas, il est possible d’obtenir un rapport beaucoup plus complet.

nvidia-smi -q

Cette commande affiche un rapport détaillé sur le GPU. L’option -q (query mode) permet d’afficher les informations détaillées disponibles. On retrouve notamment :

  • caractéristiques matérielles ;
  • mémoire ;
  • puissance ;
  • température ;
  • informations PCIe ;
  • état du pilote ;
  • événements détectés.

Pour afficher par exemple, les informations uniquement sur la mémoire :

nvidia-smi -q -d MEMORY

5. Surveiller le GPU en temps réel

Une commande ponctuelle donne uniquement une photographie du GPU à un instant donné.

nvidia-smi -l 1

L’option -l (loop) et permet d’activer le mode de rafraîchissement automatique. La commande actualise automatiquement l’affichage toutes les secondes. Elle permet de suivre :

  • l’évolution de l’utilisation GPU ;
  • la consommation mémoire ;
  • les variations de température ;
  • les changements de consommation électrique.

6. Extraire uniquement les métriques utiles

La sortie complète de nvidia-smi contient beaucoup d’informations. Pour automatiser une collecte ou alimenter un script, il est souvent préférable de sélectionner uniquement les métriques nécessaires.

nvidia-smi \
--query-gpu=name,utilization.gpu,memory.used,memory.total,temperature.gpu,power.draw \
--format=csv

Cette commande retourne une sortie structurée contenant :

  • nom du GPU ;
  • utilisation GPU ;
  • mémoire utilisée ;
  • mémoire totale ;
  • température ;
  • consommation électrique.

7. Observer rapidement l’activité GPU avec dmon

Cette commande est particulièrement pratique sur des serveurs possédant plusieurs GPU lorsqu’on souhaite obtenir une vue rapide de l’activité.

nvidia-smi dmon

dmon (Device Monitor) fournit un affichage compact des métriques GPU. Il permet de suivre rapidement :

  • utilisation GPU ;
  • consommation mémoire ;
  • puissance ;
  • température.

8. Identifier les processus utilisant le GPU

nvidia-smi pmon

pmon (Process Monitor) permet de suivre l’activité des processus utilisant les GPU. Il permet d’identifier :

  • le PID du processus ;
  • le GPU utilisé ;
  • l’activité associée.

Selon la version du pilote NVIDIA, certaines fonctionnalités peuvent varier.

9. Vérifier les modules NVIDIA chargés

Un GPU peut être présent physiquement mais ne pas être exploitable si les modules nécessaires ne sont pas correctement chargés.

lsmod | grep nvidia

lsmod affiche les modules actuellement chargés dans le noyau Linux. Un module noyau est un composant logiciel chargé dynamiquement par Linux pour ajouter une fonctionnalité. Pour NVIDIA, on peut retrouver notamment :

  • nvidia
  • nvidia_uvm
  • nvidia_drm
  • nvidia_modeset

Cette commande est utile après une mise à jour du noyau ou une mise à jour du pilote ou lorsque nvidia-smi retourne une erreur.

10. Analyser les erreurs NVIDIA dans les journaux Linux

Lorsque le problème n’est pas évident, les journaux système deviennent indispensables.

journalctl -k -b | grep -iE "nvidia|nvrm|xid"

Options utilisées :

  • -k : afficher uniquement les messages du noyau Linux;
  • -b : limiter au démarrage actuel.

Cette commande recherche les événements liés au pilote NVIDIA. Elle peut révéler :

  • erreurs du pilote ;
  • problèmes de chargement ;
  • réinitialisations GPU ;
  • événements matériels.

Comprendre les erreurs Xid

Les événements Xid sont générés par le pilote NVIDIA lorsqu’une erreur liée au GPU est détectée. Elles peuvent être liées à:

  • un problème logiciel ;
  • une communication incorrecte ;
  • un comportement matériel inhabituel.

Elles doivent toujours être analysées avec le contexte du système.


Conclusion

Administrer un GPU NVIDIA sous Linux ne nécessite pas de connaître des dizaines d’outils différents. Avec quelques commandes essentielles, il est possible de :

  • vérifier que Linux détecte correctement le matériel ;
  • valider le fonctionnement du pilote NVIDIA ;
  • surveiller l’utilisation des ressources ;
  • identifier les processus actifs ;
  • analyser les erreurs système.

nvidia-smi reste l’outil central, mais il devient réellement efficace lorsqu’il est associé aux outils Linux classiques comme lspci, lsmod et journalctl.

Ces commandes constituent une base solide pour toute personne amenée à maintenir des serveurs ou des stations Linux équipés de GPU NVIDIA.

Grâce Amia
Grâce AmiaIngenieure Cloud & Plateforme IA