Votez !

Mémo pour installer et tester l’utilisation du GPU NVidia dans un container Docker.

Inspiré de : https://marmelab.com/blog/2018/03/21/using-nvidia-gpu-within-docker-container.html

Environnement

  • Ubuntu 18.04 LTS – 16Go – Intel i5-4690k
  • NVidia GeForce GTX 960 4Go

Les commandes sont exécutées avec l’utilisateur root :

Installation

Driver NVidia + Cuda

Source : https://docs.nvidia.com/cuda/cuda-quick-start-guide/index.html#ubuntu-x86_64

Récupérer la dernière version du fichier cuda-repo-ubuntu1804_xx.x.xxx-x_amd64.deb à cette URL : https://developer.download.nvidia.com/compute/cuda/repos/

Avec l’utilisateur root :

Il faut impérativement rebooter le PC pour activer et utiliser le service nvidia-persistenced.

Après reboot, vérifier que le service est bien en fonction : « Active: active (running) »

Résultat :

Sous l’utilisateur normal avec lequel on utilise Docker.
Ajouter dans le fichier ~/.bashrc avec les lignes suivantes :

Puis forcer la prise en compte :

Docker NVidia

Source : https://github.com/NVIDIA/nvidia-docker

Ajouter le dépôt avec l’utilisateur root :

Installer nvidia-docker2 :

Tester

Avec l’utilisateur normal (pas root).

Résultat :

Définir nvidia comme runtime par défaut

Avec l’utilisateur root, éditer le fichier /etc/docker/daemon.json et ajouter le ligne « default-runtime » :

Ne pas oublier la virgule sur la ligne précédente.

Relancer le service docker :

Avec l’utilisateur normal, vérifier si Docker utilise bien le runtime nvidia.
Voir les lignes « Runtimes » et « Default Runtime ».

Résultat :

Du coup, plus besoin d’utiliser l’argument « –runtime=nvidia »:

Ni dans le fichier docker-compose.yml comme spécifié dans la doc https://devblogs.nvidia.com/gpu-containers-runtime/