How to Install WSL2 together with Ubuntu and NVIDIA®-Docker for Windows 10
ENVIRONMENT
OS: Windows 10 Pro (Build 21376)
CPU: Intel i7-10870H
RAM: 16 GB
GPU: NVIDIA® GeForce RTX 3060 Laptop GPU (6 GB)
How to install Windows 10 Insider Build
Requirements:
NVIDIA® GPU applied PC
Microsoft account (to register for the Windows Insider Program)
NVIDIA® Developer Program Membership (to install NVIDIA® Drivers for CUDA on WSL)
First, we will register for the Microsoft Windows Insider Program in Web browser, select the “Dev Channel” and install the latest build from the Dev Channel.
Required Version: 20145 or higher
Recommended Version: 21332 and higher (with Linux Kernel 5.4.91+ for the best performance)
In Web browser, follow these steps: click “Register” → “Sign In Now” → Accept the Terms of Agreement and “Register Now” → “Flight Now” → “Open Settings”.
In Settings, follow these steps: click “Get Started” → “Link an Account” → Sign in with your Microsoft account → select “Dev Channel” → click “Confirm” → “Restart Now”.
Enable “Receive updates for other Microsoft products when you update Windows” in Advanced Update Options.
Click “Check for updates” and reboot Windows.
The Windows OS updated successfully. For the version check, follow “System” → “About” in Settings.
As you can see, our version is “Dev” and the OS build is “21376.1”.
How to install NVIDIA® GPU Driver for Windows 10
Open Windows PowerShell and type “nvidia-smi.exe” to check the driver package installed.
How to install WSL 2
As the WSL Installation Guide for Windows 10 document, open PowerShell as Administrator and type:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
Reboot Windows, open PowerShell as Administrator again and type to set WSL 2 as the default version when installing a new Linux distribution:
wsl.exe --set-default-version 2
Check the updates after the WSL installed.
Wait for a while to checking the updates ended.
Check the Linux kernel version from Settings and PowerShell (with “wsl cat /proc/version” command).
If your kernel version is not 4.19.121 or higher, you can update your kernel with this command:
wsl.exe --update
If that does not work, make sure you have “Receive updates for other Microsoft products when you update Windows” checked and re-run Windows updates.
Install Ubuntu with NVIDIA®-Docker in WSL 2
Install the new Windows Terminal from the Microsoft Store to GPU acceleration, that improves the Ubuntu experience on WSL 2 over the traditional Windows console.
Open Ubuntu from the Windows Terminal and complete your WSL 2 user configurations.
In Ubuntu, install CUDA Toolkit and run the “deviceQuery” example (Our NVIDIA® GPU driver’s CUDA version is 11.3. If your version is different, keep attention to install the same version of cuda-toolkit.).
cd
sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
sudo sh -c 'echo "deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64 /" > /etc/apt/sources.list.d/cuda.list'
sudo apt-get update
sudo apt-get install -y cuda-toolkit-11-3
cd /usr/local/cuda/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery
Then, continue to install the Docker packages with these commands (Our nvidia-docker did not work for version 1.4.0. We found the solution as downgrading the nvidia-docker packages and disabling requirements checking (NVIDIA_DISABLE_REQUIRE) in “docker run” commands.):
cd
curl https://get.docker.com | shdistribution=$(. /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 apt-get update
sudo apt-get install -y nvidia-docker2
sudo apt-get install nvidia-docker2:amd64=2.5.0-1 nvidia-container-runtime:amd64=3.4.0-1 nvidia-container-toolkit:amd64=1.4.2-1 libnvidia-container-tools:amd64=1.3.3-1 libnvidia-container1:amd64=1.3.3-1
sudo service docker stop
sudo service docker start
sudo docker run --rm --gpus all --env NVIDIA_DISABLE_REQUIRE=1 nvcr.io/nvidia/k8s/cuda-sample:nbody nbody -gpu -benchmark
Thank you for reading our blog post.