windows 部署 mindspore GPU 开发环境

news/2024/12/22 13:05:49/

基础环境

  • windows 环境: Windows 11
    • 版本:22H2
    • 操作系统版本:22621.2283
  • wsl2: 1.2.5.0
    Docker Desktop: Docker Desktop 4.23.0
    CUDA driver for WSL 版本: 535.104.07

宿主机上的 nvidia 环境如下所示:
在这里插入图片描述

宿主机安装套件

在宿主机上安装 nvidia-container-toolkit

# Acquire version of operating system version
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.listsudo apt-get update && sudo apt-get install -y nvidia-container-toolkit nvidia-docker2
sudo systemctl restart docker

配置 Docker Engine

/etc/docker/daemon.json 中配置,或是在 Docker Desktop -> settings -> Docker Engine 中配置让Docker可以使用 nvidia-container-runtime

  • /etc/docker/daemon.json 中配置方法如下所示
vim /etc/docker/daemon.json{"runtimes": {"nvidia": {"path": "nvidia-container-runtime","runtimeArgs": []}}
}
  • Docker Desktop -> settings -> Docker Engine 中配置如下所示
    在这里插入图片描述

获取MindSpore镜像

对于GPU后端,可以直接使用以下命令获取最新的稳定镜像:

docker pull swr.cn-south-1.myhuaweicloud.com/mindspore/mindspore-gpu-{cuda_version}:{version}

docker pull swr.cn-south-1.myhuaweicloud.com/mindspore/mindspore-gpu-{cuda_version}:{version}
其中:

  • {version} 对应MindSpore版本,如1.5.0。
  • {cuda_version} 对应MindSpore依赖的CUDA版本,包括cuda10.1,cuda11.1和cuda11.6。
    另外,如果需要获取构建环境或者运行时环境镜像:

运行MindSpore镜像

执行以下命令启动Docker容器实例:

docker run -it -v /dev/shm:/dev/shm --runtime=nvidia swr.cn-south-1.myhuaweicloud.com/mindspore/mindspore-gpu-{cuda_version}:{tag} /bin/bash

其中:

  • -v /dev/shm:/dev/shm 将NCCL共享内存段所在目录挂载至容器内部;
  • --runtime=nvidia 用于指定容器运行时为 nvidia-container-runtime
  • {tag} 对应上述表格中的标签。
  • {cuda_version} 对应MindSpore依赖的CUDA版本,包括cuda10.1,cuda11.1和cuda11.6。

验证是否成功安装

按照上述步骤进入MindSpore容器后,测试Docker是否正常工作,请运行下面的Python代码并检查输出:

python -c "import mindspore;mindspore.set_context(device_target='GPU');mindspore.run_check()"

如果输出:

MindSpore version: 版本号
The result of multiplication calculation is correct, MindSpore has been installed on platform [GPU] successfully!

在这里插入图片描述

运行程序

写好的程序放在 /dev/shm 目录映射的本机目录下,在容器中执行即可

例如:我将容器的 /dev/shm 映射到了本机的 D:\DockerDesktopWSL\ContainerFile\mindspore 目录
在这里插入图片描述
在容器中执行相关程序即可


http://www.ppmy.cn/news/1120597.html

相关文章

Git创建干净分支,本地操作不依赖任何分支

clone远程项目: git clone gittest.git查看分支: git branch -a创建新分支: git checkout --orphan test, 返回Switched to a new branch test删除当前项目文件夹下所有文件: git rm -rf .提交变更: git commit -m "new branch for test"查看分支: git branch -a, 发…

C语言实现循环双链表

在C语言中,实现一个循环双链表需要定义一个节点结构体,这个结构体包含三个字段:数据字段,指向前一个节点的指针,以及指向下一个节点的指针。定义节点结构体: 1)定义节点结构体: typedef struc…

电脑桌面透明便签软件是哪个?

在现代快节奏的工作环境中,许多上班族都希望能够在电脑桌面上方便地记录工作资料、重要事项、工作流程等内容。为了解决这个问题,一款优秀的电脑桌面便签软件是必不可少的。在选择桌面便签软件时,许多用户也希望便签软件能够与电脑桌面壁纸相…

蓝桥杯每日一题2023.9.22

4960. 子串简写 - AcWing题库 题目描述 题目分析 原本为纯暴力但是发现会超时,可以加入前缀和,从前往后先记录一下每个位置c1出现的次数 再从前往后扫一遍,如果遇到c2就将答案加上此位置前的所有c1的个数(直接加上此位置的前缀…

C# 实现数独游戏

1.数独单元 public struct SudokuCell{public SudokuCell() : this(0, 0, 0){}public SudokuCell(int x, int y, int number){X x; Y y; Number number;}public int X { get; set; }public int Y { get; set; }public int Number { get; set; }} 2.数独创建 public class …

软考网络工程师IPSEC VPN配置考点总结

IPSEC VPN(华为)工作流程 配置安全ACL:配置哪些流量需要被保护配置安全提议:配置IPsec的参数配置IKE:预共享密钥,配置身份验证方法、加密算法等安全参数配置安全策略:1和2做关联在接口应用安全…

第一百五十一回 自定义组件综合实例:游戏摇杆二

文章目录 内容回顾实现方法位置细节示例代码我们在上一章回中介绍了如何实现 游戏摇杆相关的内容,本章回中将继续介绍这方面的知识.闲话休提,让我们一起Talk Flutter吧。 内容回顾 我们在上一章回中介绍了游戏摇杆的概念以及实现方法,并且通过示例代码演示了实现游戏摇杆的…

企业行政许可的种类有哪些?

从行政许可的性质、功能和适用条件的角度来说,大体可以划分为五类:普通许可、特许、认可、核准、登记。 1.普通许可 普通许可是一种允许符合特定条件的相对方行使某种权利的行为。在许多情况下,需要普通许可的活动都与国家安全、公共安全息…