在Windows的Ubuntu子系统运行支持CUDA的深度学习代码

栏目: IT技术 · 发布时间: 4年前

内容简介:2020年6月,微软公布了Windows Subsystem for Linux 2的最新更新,全面支持CUDA和N卡GPU。在Windows上跑Ubuntu子系统并在其中运行GPU加速的深度学习代码成为现实,开发者终于不用特意为了熟悉的Linux环境而在自己的开发机上安装Windows与Ubuntu的双系统(以及Windows10之后繁琐的boot manager调试设置过程),同时又可以让Windows和Ubuntu共享同一个文件系统。笔者新买了Workstation,在各种尝试安装Windows和Ub

2020年6月,微软公布了Windows Subsystem for Linux 2的最新更新,全面支持CUDA和N卡GPU。在Windows上跑Ubuntu子系统并在其中运行GPU加速的深度学习代码成为现实,开发者终于不用特意为了熟悉的 Linux 环境而在自己的开发机上安装Windows与Ubuntu的双系统(以及Windows10之后繁琐的boot manager调试设置过程),同时又可以让Windows和Ubuntu共享同一个文件系统。

笔者新买了Workstation,在各种尝试安装Windows和Ubuntu双系统还是安装Windows的Ubuntu子系统两个选择中游走踩坑之后,终于成功在Windows 10中安装了最新的WSL2、Ubuntu系统及NVIDIA Driver,成功在Windows的Ubuntu子系统中运行深度学习代码,GPU资源全部跑满!

在Windows的Ubuntu子系统运行支持CUDA的深度学习代码

设置Windows Insider并安装更新

首先要确保电脑的BIOS选项中,Virtualization虚拟化功能是打开的。

BIOS设置好之后,我们需要在Windows中安装微软在2020年6月17日最新开放的Windows Insider Build。我们要首先注册为 Windows Insider ,加入Windows的Dev Channel,然后更新Windows为build 20150或者以上。

在Windows的Ubuntu子系统运行支持CUDA的深度学习代码

设置Windows Subsystem Linux (WSL) 2

未来微软将WSL 2变为稳定版以后,我们只需要输入下面的命令来设置WSL 2:

wsl --install

现在WSL2的功能还是测试版,我们需要用管理员权限打开PowerShell。

首先设置WSL 1:

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

在Windows的Ubuntu子系统运行支持CUDA的深度学习代码

然后设置WSL 2:

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

在Windows的Ubuntu子系统运行支持CUDA的深度学习代码

重启Windows 10:

Restart-Computer

之后WSL 2成为默认之后下面的步骤就可以省略,不过现在我们还需要打开PowerShell将WSL 2设置为默认选项:

wsl.exe --set-default-version 2

在Windows的Ubuntu子系统运行支持CUDA的深度学习代码

在WSL上安装Ubuntu

在微软商店中安装 Ubuntu :

在Windows的Ubuntu子系统运行支持CUDA的深度学习代码

安装Windows Terminal

在微软商店中安装 Windows Terminal 。Windows Terminal的主要好处是未来可以在同一个窗口中一键打开多个PowerShell和Ubuntu Terminal的tab,非常方便。

在Windows的Ubuntu子系统运行支持CUDA的深度学习代码

设置WSL上面的Ubuntu

在Windows开始菜单中打开Ubuntu,第一次打开需要设置Ubuntu系统的用户名和密码,这个账户是和Windows账户分开的。

在Windows的Ubuntu子系统运行支持CUDA的深度学习代码

设置完毕后关掉原先的窗口,然后打开Windows Terminal,在下拉菜单中选择Ubuntu开启一个新的Ubuntu Terminal。

在Windows的Ubuntu子系统运行支持CUDA的深度学习代码

下面这一步很关键,我们要检查确认我们运行的是正确的WSL 2 Linux内核。在Ubuntu中输入:

uname -r

在Windows的Ubuntu子系统运行支持CUDA的深度学习代码

内核版本一定是 4.19.121 或更高。如果不是的话先在Windows的PowerShell中试下:

wsl.exe --update

如果还是不行,检查一下Windows升级设定中”Receive updates for other Microsoft products when you update Windows”这个选项是打开的:

在Windows的Ubuntu子系统运行支持CUDA的深度学习代码

然后再检查一下Windows更新,看看有没有最新的Windows Subsystem for Linux Update。

在Windows的Ubuntu子系统运行支持CUDA的深度学习代码

在Windows 10上面安装Nvidia的WSL2驱动

针对不同显卡安装相应的 驱动

未来Nvidia的驱动会自动集成在Windows Update中,但现在支持WSL2的Nvidia驱动还是开发者测试版,用户需要加入 Nvidia Developer Program 来获取最新驱动的下载权限。

在Windows的Ubuntu子系统运行支持CUDA的深度学习代码

在WSL中安装Docker

在Ubuntu Terminal中:

sudo apt -y install docker.io

在Windows的Ubuntu子系统运行支持CUDA的深度学习代码

安装Nvidia Container Toolkit

设置版本的变量,导入Nvidia库的GPG Key,把Nvidia的repo加入到Ubuntu的apt安装源中。在Ubuntu Terminal中:

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

在Windows的Ubuntu子系统运行支持CUDA的深度学习代码

更新Ubuntu的apt安装源然后安装Nvidia运行环境:

sudo apt update && sudo apt install -y nvidia-docker2

在Windows的Ubuntu子系统运行支持CUDA的深度学习代码

关闭所有的Ubuntu terminal,打开PowerShell terminal,手动关闭掉Ubuntu内核:

wsl.exe --shutdown Ubuntu

在Windows的Ubuntu子系统运行支持CUDA的深度学习代码

测试GPU计算环境

打开一个新的Ubuntu terminal并开启Docker:

sudo dockerd

在另一个新的Ubuntu terminal中运行:

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

如果一切设置没问题的话,输出应该和下面的类似:

在Windows的Ubuntu子系统运行支持CUDA的深度学习代码

测试Tensorflow-GPU容器

在另一个新的Ubuntu terminal中运行:

docker run -u $(id -u):$(id -g) -it --gpus all -p 8888:8888 tensorflow/tensorflow:latest-gpu-py3-jupyter

在Windows的Ubuntu子系统运行支持CUDA的深度学习代码

一切正常的话,Terminal最后会给出一个带token的jupter notebook地址。将其复制并在浏览器中打开,我们就成功开启了一个GPU加速的运行Tensorflow的Jupyter notebook:

在Windows的Ubuntu子系统运行支持CUDA的深度学习代码

现在我们就可以在这个Windows的Ubuntu子系统环境中编写、测试和运行支持CUDA的Tensorflow了!


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

用户力:需求驱动的产品、运营和商业模式

用户力:需求驱动的产品、运营和商业模式

郝志中 / 机械工业出版社 / 2015-11-1 / 59.00

《用户力:需求驱动的产品、运营和商业模式》从用户需求角度深刻阐释了互联网产品设计、网络运营、商业模式构建的本质与方法论! 本书以“用户需求”为主线,先用逆向思维进行倒推,从本质的角度分析了用户的需求是如何驱动企业的产品设计、网络运营和商业模式构建的,将这三个重要部分进行了系统性和结构化的串联,然后用顺向思维进行铺陈,从实践和方法论的角度总结了企业究竟应该如围绕用户的真实需求来进行产品设计、网......一起来看看 《用户力:需求驱动的产品、运营和商业模式》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具