Ajout de la prise en charge des GPU NVIDIA dans Docker Model Runner
Activez l'accélération GPU pour Docker Model Runner avec le support NVIDIA CUDA
Docker Model Runner est l’outil officiel de Docker pour exécuter des modèles d’IA localement, mais l’activation de l’accélération GPU NVidia dans Docker Model Runner nécessite une configuration spécifique.
Contrairement aux commandes standard docker run, docker model run ne prend pas en charge les drapeaux --gpus ou -e, donc le support GPU doit être configuré au niveau du démon Docker et lors de l’installation du runner.
Si vous cherchez une solution alternative d’hébergement de LLM avec une configuration GPU plus simple, envisagez Ollama, qui dispose d’un support GPU intégré et d’une installation plus simple. Cependant, Docker Model Runner offre une meilleure intégration avec l’écosystème Docker et la distribution d’artefacts OCI.
Cette belle image a été générée par AI model Flux 1 dev.
Prérequis
Avant de configurer le support GPU, assurez-vous d’avoir :
- GPU NVIDIA avec des pilotes compatibles installés. Pour obtenir de l’aide pour choisir le bon GPU pour les charges de travail d’IA, consultez notre guide sur Comparaison des spécifications des GPU NVidia adaptés à l’IA.
- NVIDIA Container Toolkit installé (voir section NVIDIA RTX)
- Docker Model Runner installé (peut être réinstallé avec le support GPU)
Vérifiez que votre GPU est accessible :
nvidia-smi
Testez l’accès GPU de Docker :
docker run --rm --gpus all nvidia/cuda:12.2.2-base-ubi8 nvidia-smi
Pour plus de commandes Docker et d’options de configuration, consultez notre Docker Cheatsheet.
Étape 1 : Configurer le démon Docker pour le runtime NVIDIA
Docker Model Runner nécessite que le runtime NVIDIA soit défini comme runtime par défaut dans la configuration du démon Docker.
Trouver le chemin du runtime NVIDIA Container
Tout d’abord, localisez où nvidia-container-runtime est installé :
which nvidia-container-runtime
Cela affiche généralement /usr/bin/nvidia-container-runtime. Notez ce chemin pour l’étape suivante.
Configurer le démon Docker
Créez ou mettez à jour /etc/docker/daemon.json pour définir NVIDIA comme runtime par défaut :
sudo tee /etc/docker/daemon.json > /dev/null << 'EOF'
{
"default-runtime": "nvidia",
"runtimes": {
"nvidia": {
"path": "/usr/bin/nvidia-container-runtime",
"runtimeArgs": []
}
}
}
EOF
Important : Si which nvidia-container-runtime a retourné un autre chemin, mettez à jour la valeur "path" dans la configuration JSON en conséquence.
Redémarrer le service Docker
Appliquez la configuration en redémarrant Docker :
sudo systemctl restart docker
Vérifier la configuration
Confirmez que le runtime NVIDIA est configuré :
docker info | grep -i runtime
Vous devriez voir Default Runtime: nvidia dans la sortie.
Étape 2 : Installer Docker Model Runner avec support GPU
Docker Model Runner doit être installé ou réinstallé avec un support GPU explicite. Le conteneur runner lui-même doit être la version CUDA-enabled.
Arrêter le runner actuel (si en cours d’exécution)
Si Docker Model Runner est déjà installé, arrêtez-le d’abord :
docker model stop-runner
Installer/Réinstaller avec support CUDA
Installez ou réinstallez Docker Model Runner avec le support GPU CUDA :
docker model reinstall-runner --gpu cuda
Cette commande :
- Télécharge la version CUDA-enabled (
docker/model-runner:latest-cuda) au lieu de la version uniquement CPU - Configure le conteneur runner pour utiliser le runtime NVIDIA
- Active l’accélération GPU pour tous les modèles
Note : Si vous avez déjà installé Docker Model Runner sans support GPU, vous devez le réinstaller avec le drapeau --gpu cuda. Simplement configurer le démon Docker n’est pas suffisant — le conteneur runner lui-même doit être la version CUDA-enabled.
Backends GPU disponibles
Docker Model Runner prend en charge plusieurs backends GPU :
cuda- NVIDIA CUDA (le plus courant pour les GPU NVIDIA)rocm- AMD ROCm (pour les GPU AMD)musa- Moore Threads MUSAcann- Huawei CANNauto- Détection automatique (par défaut, peut ne pas fonctionner correctement)none- Uniquement CPU
Pour les GPU NVIDIA, utilisez toujours --gpu cuda explicitement.
Étape 3 : Vérifier l’accès GPU
Après l’installation, vérifiez que Docker Model Runner peut accéder à votre GPU.
Vérifier l’accès GPU du conteneur runner
Testez l’accès GPU à l’intérieur du conteneur Docker Model Runner :
docker exec docker-model-runner nvidia-smi
Cela devrait afficher vos informations GPU, confirmant que le conteneur a un accès GPU.
Vérifier l’état du runner
Vérifiez que Docker Model Runner est en cours d’exécution :
docker model status
Vous devriez voir que le runner est actif avec le support llama.cpp.
Étape 4 : Tester un modèle avec GPU
Exécutez un modèle et vérifiez qu’il utilise le GPU.
Exécuter un modèle
Démarrer une inférence de modèle :
docker model run ai/qwen3:14B-Q6_K "qui êtes-vous ?"
Vérifier l’utilisation du GPU dans les logs
Vérifiez les logs de Docker Model Runner pour la confirmation du GPU :
docker model logs | grep -i cuda
Vous devriez voir des messages indiquant l’utilisation du GPU :
using device CUDA0 (NVIDIA GeForce RTX 4080)- appareil GPU détectéoffloaded 41/41 layers to GPU- couches du modèle chargées sur le GPUCUDA0 model buffer size = 10946.13 MiB- allocation de mémoire GPUCUDA0 KV buffer size = 640.00 MiB- cache clé-valeur sur le GPUCUDA0 compute buffer size = 306.75 MiB- tampon de calcul sur le GPU
Surveillance de l’utilisation du GPU
Dans un autre terminal, surveillez en temps réel l’utilisation du GPU :
nvidia-smi -l 1
Vous devriez voir une augmentation de l’utilisation de la mémoire et de l’utilisation du GPU lorsque le modèle est en cours d’exécution.
Pour plus d’options avancées de surveillance du GPU et d’outils, consultez notre guide sur applications de surveillance du GPU sous Linux / Ubuntu.
Dépannage
Le modèle utilise toujours le CPU
Si le modèle utilise toujours le CPU :
-
Vérifiez la configuration du démon Docker :
docker info | grep -i runtimeDoit afficher
Default Runtime: nvidia -
Vérifiez le runtime du conteneur runner :
docker inspect docker-model-runner | grep -A 2 '"Runtime"'Doit afficher
"Runtime": "nvidia" -
Réinstallez le runner avec le support GPU :
docker model reinstall-runner --gpu cuda -
Vérifiez les logs pour les erreurs :
docker model logs | tail -50
Le GPU n’est pas détecté
Si le GPU n’est pas détecté :
-
Vérifiez que le NVIDIA Container Toolkit est installé :
dpkg -l | grep nvidia-container-toolkit -
Testez l’accès GPU avec Docker standard :
docker run --rm --gpus all nvidia/cuda:12.2.2-base-ubi8 nvidia-smiPour dépanner les problèmes Docker, consultez notre Docker Cheatsheet.
-
Vérifiez les pilotes NVIDIA :
nvidia-smi
Problèmes de performance
Si la performance du GPU est mauvaise :
-
Vérifiez l’utilisation du GPU :
nvidia-smiCherchez un pourcentage d’utilisation du GPU élevé
-
Vérifiez que les couches du modèle sont sur le GPU :
docker model logs | grep "offloaded.*layers to GPU"Toutes les couches doivent être transférées vers le GPU
-
Vérifiez les problèmes de mémoire :
nvidia-smiAssurez-vous que la mémoire du GPU n’est pas épuisée
Bonnes pratiques
-
Spécifiez toujours le backend GPU explicitement : Utilisez
--gpu cudaau lieu de--gpu autopour les GPU NVIDIA afin d’assurer une configuration correcte. -
Vérifiez la configuration après les modifications : Vérifiez toujours
docker info | grep -i runtimeaprès avoir modifié les paramètres du démon Docker. -
Surveillez l’utilisation du GPU : Utilisez
nvidia-smipour surveiller la mémoire et l’utilisation du GPU pendant l’inférence du modèle. Pour plus d’outils de surveillance avancés, consultez notre guide sur applications de surveillance du GPU sous Linux / Ubuntu. -
Vérifiez régulièrement les logs : Consultez
docker model logspour vous assurer que les modèles utilisent l’accélération GPU. -
Utilisez des tailles de modèles appropriées : Assurez-vous que votre GPU dispose de suffisamment de mémoire pour le modèle. Utilisez des modèles quantifiés (Q4, Q5, Q6, Q8) pour une meilleure efficacité de la mémoire GPU. Pour obtenir de l’aide pour choisir le bon GPU pour vos charges de travail d’IA, consultez notre guide sur Comparaison des spécifications des GPU NVidia adaptés à l’IA.
Liens utiles
- Docker Model Runner Cheatsheet
- Documentation officielle de Docker Model Runner
- Guide d’installation du NVIDIA Container Toolkit
- Comparaison Docker Model Runner vs Ollama
- Ollama Cheatsheet - Solution alternative d’hébergement de LLM avec support GPU intégré
- Docker Cheatsheet - Référence complète des commandes et configurations Docker
- Applications de surveillance du GPU sous Linux / Ubuntu - Liste et comparaison des outils de surveillance des GPU NVIDIA
- Comparaison des spécifications des GPU NVidia adaptés à l’IA - Guide pour choisir le bon GPU pour les charges de travail d’IA