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

本文来自于对论坛帖( 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饭 和 @芳菲菲兮满堂 两位大大的安装参考文档。
(全文完,谢谢阅读)
- 点赞
- 收藏
- 关注作者
评论(0)