freedzhost.cloud

Docker avec accès à votre carte graphique

Chaque serveur de modèles de cette série tourne dans un conteneur : il s'installe proprement, se désinstalle proprement, et deux versions peuvent cohabiter. Deux pièces, aucune n'est de nous : Docker, et le Container Toolkit de NVIDIA.

fourni parVotre serveur de modèlesllama-server, dans un conteneurllama.cppDockerlance et isole les conteneursDockerNVIDIA Container Toolkit+ /etc/cdi/nvidia.yamlNVIDIAPilote NVIDIAsur l'hôtevotre distributionGPUla cartematérielpérimé après une mise à journvidia-ctk cdi generate
Cinq couches, un fournisseur chacune. Le fichier CDI décrit le pilote tel qu'il était : après une mise à jour du pilote, régénérez-le.

1. Docker

Le script d'installation de Docker installe la dernière version. Docker le réserve aux machines de test et de développement ; pour un serveur de production, utilisez la méthode par dépôt de leur documentation.

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

2. NVIDIA Container Toolkit (Ubuntu, Debian)

D'après le guide d'installation de NVIDIA :

curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey \
  | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list \
  | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' \
  | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

Autres distributions : suivez le même guide sur le site de NVIDIA.

3. Tester

sudo docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi

Le même tableau que sur l'hôte, affiché depuis l'intérieur d'un conteneur : vos conteneurs voient la carte.

Le piège après une mise à jour du pilote

Si vous utilisez CDI (le fichier /etc/cdi/nvidia.yaml), il décrit les bibliothèques du pilote telles qu'elles étaient au moment où il a été généré. Après une mise à jour du pilote, il peut pointer vers des fichiers qui n'existent plus, et plus aucun conteneur GPU ne démarre. Régénérez-le : sudo nvidia-ctk cdi generate --output=/etc/cdi/nvidia.yaml. Chez nous, il est désormais régénéré à chaque démarrage.