3

Getting started with CUDA on Ubuntu on WSL 2

 3 years ago
source link: https://ubuntu.com/blog/getting-started-with-cuda-on-ubuntu-on-wsl-2
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

At Build 2020 Microsoft announced support for GPU compute on Windows Subsystem for Linux 2 . Ubuntu is the leading Linux distribution for WSL and a sponsor of WSLConf . Canonical, the publisher of Ubuntu, provides enterprise support for Ubuntu on WSL throughUbuntu Advantage.

This guide will walk early adopters through the steps on turning their Windows 10 devices into a CUDA development workstation with Ubuntu on WSL.

For our purposes we will be setting up Jupyter Notebook in Docker with CUDA on WSL. These instructions can be adapted to set up other CUDA GPU compute workloads on WSL.

u6Fzu2Q.png!web

Install Windows 10 Insiders Dev Channel

To begin, we need the latest Windows 10 Insider build released today, June 17, 2020. You will need to register as a Windows Insider if you have not already, enroll your device in the Dev Channel (previously known as the ‘Fast Ring’), and then upgrade to Windows 10 build number 20150 or above.

QRbuQ3f.png!web

Consult the Windows Insider documentation for more information on registering as an Insider, enrolling your device, and upgrading your machine to the Dev Channel.

Enable WSL 2

In future updates to Windows you will simply need to use the following to enable WSL:

wsl --install

For now, open PowerShell as Administrator.

First enable WSL 1:

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
iyyqUjy.png!web

Then enable WSL 2:

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
IJfiYjj.png!web

Restart Windows 10:

Restart-Computer

This step will become redundant in the future after WSL 2 becomes the default, but for now return to PowerShell and make WSL 2 your default before installing Ubuntu:

wsl.exe --set-default-version 2
eQryEjE.png!web

To read more about Ubuntu on WSL, visitubuntu.com/wsl. For a more detailed look at enabling WSL on Windows, check out ourtutorial. To convert existing WSL 1 installs to WSL 2, see my blog on the general availability of WSL 2 .

Install Ubuntu on WSL

Install Ubuntu from the Microsoft Store :

q2IN3qm.png!web

For other ways to install Ubuntu on WSL, see ourWSL wiki.

Install Windows Terminal

Optionally, you may install the new Windows Terminal from the Microsoft Store . It is has many features, such as GPU acceleration and customizability, that improves the Ubuntu experience on WSL over the traditional Windows console.

jIBJZza.png!web

Windows Terminal can also be installed from the project’s GitHub page .

Setup Ubuntu on WSL

Open Ubuntu from the Windows Start Menu and configure your WSL user. This user is separate from your Windows user:

f2MfmiE.png!web

If you downloaded Windows Terminal you can then close the old console and re-open Ubuntu from the drop-down options in the new Terminal:

beMRraR.png!web

Now check to make sure you are running the correct WSL 2 Linux kernel.

In Ubuntu:

uname -r
MRreuiy.png!web

You will need kernel 4.19.121 or higher. If you do not have kernel 4.19.121, first try:

wsl.exe --update

If that does not work, make sure you have ‘Receive updates for other Microsoft products when you update Windows’ checked:

aeeaeui.png!web

And then re-run Windows updates:

FZzYnqi.png!web

Install Nvidia Drivers on Windows 10

Zn6JVzV.png!web

Next, download the appropriate driver for your GeForce or Quadro Nvidia card.

In the next few months, the NVIDIA driver will be distributed via Windows Update, which will manually downloading and installing the driver unnecessary.

You will need to join the Nvidia Developer Program for early access to the driver for now. You can read more about CUDA on WSL on the Nvidia Developer blog .

Install Docker in WSL

sudo apt -y install docker.io
AfA3mqB.png!web

Install Nvidia Container Toolkit

Set the distribution variable, import the Nvidia repository GPG key, and then add the Nvidia repositories to the Ubuntu apt package manager:

distribution=$(. /etc/os-release;echo $ID$VERSION_ID)

curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -

curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list

curl -s -L https://nvidia.github.io/libnvidia-container/experimental/$distribution/libnvidia-container-experimental.list | sudo tee /etc/apt/sources.list.d/libnvidia-container-experimental.list
uQBjUf2.png!web

Refresh the Ubuntu apt repositories and then install the Nvidia runtime:

sudo apt update && sudo apt install -y nvidia-docker2
Y7F3auf.png!web

Close all open terminals of Ubuntu, open a PowerShell terminal, and manually shutdown Ubuntu:

wsl.exe --shutdown Ubuntu
AjIr2ui.png!web

Test GPU Compute

Open a new Ubuntu terminal and run:

docker run --gpus all nvcr.io/nvidia/k8s/cuda-sample:nbody nbody -gpu -benchmark

If everything is configured correctly, the output should resemble:

QJrIjau.png!web

Start A TensorFlow Container

Open a new Ubuntu terminal and run:

docker run -u $(id -u):$(id -g) -it --gpus all -p 8888:8888 tensorflow/tensorflow:latest-gpu-py3-jupyter
3y2Ajey.png!web

Open a second Ubuntu terminal, type wslview, copy and paste the notebook URL, but then edit the URL from 127.0.0.1 to localhost:

wslview http://localhost:8888/?token=a83a1ad288a7bf1bd1deb694c8a7f19223c8d0baa7d5fb3c

Your default browser on Windows will launch with a GPU-accelerated Jupyter notebook:

FrmyQvi.png!web

You are now all set to begin using TensorFlow with CUDA on Ubuntu WSL.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK