当前位置:   article > 正文

Docker配置MindSpore-GPU环境_mindspore cuda docker

mindspore cuda docker

前言

项目指定MindSpore为推理框架,可惜该框架不支持在Windows系统中调用gpu,于是想通过Docker在Win10中调用MindSpore的Linux镜像,本文记录一下配置过程。

1.下载Docker-desktop

Docker的基础原理和安装可参考我之前的博文Docker学习笔记
Docker-desktop官网下载:https://www.docker.com/products/docker-desktop

2.拉取MindSpore镜像

MindSpore官网:https://www.mindspore.cn/install
在MindSpore官网拉取GPU版本的镜像,相关设置如下图所示:

在这里插入图片描述
运行安装命令:

docker pull swr.cn-south-1.myhuaweicloud.com/mindspore/mindspore-gpu-cuda11.1:2.2.14
  • 1

3.启动容器

输入以下命令启动容器:

docker run -it --gpus all --name mind -p 10023:23 swr.cn-south-1.myhuaweicloud.com/mindspore/mindspore-gpu-cuda11.1:2.2.14 /bin/bash
  • 1
  • --gpus all表示该容器可以调用主机所有GPU
  • --name mind表示将该容器重命名为mind
  • -p 10023:23表示将主机端口10023映射到容器端口23,方面后续通过ssh来进行通信

4.Pycharm插件安装

为了后续方便在Pycharm中启动容器,以及和容器进行通信,在Pycharm中安装DockerSource Synchronizer两个插件。

在这里插入图片描述
安装完Docker插件后,在Pycharm的Services中,可以找到新建立的容器,并进行一键启动。

在这里插入图片描述
启动之后,点击Teminal进入终端,即可在容器内部进行相关操作。

在这里插入图片描述

5.配置SSH连接

为了方便后续主机和容器进行文件的传输,在容器中配置ssh服务。
在容器中输入以下命令:

apt update
apt upgrade
apt install -y openssh-server
  • 1
  • 2
  • 3

之后,为容器设置密码:

passwd
  • 1

修改ssh配置文件:

vi /etc/ssh/sshd_config
  • 1

主要对以下四行内容取消注释,并进行修改:

Port 23
PermitRootLogin yes
PubkeyAuthentication yes
MaxStartups 10:30:60
  • 1
  • 2
  • 3
  • 4

修改完之后输入:wq保存退出。

重启ssh服务:

service ssh restart
  • 1

最后,在主机端进行ssh连接测试:

ssh root@127.0.0.1 -p 10023
  • 1

出现以下内容,表示顺利连接:

在这里插入图片描述

下面在Pycharm中,利用Source Synchronizer进行ssh配置,在右上角点开编辑文件:

在这里插入图片描述
输入下列信息:

在这里插入图片描述

设置完成之后,就可以直接在编辑器中,通过右键,一键将文件上传到/home路径中。

在这里插入图片描述

6.GPU环境验证

根据MindSpore官网的描述,可用以下代码进行环境验证:

import mindspore

mindspore.set_context(device_target='GPU')
mindspore.run_check()
  • 1
  • 2
  • 3
  • 4

将该文件上传到容器中进行运行,出现下列内容表示通过验证:

在这里插入图片描述

7.下载文件

该插件上传比较方便,如需下载文件,可以用ssh连接软件去连接docker,也可采用命令行的方式,比如,需要将容器中的mind:/home/mindyolo/model.ckpt文件下载到C:\Users\zxy\Desktop\cp路径下,可执行:

docker cp mind:/home/mindyolo/check.py C:\Users\zxy\Desktop\cp
  • 1

在这里插入图片描述

8. wsl环境迁移

配置完环境后,发现C盘少了50多个G,仔细检查发现docker会把镜像和容器文件存放在C:\Users\zxy\AppData\Local\Docker这个路径下,因此需要将其迁移到其它盘。

这里迁移千万不能直接手动复制文件夹,如果出错则会导致容器镜像丢失,下面用管理员命令打开控制台:

  1. 关闭wsl
wsl --shutdown
  • 1
  1. 导出数据
    对应存放路径修改为自己的,我这里临时建了一个temp文件用来存数据:
wsl --export docker-desktop D:\Docker\temp\docker-desktop.tar
wsl --export docker-desktop-data D:\Docker\temp\docker-desktop-data.tar
  • 1
  • 2
  1. 注销
wsl --unregister docker-desktop
wsl --unregister docker-desktop-data
  • 1
  • 2
  1. 导入数据
wsl --import docker-desktop D:\Docker\wsl\docker-desktop D:\Docker\temp\docker-desktop.tar
wsl --import docker-desktop-data D:\Docker\wsl\docker-desktop-data D:\Docker\temp\docker-desktop-data.tar
  • 1
  • 2

完成之后,C盘存储压力消除,其它一切正常。

参考

1.Source Synchronizer:https://plugins.jetbrains.com/plugin/7374-source-synchronizer
2.Window端Autogluon环境(Pycharm+Docker)搭建教程:https://zhuanlan.zhihu.com/p/370999648?utm_id=0
3.wsl2 docker 数据迁移步骤:https://zhuanlan.zhihu.com/p/581145587

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小惠珠哦/article/detail/843508
推荐阅读
相关标签
  

闽ICP备14008679号