51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

Windows Subsystem for Linux (WSL) 创建、运行带CUDA支持的Ubuntu系统

Windows Subsystem for Linux (WSL)是适用于 Linux 的 Windows 子系统可让开发人员直接在 Windows 上按原样运行 GNU/Linux 环境(包括大多数命令行工具、实用工具和应用程序),且不会产生传统虚拟机或双启动设置开销。

相关资料 {#相关资料}

简介 {#简介}

Windows Linux子系统(WSL)是Windows 10的一项功能,使用户可以直接在Windows上运行本机Linux命令行工具。 WSL是一个容器化的环境,用户可以在其中从Windows 10 Shell的命令行运行Linux本机应用程序,而无需双启动环境的复杂性。在内部,WSL与Microsoft Windows操作系统紧密集成,从而使其可以与传统的Windows桌面和现代商店应用程序一起运行Linux应用程序。

CUDA WSL

  • 借助WSL 2和GPU半虚拟化技术,Microsoft使开发人员能够在Windows上运行GPU加速的应用程序

安装步骤 {#安装步骤}

以下文档描述了在WSL 2环境中开始运行CUDA应用程序或容器的工作流程

注意:从开普勒架构开始,在GPU上启用了WSL 2上的CUDA。但是,官方建议在Turing或更新的体系结构上的WSL 2上运行CUDA。

  • 从Microsoft Windows Insider程序安装最新版本
  • 为WSL2安装 NVIDIA 驱动
  • 安装WSL2
  • 安装Linux发行版
  • 为WSL配置CUDA环境
  • 为WSL安装 nvidia-docker

从Microsoft Windows Insider程序安装最新版本 {#从Microsoft-Windows-Insider程序安装最新版本}

注册加入微软Windows内部人员计划 {#注册加入微软Windows内部人员计划}

  • 登录微软账号

  • 注册成功

安装 Win 10 的最新版本 {#安装-Win-10-的最新版本}

查看Windows 10 版本 {#查看Windows-10-版本}
  • Win + R 在运行中输入命令 winver

  • 可以看到我的系统版本 1919 内部版本18363,这是不够的
  • 需要版本2004以上 内部版本19041 或更高

加入Windows预览体验计划 {#加入Windows预览体验计划}

  • Win+S 搜索预览体验计划

如果没有这个开始按钮,一片空白,请移步解决Windows 预览体验计划没有用户选择界面的问题

  • 然后链接到自己的微软账户

  • CUDA建议使用Dev渠道,以获得最新的更新与最高的cuda性能,此处我们选择Dev渠道:

求稳的用户建议选择Beat渠道

  • 重启计算机

  • 成功加入预览成员

进行 Windows 更新 {#进行-Windows-更新}

  • Win+S 搜索windows更新

  • 开启高级选项中的更新Windows时接收其他Microsoft产品的更新以更新Linux内核

  • 更新吧

这个更新可能需要分步
也就是一次重启更新一部分文件
需要不停更新,直到无新可更

更新后检查Windows 版本 {#更新后检查Windows-版本}

  • win + R 命令 winver
  • Beta 渠道更新结果:

  • Dev渠道更新结果

21364.1已经超过了CUDA建议的21332内部版本号

检查历史更新记录 {#检查历史更新记录}

  • Windows 更新 面板中查看更新历史记录

如果没有 Linux 内核更新请返回开启更新Windows时接收其他Microsoft产品的更新开关

CUDA建议Linux内核版本 5.4.91+获得最好性能,当前没有达到,应该也是够用的

安装 NVIDIA 驱动 {#安装-NVIDIA-驱动}

从WSL页面CUDA的下载部分下载NVIDIA驱动程序。根据您系统中的NVIDIA GPU的类型选择合适的驱动程序-GeForce和Quadro。

下载驱动 {#下载驱动}

  • 选择自己的驱动类型

  • 登录英伟达账号

  • 下载驱动

安装驱动 {#安装驱动}

  • 使用可执行文件安装驱动程序,这是我们需要安装的唯一驱动程序。

DirectX WSL驱动程序会与其他驱动程序组件一起自动安装,因此不需要其他操作。该驱动程序通过支持DX12 API在WSL2.0上启用图形。在WSL上具有DirectML支持的TensorFlow将获得用于训练和推理工作量的NV GPU硬件加速。

更多信息:https://docs.microsoft.com/en-us/windows/win32/direct3d12/gpu-tensorflow-wsl

查看驱动版本 {#查看驱动版本}

  • cmd 运行 nvidia-smi

官方提醒:

  1. 不要在WSL中安装任何Linux显示驱动程序。 Windows显示驱动程序将同时安装用于本机Windows和WSL支持的常规驱动程序组件。
  2. NVIDIA了解到在移动平台上报告的特定安装问题,该问题在2020年11月16日发布了WIP驱动程序465.12。已知的解决方法是在系统启动时从设备管理器中禁用和重新启用GPU适配器。我们正在努力解决此问题,并将很快提供更新的驱动程序。

安装 WSL 2 {#安装-WSL-2}

安装 WSL 1 {#安装-WSL-1}

现在的我们有三种方法安装WSL 1

  1. 使用简化安装命令

    此方法需要有三个前提:

    1. 加入 Windows 预览体验计划
    2. 安装 Windows 10 的预览版(OS 版本 20262 或更高版本)。
    3. 使用管理员特权打开命令行窗口
  2. 控制面板 --> 程序与功能 --> 启动或关闭Windows功能 勾选 适用于Linux的Windows子系统

  3. 或使用管理员权限打开powershell,输入命令:

此时为了成功安装 WSL 事实上需要重启电脑,但是升级 WSL2 还需要重启一次,所以此处可以选择等会再重启

开启虚拟化功能 {#开启虚拟化功能}

有两种方法完成开启

  1. 管理员权限开启 powershell,执行命令:

  2. 控制面板 --> 程序与功能 --> 启动或关闭Windows功能 勾选 虚拟机平台

  • 执行上述之一的步骤后,重启计算机,完成 WSL 安装并更新到 WSL 2

开启Hyper-V {#开启Hyper-V}

  • 控制面板 --> 程序与功能 --> 启动或关闭Windows功能 勾选 Hyper-V 选项。

在BIOS中开启虚拟化功能 {#在BIOS中开启虚拟化功能}

下载Linux内核更新包 {#下载Linux内核更新包}

如果使用的是 ARM64 计算机,请下载 ARM64 包。 如果不确定自己计算机的类型,请打开命令提示符或 PowerShell,并输入:systeminfo

系统类型可以看到本机基于 x64 需要下载x64包

  • 运行上一步中下载的更新包。 (双击以运行 - 系统将提示你提供提升的权限,选择"是"以批准此安装。)

  • 如果提示当前WSL版本更新就忽略这个包吧

将 WSL 2 设置为默认版本 {#将-WSL-2-设置为默认版本}

  • 打开 PowerShell,然后在安装新的 Linux 发行版时运行以下命令,将 WSL 2 设置为默认版本:

查看 wsl 版本 {#查看-wsl-版本}

  • 输出:

由于我之前安装了wsl1的ubuntu,列表中有一个Version为1的开发版

安装Linux发行版 {#安装Linux发行版}

安装Linux {#安装Linux}

  • 选择自己需要的Linux发行版:

事实上我尝试了 16.04和18.04的ubuntu 均出现安装CUDA时闪退的问题,没有解决

换成了20.04 顺利安装CUDA Linux 分发版链接

安装 Windows Terminal (可选) {#安装-Windows-Terminal-可选}

Windows Terminal启用多个选项卡(在多个Linux命令行,Windows命令提示符,PowerShell,Azure CLI等之间快速切换),创建自定义键绑定(用于打开或关闭选项卡的快捷键,复制+粘贴等),使用搜索功能和自定义主题(配色方案,字体样式和大小,背景图像/模糊/透明度)

Install Windows Terminal

  • 和 Xshell 差不多感觉

测试 Linux {#测试-Linux}

  • 在Microsoft Store 或开始菜单搜索 Ubuntu 启动 Ubuntu 终端

说明发行版正常运行

检查发行版WSL版本 {#检查发行版WSL版本}

  • 在powershell中输入命令:

-->

  • 显示VERSION为2,表明WSL2发行版安装成功

为WSL配置CUDA环境 {#为WSL配置CUDA环境}

当前CUDA WSL仅对Ubuntu 做了支持

恰好我装的发行版是Ubuntu,需要安装 WSL-Ubuntu 的CUDA

  • 当前支持WSL的CUDA最早版本为11.1
  • 我安装CUDA成功的发行版是20.04(16.04和18.04均失败了,原因还没有找到)

Ubuntu 18.04 {#Ubuntu-18-04}

  • 这个版本受到CUDA官方眷顾,官网直接给出了安装命令
  • 安装WSL2 的CUDA

事实上,我并没有运行成功,所以个人建议用下面的安装方法

Ubuntu 16.04 或其他Ubuntu版本 {#Ubuntu-16-04-或其他Ubuntu版本}

  • 使用命令:
  • 或下载 runfile(local)

下载完成后

测试CUDA {#测试CUDA}

注意此时是没有 nvidia-smi的,因为没有在WSL中安装驱动,驱动是在Win中装的

  1. nvcc

  2. cuda sample

    • 使用cuda sample的1_Utilities
    • 输出

为WSL安装 nvidia-docker {#为WSL安装-nvidia-docker}

安装docker {#安装docker}

  • 检查docker是否安装成功

安装nvidia-docker2 {#安装nvidia-docker2}

从nvidia-docker2 v2.3和基础运行库(libnvidia-container> = 1.2.0-rc.1)开始,为WSL 2提供支持。

  • 检查nvidia-docker是否安装成功

参考资料 {#参考资料}



文章链接:
https://www.zywvvd.com/notes/system/windows/about-wsl/wsl-build/wsl-build/

赞(0)
未经允许不得转载:工具盒子 » Windows Subsystem for Linux (WSL) 创建、运行带CUDA支持的Ubuntu系统