Win10配置WSL2安装Ubuntu,并支持Nvidia CUDA 环境
参考指南:
1 适用于 Linux 的 Windows 子系统安装指南 (Windows 10)
https://docs.microsoft.com/zh-cn/windows/wsl/install-win10
2 WSL2的Ubuntu中使用CUDA入门教程
https://ubuntu.com/blog/getting-started-with-cuda-on-ubuntu-on-wsl-2
3 Nvidia的WSL用户指南
https://docs.nvidia.com/cuda/wsl-user-guide/index.html
4 发布可在wsl2上运行的CUDA
https://developer.nvidia.com/blog/announcing-cuda-on-windows-subsystem-for-linux-2/
Windows Subsystem of Linux(WSL)是Windows 10 功能特性之一,提供了一个容器化环境,使用户能够直接在 Windows 上运行本机 Linux 命令行工具。WSL 主要是开发人员的工具。如果您正在 Linux 容器中处理计算工作负载,可以使用您熟悉的同一本机 Linux 工具在 Windows PC 上本地开发和测试工作。
借助 WSL 2 和 GPU 远程化 (GPU-PV) 技术,Microsoft 允许您运行针对 GPU 硬件的计算工作负载,从而在 Windows 上为 Linux 支持添加GPU加速功能。在本文的稍后部分,我们将更详细地介绍 WSL 2 以及如何添加 GPU。
1 安装预览版本NVIDIA驱动
NVIDIA 驱动程序开发团队向 CUDA 驱动程序添加了对 WDDM 模型和 GPU-PV 的支持,以便能够在 Windows 上的 Linux 上运行该模型和 GPU-PV。
它仍然是一个预览驱动程序,不会发布,直到在 Windows 10 中的 WSL 中的官方 GPU 支持发布。有关版本的信息,请参阅CUDA WSL 2 下载。
https://developer.nvidia.com/cuda/wsl/download
2 安装预览版本Win10
在设置->更新和安全中,开启 Microsoft Windows预览体验计划,安装最新的 Windows 版本上的 WSL 版本,并设置容器以 WSL 2 模式运行。
以管理员身份运行PowerShell,执行以下命令:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart wsl --set-default-version 2
3 GPU 容器安装与配置
除了 DirectX 和 CUDA 支持外,NVIDIA 还在 WSL 2 中增加了对 NVIDIA 容器工具包(以前 nvidia-docker2)的支持。数据科学家准备在本地硬件下运行或在云中执行的容器化 GPU 工作负载现在可以在 Windows PC 上的 WSL 2 内按样运行。
首先,从应用商店安装Ubuntu:
如果没有安装最新的内核启动Ubuntu会被阻止,需要对内核进行更新:
通过以下命令对WSL内核进行更新:
wsl.exe --update
安装docker和cuda工具库:
$ curl https://get.docker.com | sh
$ 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
$ sudo apt-get update $ sudo apt-get install -y nvidia-docker2
运行测试容器:
docker run --gpus all nvcr.io/nvidia/k8s/cuda-sample:nbody nbody -gpu -benchmark
4 常用wsl命令
# 查看已安装系统 wsl --list --verbose wsl --set-default-version 2 wsl.exe --list -v command # 查看运行wsl版本 wsl cat /proc/version # 检查内核版本 wsl.exe --shutdown Ubuntu wsl.exe --update wsl --set-version Ubuntu 2 # 切换发行版运行的WSL版本