张小白带你在Windows11 预览版的WSL上玩转MindSpore 1.3.0(GPU版)

举报
张辉 发表于 2021/08/08 12:38:42 2021/08/08
【摘要】 Windows 11预览版+WSL2+docker+nvidia-docker+MindSpore1.3.0

本文来自于对论坛帖( https://bbs.huaweicloud.com/forum/thread-146553-1-1.html )的整理。

如何在Windows上使用MindSpore GPU版本?这对MindSpore团队和MindSpore的开发者来说,一直是个灵魂拷问。。。

张小白不由得想起去年的这两篇文字:

https://bbs.huaweicloud.com/forum/thread-82598-1-1.html

https://bbs.huaweicloud.com/forum/thread-83076-1-1.html

饭饭大侠和菲菲大侠早就对这个情形做了尝试,所以张小白这篇,也只是对上述两篇文字做了一点验证而已。。。可能技术含量并不高,请见谅。

首先要看一下被安装的软硬件,这里,张小白提供了2种机型:

Thinkpad P52 ,原来安装的是Windows 10专业版:

暗影精灵7Plus,原来装的是Windows 10家庭版:

开通Windows预览体验计划

先需要到 https://insider.windows.com/zh-cn/getting-started#flight 这里申请开通 预览权限。

开通时记得使用自己的windows登录用户登录进入开通。

注册成功后,点击下面的 “Windows预览体验计划”的链接

可以进入设置界面:

这里有个小插曲,首先,

在开始预览计划的时候,上面的页面并不会出来dev渠道,而是出现 报错0x0

搜索 https://hdbl.net/post/120.html 下载注册表文件,打开导入,会出现

Release版本而非Dev版本。

但是饭饭和菲菲两位大大说了,必须用Dev渠道。只好再次搜索,这次在B站搜到解决方案:

https://www.bilibili.com/video/BV1zB4y1K7TK/?spm_id_from=autoNext

照此执行,果然出现了以上页面。

下载并安装Windows11预览版

在前面的页面中点击Windows更新,会发现和自动下载Windows 11预览版的包:

耐心等待下载完毕,会自动安装:

耐心等待安装完毕,会自动重启(可能是多次)

就会进入Windows11的预览版页面:

安装 NVIDIA Drivers for CUDA on WSL

打开 https://developer.nvidia.com/cuda/wsl/download 

下载完毕后,点击安装:

安装完毕后,可能会自动启动Nvidia GeForce Experience:

暂时不用管它,关闭即可。

启用WSL和虚拟机平台:

打开控制面板:

启用以下两项:

重启即可。

下载并安装WSL2的Linux内核更新包:

打开 WSL网页:

https://docs.microsoft.com/zh-cn/windows/wsl/install-win10

执行步骤4:

下载内核更新包并执行:

到PowerShell中激活WSL2

wsl --set-default-version 2

安装Ubuntu 18.04

打开microsoft store:

安装ubuntu 18.04,安装完毕后打开:

输入用户名密码ascend/ascend...

确认wsl内核版本:

uname -a

安装docker

curl https://get.docker.com | sh

安装nvidia-docker2

(这个步骤比较长。。。)

根据 

https://gitee.com/mindspore/mindspore?_from=gitee_search#docker%E9%95%9C%E5%83%8F

安装nvidia-docker2

DISTRIBUTION=$(. /etc/os-release; echo $ID$VERSION_ID)

curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | apt-key add -

结果执行到第2行报错了,试了几次都不行·。

根据以下文档:

https://www.cnblogs.com/jimchen1218/p/14186262.html


替换阿里云apt源:

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

sudo vi /etc/apt/sources.list

sudo apt-get update

sudo curl -s -L https://nvidia.github.io/nvidia-docker/ubuntu18.04/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list

sudo apt install apt-transport-https ca-certificates curl software-properties-common 

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

lsb_release -cs

sudo  add-apt-repository  "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable" 

sudo apt update

apt-cache policy docker-ce  

sudo service docker start

sudo docker run hello-world

 curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -

curl -s -L https://nvidia.github.io/nvidia-docker/ubuntu18.04/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list

sudo apt-get update

curl -s -L https://nvidia.github.io/nvidia-container-runtime/gpgkey | sudo apt-key add -

distribution=$(. /etc/os-release;echo $ID$VERSION_ID)

curl -s -L https://nvidia.github.io/nvidia-container-runtime/$distribution/nvidia-container-runtime.list | sudo tee /etc/apt/sources.list.d/nvidia-container-runtime.list

sudo apt-get update

sudo sed -i -e '/experimental/ s/^#//g' /etc/apt/sources.list.d/nvidia-container-runtime.list

sudo apt-get update

sudo apt-get install nvidia-container-runtime

sudo apt-get install nvidia-docker2

sudo pkill -SIGHUP dockerd

拖取mindspore 1.3镜像

sudo docker pull mindspore/mindspore-gpu:1.3.0

。。。时间有点长...

运行Mindspore 1.3.0的docker,执行GPU验证

sudo docker run -it -v /dev/shm:/dev/shm --runtime=nvidia --privileged=true mindspore/mindspore-gpu:1.3.0 /bin/bash

准备test.py脚本并执行:

import numpy as np
import mindspore.context as context
from mindspore import Tensor
from mindspore.ops import functional as F

context.set_context(mode=context.PYNATIVE_MODE, device_target="GPU")

x = Tensor(np.ones([1,3,3,4]).astype(np.float32))
y = Tensor(np.ones([1,3,3,4]).astype(np.float32))
print(F.tensor_add(x, y))

python test.py

由上可见,Nvidia的GPU已被成功调用。

典型问题处理:

1.如果遇到 docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
可以执行:
sudo service docker start

2.如果docker pull的时候报 unauthorized

可以重新下载试试。

如果还是不行,可以试试以下的方法:

sudo apt install ntp

sudo apt install ntpdate

sudo ntpdate pool.ntp.org

重新 sudo docker pull mindspore/mindspore-gpu:1.3.0

...

...

以上处理对Nvidia的 GeForce显卡和Quardo显卡都是可以的。(幸好张小白居然有两种Nvidia的显卡)

最后感谢 @ML饭 和 @芳菲菲兮满堂 两位大大的安装参考文档。

(全文完,谢谢阅读)

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。