GPU-Erkennung mit Docker mithilfe von WSL2 (August 2020)

Einführung

Dies ist die n-te Abkochung, aber es ist ein Artikel, der von Docker mit WSL2 GPU-anerkannt wurde, als ich einen PC mit Windows-Betriebssystem kaufte. Da es einen Unterschied zum vorhandenen technischen Artikel gab, habe ich einen neuen Artikel erstellt.

Zusammenfassung

Zuerst werde ich eine Zusammenfassung schreiben. Was zu tun ist

--Schritt 1: Windows-Update --Schritt 2: Installieren Sie WSL2 --Schritt ③: Installieren Sie Ubuntu --Schritt ④: Installieren Sie den Cuda-Treiber für WSL (nicht für Linux). --Schritt ⑤: Docker-Installation unter WSL2 Ubuntu --Schritt ⑥: Installieren Sie CudaToolKit unter Ubuntu mit WSL2 --Schritt ⑦: Bestätigen Sie die GPU-Erkennung

ist.

Die Teile, die sich von den vorhandenen Artikeln unterscheiden, sind ① und ⑥. Wenn dies nicht funktioniert, behandeln Sie bitte nur diese Teile.

Schritt 1: Windows aktualisieren

So lassen Sie die WSL die GPU erkennen Versionshinweise zum Windows-Subsystemkern für Linux Es ist in beschrieben

image.png

Sie müssen auf die Version von aktualisieren. In vielen technischen Artikeln heißt es, dass Windows Insider Preview Fast ausgewählt und aktualisiert werden sollte. Beachten Sie jedoch, dass am 15. Juni 2020 das Kanalsystem Dev / Beta / Release Preview von Windows Insider erneuert wird. Bitte.

