Win11系统下的MindSpore环境搭建

win11,mindspore · 浏览次数 : 0

小编点评

本文介绍了一个在Win11系统下,通过WSL2+Docker+VSCode的方案搭建了一个mindspore-gpu的编程环境。这种方案既可以实现Linux系统编程以及部署的便捷性,又可以兼顾Windows系统强大的办公软件生态,甚至还可以借助Docker达到一定的软件可迁移性和可复制性。 **1. 技术背景** 本文作者尝试过不少编程环境搭建的方案,例如Ubuntu、Deepin、CentOS等,但这些发行版在需要办公的条件下,一般都需要结合Windows双系统使用。MacOS更适用于本地环境搭建,但是能兼容的显卡型号还是比较有限的。 **2. 解决方案** 经过测试,作者认为Win11+WSL2+Docker会是一个比较不错的解决方案。虽然直接用WSL2也可以搭建一个本地的编程环境,但是这样的环境具有一些不稳定因素,以及不可迁移的性质,因此作者认为还是WSL2+Docker的方案稳定性会更高一些。 **3. 安装过程** 1. 在应用商店里面直接搜wsl2,找一个稳定版本下载安装。 2. 下载Docker桌面版软件去Docker官网下载一个Win11版本的Docker桌面版并安装。 3. 启用虚拟化相关启动项。 4. 在控制面板里面找到“启用或关闭Windows功能”,找到虚拟机监控、子系统、Hyper-V、虚拟机平台这些,打上勾。 5. 安装Docker桌面版软件。 6. 修改WSL2中Docker的配置文件。 7. 打开Win11的终端窗口,选择打开WSL2中的Ubuntu20.04。 8. 登录Docker Hub。 9. 拉取一个MindSpore2.2.14的GPU版本的镜像。 **4. 使用方法** 1. 在Docker桌面版中直接启动相关镜像。 2. 使用VSCode的远程编程工具Remote Development和Dev Containers。 3. 在VSCode中使用Python相关插件。 4. 使用Git相关插件。 5. 在使用QT软件时,打开QT的debug选项。 **5. 总结** 本文介绍了一个在Win11系统下,通过WSL2+Docker+VSCode的方案搭建了一个mindspore-gpu的编程环境。这种方案既可以实现Linux系统编程以及部署的便捷性,又可以兼顾Windows系统强大的办公软件生态,甚至还可以借助Docker达到一定的软件可迁移性和可复制性。

正文

技术背景

笔者尝试过不少编程环境搭建的方案,例如常见的Ubuntu、Deepin、CentOS,也用过很多人力荐的Manjaro,这些发行版在需要办公的条件下,一般都需要结合Windows双系统使用。MacOS更适用于本地环境搭建,但是能兼容的显卡型号还是比较有限的。经过一些测试,其实我认为Win11+WSL2+Docker会是一个比较不错的解决方案(本来打算也试试虚拟机,但是听朋友说虚拟机调CUDA有坑,因此暂时不做考虑)。虽然直接用WSL2也可以搭建一个本地的编程环境,但是这样的环境具有一些不稳定因素,以及不可迁移的性质,因此我个人认为还是WSL2+Docker的方案稳定性会更高一些。

配置Docker环境

安装WSL2

在应用商店里面直接搜wsl2,找一个稳定版本下载安装,我选择的是Ubuntu20.04:

下载Docker桌面版软件

Docker官网下载一个Win11版本的Docker桌面版并安装:

启用虚拟化相关启动项

在控制面板里面找到“启用或关闭Windows功能”:

找到虚拟机监控、子系统、Hyper-V、虚拟机平台这些,打上勾:

安装Docker桌面版软件:

这一步比较简单,按照顺序操作即可:

这就开始启动安装程序了:

安装完成后,可以在“用户-用户名-.docker”目录下找到daemon.json配置文件:

在这个文件中你可以配置一些你自己需要的镜像源,比如我这边配置了几个不同的镜像源:

{
  "builder": {
    "gc": {
      "defaultKeepStorage": "20GB",
      "enabled": true
    }
  },
  "experimental": false,
  "features": {
    "buildkit": true
  },
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn",
    "https://registry.docker-cn.com",
    "http://hub-mirror.c.163.com",
    "https://mirror.ccs.tencentyun.com"
  ],
  "runtimes": {
    "nvidia": {
      "path": "nvidia-container-runtime",
      "runtimeArgs": []
    }
  }
}

需要注意的是,国内有些地方的网络不能正常访问docker官网或者登录dockerhub,这个问题需要自行解决。安装完成后打开啊Docker桌面版是这样的:

其实,如果只是使用Docker的话,登录不上DockerHub只是说你不能向DockerHub上Push你自己的本地镜像,但并不影响本地使用。

配置WSL中的Docker

