Win10配置WSL2安装Ubuntu,并支持Nvidia CUDA 环境

时间:2024-03-08 22:39:12

参考指南:

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版本