NVIDIA GPUs sur Docker
Ajouter un GPU à Docker m'a permis de jouer avec Jellyfin et LLaMA sur un serveur Docker
Vous pouvez retrouver toutes les informations sur la page dédié à Kubernetes et sur le site officiel NVIDIA
Configuration NVIDIA sur Ubuntu
Vérifier la présence de la carte GPU
Utiliser lspci pour faire apparaitre les informations PCI sur votre système et ainsi vérifier la présence de votre carte GPU.
# list all PCI devices with the text NVIDIA
sudo lspci | grep NVIDIAVous devriez voir:
sudo lspci | grep NVIDIA
01:00.0 VGA compatible controller: NVIDIA Corporation TU102 [GeForce RTX 2080 Ti Rev. A] (rev a1)
01:00.1 Audio device: NVIDIA Corporation TU102 High Definition Audio Controller (rev a1)
01:00.2 USB controller: NVIDIA Corporation TU102 USB 3.1 Host Controller (rev a1)
01:00.3 Serial bus controller: NVIDIA Corporation TU102 USB Type-C UCSI Controller (rev a1)Vérification des drivers GPU NVIDIA
Utiliser la recherche sur le site de téléchargement des drivers NVIDIA pour trouver le dernier recommandé pour votre carte.
Par exemple pour ma 2080TI
Version
550.78
Release Date
2024.4.25
Operating System
Linux 64-bit
Language
English (US)
File Size
292.67 MB
Ce qui veut dire que l'on doit prendre la version 550+
Installation des drivers GPU
Il existe plusieurs methode pour installer les drivers sur mon serveur Ubuntu 24.04 LTS:
Officiel Ubuntu NVIDIA drivers via
ubuntu-drivers install(lien)Officiel NVIDIA driver via
.run file(lien)Non officiel version driver NVIDIA via
ppa:graphics-drivers/ppa(lien)
Dans mon cas pour notre installation nous utiliserons l'option (ppa)
Ajouter le repo PPA et installer la version de driver trouvé sur le site officiel.
Tester la version du driver installé avec la commande nvidia-smi
Dans mon cas j'ai comme retour 550.78
Pour voir la liste des packages installé utilisé dpkg -l avec "nvidia" ou "550"
Vérifier les modules kernel installé en utilisant lsmod qui permet de lister ce qui se trouve dans /proc/modules
Si tout semble bon vous devriez avoir:
Vérifiez le fichier de version du pilote du kernel:
Vérifiez le fichier de périphérique NVIDIA trouvé:
Votre serveur maintenant a bien un GPU NVIDIA d'installé et fonctionnel si le retour de la commande est:
TIPS
Pour éviter un changement ou une mise à jour non planifié, nous devons appliquer un hold sur les packages
Ce qui donne:
Avant une mise à jour planifié, il faut penser à retirer le tag hold sur les packages en faisant
Installation du Container Toolkit NVIDIA
Vous pouvez trouver le guide d'installation officiel de NVIDIA
Mon environnement Kubernetes étant sur containerd, nous avons besoin de mettre à jour la configuration runtime classes.
Configuration du Container Toolkit NVIDIA
Configurer le container runtme en utilisant la commande nvidia-ctk
La commande nvidia-ctk modifie le fichier /etc/docker/daemon.json sur le serveur. Le fichier mis à jour permet à Docker d'utiliser le container Runtime de NVIDIA.
Si vous ouvrez le fichier vous devriez avoir ce qui suit:
Relancer Docker pour la prise en compte du fichier mis à jour.
Tester votre installation du container
Vous pouvez tester votre installation en exécutant un container qui fait appel au GPU NVIDIA
Exécuter un container CUDA
vous devez avoir ce résultat:

Félicitation 🎉🎉 vous avez un GPU de configuré sur votre Docker
Liens utiles
Mis à jour