Es ist in diesem Artikel geschrieben [GPU mit WSL 2 verwenden (CUDA-, PyTorch- und TensorFlow 2.2-GPU-Version unter WSL 2 Ubuntu ausführen. Docker nicht verwenden, Windows 10 Insider-Programm verwenden, Ubuntu unter WSL 2)](https: // www .kkaneko.jp / tools / wsl / wsl_tensorflow2.html) Update nach Methode, aber nicht schnell image.png Wählen Sie einen Dev-Kanal und aktualisieren Sie. Ich denke, es wird eine Weile dauern.

In vielen technischen Artikeln wird auch beschrieben, wie nach der Installation von WSL aktualisiert wird. Ab dem 29. August 2020 sind jedoch die Befehle wsl --update und wsl.exe --update vorhanden. Andernfalls tritt zur Laufzeit ein Fehler auf. Aktualisieren Sie daher Windows selbst.

↓ Die in diesen Artikeln beschriebenen Befehle wsl --update und wsl.exe --update sind nicht vorhanden, daher müssen Sie zuerst das Hauptgerät aktualisieren. Es scheint, dass Sie endlich WSL2 + Docker + GPU ausführen können, also werde ich es versuchen [GPU mit WSL 2 verwenden (CUDA-, PyTorch- und TensorFlow 2.2-GPU-Version unter WSL 2 Ubuntu ausführen. Docker nicht verwenden, Windows 10 Insider-Programm verwenden, Ubuntu unter WSL 2)](https: // www .kkaneko.jp / tools / wsl / wsl_tensorflow2.html)

Schritt ② ~ Schritt ⑥

Ich habe auf diesen Artikel verwiesen. Warten auf CUDA auf WSL2 Ich habe CudaToolKit in Schritt ⑥ unter Ubuntu von WSL2 installiert, aber den Befehl sudo apt-get install -y cuda-toolkit-11-0 eingegeben, aber es wurde gesagt, dass es nicht existiert (August 2020). Ab dem 29. März) konnte ich es mit "sudo apt-get install -y cuda-toolkit" installieren. Ich bin auch hier misstrauisch. Wenn es nicht funktioniert, lesen Sie bitte andere technische Artikel.

Der technische Artikel von Warten auf CUDA auf WSL2 ist im Grunde der offizielle NVIDIA-Artikel [CUDA auf WSL-Benutzerhandbuch](https: // docs). Es handelt sich um eine japanische Übersetzung von .nvidia.com / cuda / wsl-user-guide / index.html. Wenn der Referenzartikel nicht funktioniert, wenden Sie sich bitte auch an den Beamten.

Schritt ⑦: Bestätigen Sie die GPU-Erkennung

Sie können es unter Ubuntu mit diesem Befehl überprüfen. docker run --gpus all nvcr.io/nvidia/k8s/cuda-sample:nbody nbody -gpu -benchmark image.png

Sie können sehen, dass GeForce erkannt wird.

Bestätigen Sie die GPU-Erkennung mit TensorFlow

Die Details von Docker werden hier nicht beschrieben, aber sobald Sie bis zu ⑦ abgeschlossen haben, können Sie TensorFlow in der GPU-Umgebung ausführen. Daher werde ich auch beschreiben, wie dies gemacht wird.

Erstellen Sie zunächst ein Verzeichnis unter Ubuntu für die Anwendung.

mkdir test
cd test

Verwenden Sie daher das neueste gpu-py3-jupyter-Tag des Tensorflow / Tensorflow-Bildes.

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

image.png

Obwohl es sich nicht um einen Docker-Artikel handelt, wird dieser -v" $ PWD ": / tf / notebook-Teil als Bind-Mount bezeichnet, wenn Sie den Befehl kurz erläutern, und das Verzeichnis und der Container werden verknüpft. Daher werden die im Container erstellten Dateien in diesem aktuellen Verzeichnis, hier dem Testverzeichnis, gespeichert.

Greifen Sie dann über Port 8888 auf den Browser zu. Geben Sie "http: // localhost: 8888" in die URL Ihres Browsers ein. Sie werden nach einem Passwort gefragt, geben Sie also das Token ein. Wenn Sie Docker ausführen, wird das Token auch auf dem Bildschirm angezeigt. Kopieren Sie es daher.

image.png

Stellen Sie außerdem sicher, dass Sie die GPU wirklich erkennen. Erstellen Sie ein Notizbuch und geben Sie den folgenden Befehl ein.

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

image.png

Ich konnte bestätigen, dass die GPU erkannt wurde.

Es handelt sich um eine erstellte Datei, Sie können jedoch bestätigen, dass die Datei im Testverzeichnis auf der Hostseite erstellt wurde. In diesem Fall überprüfen Sie es mit einem anderen Ubuntu-Fenster oder Explorer.

abschließend

Die GPU kann wie Linux auch unter Windows verwendet werden. Persönlich denke ich, dass Linux in Ordnung ist.

Bemerkungen

Mein PC ist Pro, nicht Home. Darüber hinaus ist die Version, bei der die GPU erkannt werden kann, die folgende Version. image.png

Referenzartikel

Recommended Posts

GPU-Erkennung mit Docker mithilfe von WSL2 (August 2020)
Explodiere Docker mit WSL2
Docker Autostart-Einstellung mit wsl2
Erstellen einer Docker-Umgebung mit WSL
Verwenden von PlantUml mit Honkit [Docker]
Verwenden von Docker mit Windows10 Home WSL2
Verwenden von cuda11.0 mit pytorch mit Docker
Aufbau einer GPU-Umgebung mit Docker [Version Oktober 2020]
Verwenden von JupyterLab + Java mit WSL unter Windows 10
Ich habe versucht, Scalar DL mit Docker zu verwenden
Proxyserver durch Tintenfisch mit Docker-Image
Das Bild flog beim Aktualisieren von Docker mit WSL2
Installieren Sie Docker mit WSL2 Memo ([Teil 2] Docker-Einführung)
Geben Sie ClassPath an, wenn Sie jupyter + Java mit WSL verwenden
Erhöhen Sie die Lautstärke, wenn Sie Docker mit vscode verwenden.
Versuchen Sie, einen anderen Servlet-Container-Steg mit Docker zu verwenden
Erstellen Sie eine Chisel-Entwicklungsumgebung mit Windows 10 + WSL2 + VScode + Docker
Verwenden Sie Pair mit OpenJDK
Verwenden Sie Puphpeteer mit Docker
Bedienen Sie Emby mit Docker
Führen Sie Payara mit Docker aus
Einweg-PHP mit Docker
Registrieren Sie Ihr eigenes Docker-Image in ECR mithilfe der AWS CLI
Maßnahmen für Berechtigungen beim Erstellen von MySQL mit Docker auf WSL2