在前面的步骤中已经完成了WSL2的安装,此时打开Win11的终端窗口,可以选择打开哪一类的终端,例如我们下载的Ubuntu20.04:

初次登录,有可能需要自己配置相应的账号密码。配置完成后,可以在Docker桌面版的设置-资源中,找到我们使用的WSL子系统:

然后在WSL中添加docker专用的用户组,就可以开始拉取远程镜像了:

这里我们拉取的是一个MindSpore2.2.14的GPU版本的镜像。在本地拉取完成后,可以在Docker桌面版中看到相应镜像的存在:

除了拉取这种专用的软件镜像之外,更多人会选择拉取一些基础镜像,例如Ubuntu、CentOS等操作系统的基础镜像,然后再自己写一个Dockerfile来构建自己的本地镜像。

运行Docker

拉取完本地镜像之后,你可以选择在Docker桌面版上直接启动相关镜像:

但是我个人习惯在Win11桌面上搞一个简单的Bash脚本来启动:

docker run -it --env="DISPLAY" -v A:\container-mindspore\:/home/ --runtime=nvidia mindsponge:latest

启动成功后,可以通过docker ps -a来查看正在运行的容器,也可以通过docker images来使用命令行查看本地的镜像列表,还可以用docker commit把相应的容器内修改提交到镜像中。有一点需要提醒的是,因为是需要搭建一个本地的编程环境,我们最好是把我们的本地工作目录映射到Docker中的指定目录,这样在Docker中针对于这个目录下的修改可以直接同步保存到本地路径中。

编程环境搭建

Docker相关插件

这里我们首选推荐VSCode作为IDE使用,因为VSCode的扩展非常丰富,我们用得到其中关于Docker的远程编程工具Remote DevelopmentDev Containers

还有Docker扩展:

安装完成后,可以在这个Docker的扩展中找到我们已经启动的容器镜像mindsponge:latest

然后选择相应的镜像,Attach到VSCode的编程环境中:

Attach成功之后,再打开自己的workspace就会看到我们的项目已经链接到相应的容器镜像环境中运行:

Python相关插件

此时链接到容器镜像环境中后,其实我们可以直接在Terminal里面去运行和测试,但是VSCode中有一些可以让Python编程和Debug更加方便的插件可以考虑一下。例如这个Code Runner,可以在编程界面的右上角增添一个三角形图标一键运行:

还有这个PylancePython也是非常推荐的扩展工具,可以实现ctrl+左键快捷跳转到定义处:

Git相关插件

这里推荐三个跟Git相关的扩展插件:GitLensGit GraphGit History

这几个插件可以把`git diff`的功能可视化,编辑界面更加漂亮和方便一些:
还可以把git相关的一些操作如`add`、`commit`、`log`、`push`等等可视化到界面里面,即使是对git的操作指令没有那么熟悉的用户也可以轻松使用:

关于QT工具的Debug

在Docker镜像中使用到一些QT软件(例如silx)的时候,有可能出现一些找不到相关lib的报错,此时需要打开QT的debug选项,确认清楚QT软件无法使用的原因:

export QT_DEBUG_PLUGINS=1

如果遇到一些明确的报错说:libxxx.so.1 not found。就可以使用apt install libxxx-1来安装相关的软件库。当然,这些相关的操作可以直接保存到镜像中,或者是通过修改Dockerfile来直接构建一个可用QT的基础镜像。我这里有一份安装silx需要用到的软件安装脚本,有需要的可以拿去用:

# export QT_DEBUG_PLUGINS=1
cp -a /etc/apt/sources.list /etc/apt/sources.list.bak
sed -i "s@http://.*archive.ubuntu.com@http://mirrors.huaweicloud.com@g" /etc/apt/sources.list
sed -i "s@http://.*security.ubuntu.com@http://mirrors.huaweicloud.com@g" /etc/apt/sources.list
apt update
apt install -y libgl1
apt install -y libglib2.0-0
apt install -y libfontconfig1
apt install -y libxcb-icccm4 
apt install -y libxcb-image0
apt install -y libxcb-keysyms1
apt install -y libxcb-randr0
apt install -y libxcb-render-util0
apt install -y libxcb-shape0
apt install -y libxcb-xfixes0
apt install -y libxcb-xinerama0
apt install -y libxcb-xkb1
apt install -y libxkbcommon-x11-0
apt install -y libdbus-1-3
export QT_DEBUG_PLUGINS=
export XDG_RUNTIME_DIR=/usr/lib/

总结概要

本文介绍了一个在Win11系统下,通过WSL2+Docker+VSCode的方案搭建了一个mindspore-gpu的编程环境。这种方案既可以实现Linux系统编程以及部署的便捷性,又可以兼顾Windows系统强大的办公软件生态,甚至还可以借助Docker达到一定的软件可迁移性和可复制性。

