Reconnaissance GPU avec docker utilisant WSL2 (août 2020)

introduction

C'est la nième décoction, mais c'est un article qui a été rendu GPU reconnu par Docker avec WSL2 lorsque j'ai acheté un PC avec Windows OS. Il y avait une différence avec l'article technique existant, j'ai donc créé un nouvel article.

Sommaire

Tout d'abord, j'écrirai un résumé. Quant à quoi faire

est.

Les pièces qui diffèrent des articles existants sont ① et ⑥, donc si les choses tournent mal, veuillez ne traiter que ces pièces.

Étape 1: mettre à jour Windows

Comment faire en sorte que WSL reconnaisse le GPU Notes de version du noyau du sous-système Windows pour Linux Il est décrit dans

image.png

Vous devez mettre à jour vers la version de. De nombreux articles techniques disent que Windows Insider Preview Fast devrait être sélectionné et mis à jour, mais sachez que le 15 juin 2020, le système de canaux de renouvellement de Windows Insider, Dev / Beta / Release Preview. S'il vous plaît.

Il est écrit dans cet article [Utilisez le GPU avec WSL 2 (exécutez la version GPU CUDA, PyTorch et TensorFlow 2.2 sur WSL 2 Ubuntu. N'utilisez pas Docker, utilisez Windows 10 Insider Program, Ubuntu sur WSL 2)](https: // www .kkaneko.jp / tools / wsl / wsl_tensorflow2.html) Mise à jour par méthode, mais pas rapide image.png Sélectionnez un canal de développement et mettez à jour. Je pense que cela prendra du temps.

De plus, de nombreux articles techniques décrivent comment mettre à jour après l'installation de WSL, mais depuis le 29 août 2020, les commandes wsl --update et wsl.exe --update existent. Sinon, une erreur se produira lors de l'exécution, veuillez donc mettre à jour Windows lui-même.

↓ Les commandes wsl --update et wsl.exe --update décrites dans ces articles n'existent pas, vous devez donc d'abord mettre à jour l'unité principale. Il semble que vous puissiez enfin exécuter WSL2 + docker + GPU, donc je vais l'essayer [Utilisez le GPU avec WSL 2 (exécutez la version GPU CUDA, PyTorch et TensorFlow 2.2 sur WSL 2 Ubuntu. N'utilisez pas Docker, utilisez Windows 10 Insider Program, Ubuntu sur WSL 2)](https: // www .kkaneko.jp / tools / wsl / wsl_tensorflow2.html)

Étape ② ~ Étape ⑥

J'ai fait référence à cet article. En attente de CUDA sur WSL2 Cependant, j'ai installé CudaToolKit sur Ubuntu de WSL2 à l'étape ⑥, mais j'ai entré la commande sudo apt-get install -y cuda-toolkit-11-0, mais il a été dit qu'elle n'existe pas (août 2020). Depuis le 29 mars), j'ai pu l'installer en faisant sudo apt-get install -y cuda-toolkit. Je me méfie également ici, donc si cela ne fonctionne pas, veuillez vous référer à d'autres articles techniques.

L'article technique de Waiting CUDA on WSL2 est essentiellement l'article officiel de NVIDIA [CUDA on WSL User Guide](https: // docs) Il s'agit d'une traduction japonaise de .nvidia.com / cuda / wsl-user-guide / index.html), donc si l'article de référence ne fonctionne pas, veuillez également vous référer au responsable.

Étape ⑦: Confirmer la reconnaissance du GPU

Vous pouvez le vérifier sur Ubuntu avec cette commande. docker run --gpus all nvcr.io/nvidia/k8s/cuda-sample:nbody nbody -gpu -benchmark image.png

Vous pouvez voir que GeForce est reconnu.

Confirmer la reconnaissance du GPU avec TensorFlow

Les détails de Docker ne sont pas décrits ici, mais dès que vous avez terminé jusqu'à ⑦, vous pouvez exécuter TensorFlow dans l'environnement GPU, je décrirai donc également comment le faire.

Tout d'abord, créez un répertoire sur Ubuntu pour l'application.

mkdir test
cd test

Par conséquent, utilisez la balise latest-gpu-py3-jupyter de l'image tensorflow / tensorflow.

docker run --rm --gpus all --privileged -it -p 8888:8888 -v "$PWD":/tf/notebook tensorflow/tensorflow:latest-gpu-py3-jupyter

image.png

Bien que ce ne soit pas un article Docker, si vous expliquez brièvement la commande, cette partie -v" $ PWD ": / tf / notebook est appelée un montage de liaison, et le répertoire et le conteneur sont liés. Les fichiers créés dans le conteneur seront donc enregistrés dans ce répertoire courant, ici le répertoire de test.

Accédez ensuite au navigateur sur le port 8888. Entrez http: // localhost: 8888 dans l'URL de votre navigateur. Un mot de passe vous sera demandé, alors entrez le jeton. Lorsque vous exécutez docker, le jeton est également affiché à l'écran, alors copiez-le.

image.png

Assurez-vous également de bien reconnaître le GPU. Créez un cahier et entrez la commande suivante.

from tensorflow.python.client import device_lib
device_lib.list_local_devices()

image.png

J'ai pu confirmer que le GPU était reconnu.

Il s'agit d'un fichier créé, mais vous pouvez confirmer que le fichier est créé dans le répertoire de test du côté hôte. Dans ce cas, vérifiez-le avec une autre fenêtre ou un autre explorateur Ubuntu.

en conclusion

Le GPU pourrait être utilisé comme Linux même dans le système d'exploitation Windows. Personnellement, je pense que Linux va bien.

Remarques

Mon PC est Pro, pas à la maison. De plus, la version à laquelle le GPU peut être reconnu est la version suivante. image.png

Article de référence

Recommended Posts

Reconnaissance GPU avec docker utilisant WSL2 (août 2020)
Exploser Docker avec WSL2
Paramètre de démarrage automatique de Docker avec wsl2
Créer un environnement Docker avec WSL
Utilisation de PlantUml avec Honkit [Docker]
Utilisation de Docker avec Windows10 Home WSL2
Utilisation de cuda11.0 avec pytorch en utilisant Docker
Construction de l'environnement GPU avec Docker [version d'octobre 2020]
Utilisation de JupyterLab + Java avec WSL sous Windows 10
J'ai essayé d'utiliser Scalar DL avec Docker
Serveur proxy par squid en utilisant l'image docker
Image volée lors de la mise à jour de Docker avec WSL2
Installer Docker avec WSL2 Memo ([Partie 2] Introduction à Docker)
Spécifiez ClassPath lors de l'utilisation de jupyter + Java avec WSL
Accélérez le volume en utilisant Docker avec vscode.
Essayez d'utiliser un autre conteneur de servlet Jetty avec Docker
Créer un environnement de développement Chisel avec Windows10 + WSL2 + VScode + Docker
Utiliser la paire avec OpenJDK
Utiliser Puphpeteer avec Docker
Exploitez Emby avec Docker
Exécutez Payara avec Docker
PHP jetable avec Docker
Enregistrez votre propre image Docker dans ECR à l'aide de l'AWS CLI
Mesures des autorisations lors de la construction de MySQL avec Docker sur WSL2