版权声明

本文首发链接为:https://www.cnblogs.com/dechinphy/p/win11-mindspore.html

作者ID:DechinPhy

更多原著文章:https://www.cnblogs.com/dechinphy/

请博主喝咖啡:https://www.cnblogs.com/dechinphy/gallery/image/379634.html

参考链接

  1. https://blog.csdn.net/joeyoj/article/details/136427362

与Win11系统下的MindSpore环境搭建相似的内容:

Win11系统下的MindSpore环境搭建

本文介绍了一个在Win11系统下,通过WSL2+Docker+VSCode的方案搭建了一个mindspore-gpu的编程环境。这种方案既可以实现Linux系统编程以及部署的便捷性,又可以兼顾Windows系统强大的办公软件生态,甚至还可以借助Docker达到一定的软件可迁移性和可复制性。

上古神兵,先天至宝,Win11平台安装和配置NeoVim0.8.2编辑器搭建Python3开发环境(2023最新攻略)

毫无疑问,我们生活在编辑器的最好年代,Vim是仅在Vi之下的神级编辑器,而脱胎于Vim的NeoVim则是这个时代最好的编辑器,没有之一。异步支持、更好的内存管理、更快的渲染速度、更多的编辑命令,是大神Thiago de Arruda对开发者们最好的技术馈赠。 之前一篇:Win10系统下安装编辑器之神

Python3.10动态修改Windows系统(win10/win11)本地IP地址(静态IP)

一般情况下,局域网里的终端比如本地服务器设置静态IP的好处是可以有效减少网络连接时间,原因是过程中省略了每次联网后从DHCP服务器获取IP地址的流程,缺点是容易引发IP地址的冲突,当然,还有操作层面的繁琐,如果想要切换静态IP地址,就得去网络连接设置中手动操作,本次我们使用Python3.10动态地

win10系统单独编译和使用WebRTC的回声消除(AEC)、音频增益(AGC)、去噪(NS)模块

一、简介 本人想单独编译并使用WebRTC的音频回声消除模块,奈何技术有限,于是在百度的海洋里大海捞针,发现了https://www.cnblogs.com/mod109/p/5827918.html#!comments这篇博文已经做了相关工作,不甚感激! 但是我的需求是在window系统下进行编译

一键关闭 Win11 系统广告「GitHub 热点速览」

不知道读者中有多少人早已对 Windows 11 系统自带的广告感到厌烦,却又不知道如何关闭它们?虽然网上有详细的关闭教程,但是都需要逐一手动操作,不是很方便。所以,今天「GitHub 热点速览」给大家带来了一款能够轻松关闭 Windows 11 系统广告的工具「OFGB」,它开箱即用、界面简洁、操...

千姿百态,瞬息万变,Win11系统NeoVim打造全能/全栈编辑器(前端/Css/Js/Vue/Golang/Ruby/ChatGpt)

我曾经多次向人推荐Vim,其热情程度有些类似现在卖保险的,有的时候,人们会因为一些弥足珍贵的美好暗暗渴望一个巨大的负面,比如因为想重温手动挡的快乐而渴望买下一辆二十万公里的老爷车,比如因为所谓完美的音质而舍不得一个老旧的有线耳机,比如因为一个铜炉火锅而期待北京那漫长而寒冷的冬天。

win11安装ubuntu(by wsl2)

记录windows上通过wsl2安装ubuntu的过程,并安装docker验证系统是否符合预期

[转帖]Win11激活怎么跳过联网?Win11跳过联网激活图文教程

https://www.zmtc.com/pc/3876.html 从Windows 11开始,微软要求用户需先联网激活系统才能进入桌面,这导致没有网络环的用户就无法完成激活步骤。此外,很多电商平台销售的笔记本,一旦联网激活过,就不再提供7天无理由退货。所以很多用户都希望Win11能跳过联网激活,今

[转帖]【有效解决】Edge浏览器提示你的连接不是专用连接怎么办?

https://www.xitongzhijia.net/xtjc/20230524/290887.html Win11正式版iso镜像最新(22H2新版) V2023 大小:4.22 GB类别:Windows 11系统 Edge浏览器提示你的连接不是专用连接怎么办?近期有用户在使用Edge浏览器时

驱动开发:内核监控进程与线程回调

在前面的文章中`LyShark`一直在重复的实现对系统底层模块的枚举,今天我们将展开一个新的话题,内核监控,我们以`监控进程线程`创建为例,在`Win10`系统中监控进程与线程可以使用微软提供给我们的两个新函数来实现,此类函数的原理是创建一个回调事件,当有进程或线程被创建或者注销时,系统会通过回调机制将该进程相关信息优先返回给我们自己的函数待处理结束后再转向系统层。