在Docker中使用MindSpore GPU版本

news2024/11/16 13:44:28

文章目录

  • 在Docker中使用MindSpore GPU版本
    • 获取安装命令
    • 安装
      • 安装nvidia-container-toolkit
      • 获取MindSpore镜像
      • 测试
        • 运行MindSpore镜像
        • 运行代码
    • 使用VSCode开发

在Docker中使用MindSpore GPU版本

参考官方文档:安装指南

获取安装命令

如图所示
在这里插入图片描述
命令为

docker pull swr.cn-south-1.myhuaweicloud.com/mindspore/mindspore-gpu-cuda11.6:2.0.0

安装

这里选择已经预安装MindSpore x.y.z GPU版本的生产环境。(CUDA10.1或CUDA11.1或CUDA11.6后端)

安装nvidia-container-toolkit

依次执行:

distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
      && curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
      && curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | \
            sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
            sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

获取MindSpore镜像

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

{version} 替换为对应MindSpore版本,如2.0.0。
{cuda_version} 替换为对应MindSpore依赖的CUDA版本,包括cuda10.1,cuda11.1和cuda11.6。

例如执行前面获得的命令:

docker pull swr.cn-south-1.myhuaweicloud.com/mindspore/mindspore-gpu-cuda11.6:2.0.0

如果需要获取构建环境或者运行时环境镜像:

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

在这里插入图片描述

{tag} 替换为对应上述表格中的标签,包括devel和runtime。

测试

运行MindSpore镜像

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

其中:

  • –rm 表示退出容器后删除容器(可以不加这个参数)
  • -v /dev/shm:/dev/shm 将NCCL共享内存段所在目录挂载至容器内部;
  • –runtime=nvidia 用于指定容器运行时为nvidia-container-runtime;
  • {tag}对应上述表格中的标签。
  • {cuda_version} 对应MindSpore依赖的CUDA版本,包括cuda10.1,cuda11.1和cuda11.6。

例如使用前面下载的镜像:

docker run --rm -it -v /dev/shm:/dev/shm --runtime=nvidia swr.cn-south-1.myhuaweicloud.com/mindspore/mindspore-gpu-cuda11.6:2.0.0 /bin/bash

如需使用可视化调试调优工具MindSpore Insight,需设置–network参数为host模式,例如:

docker run --rm -it -v /dev/shm:/dev/shm --network host --runtime=nvidia swr.cn-south-1.myhuaweicloud.com/mindspore/mindspore-gpu-cuda11.6:2.0.0 /bin/bash

运行代码

进入容器后,运行代码并检查输出:

python -c "import mindspore;mindspore.run_check()"

如果输出为:

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

则说明安装成功。

使用VSCode开发

见在Windows 11 中安装和使用 WSL 2:使用VSCode连接容器。

进入容器后,新建 test_docker.py ,添加以下代码:

import numpy as np
import mindspore as ms
import mindspore.ops as ops

ms.set_context(device_target="GPU")

x = ms.Tensor(np.ones([1,3,3,4]).astype(np.float32))
y = ms.Tensor(np.ones([1,3,3,4]).astype(np.float32))
print(ops.add(x, y))

然后打开终端运行:

python test_docker.py

输出结果如下说明环境配置成功:

[[[[2. 2. 2. 2.]
   [2. 2. 2. 2.]
   [2. 2. 2. 2.]]

  [[2. 2. 2. 2.]
   [2. 2. 2. 2.]
   [2. 2. 2. 2.]]

  [[2. 2. 2. 2.]
   [2. 2. 2. 2.]
   [2. 2. 2. 2.]]]]

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/696580.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MFC将二维数组写入文件中并进行读取

MFC将二维数组写入文件中并进行读取 当前项目需要将二维数组写入到本地文件中,并在另一个对话框中进行读取。网上查了很多资料,基本都是写字符串到文件中的,想依葫芦画瓢仿照字符串的写法来写二维数组,发现在写文件状态下&#x…

护网是什么?为什么【网安人】都想参加!

一、什么是护网行动? 护网行动是以公安部牵头的,用以评估企事业单位的网络安全的活动。 具体实践中。公安部会组织攻防两方,进攻方会在一个月内对防守方发动网络攻击,检测出防守方(企事业单位)存在的安全漏…

Flink之FileSink将数据写入parquet文件

Flink之FileSink将数据写入parquet文件 在使用FileSink将数据写入列式存储文件中时必须使用forBulkFormat,列式存储文件如ORCFile、ParquetFile,这里就以ParquetFile为例结合代码进行说明. 在Flink1.15.3中是通过构造ParquetWriterFactory然后调用forBulkFormat方法将构造好的…

第9章 异常处理

第9章 异常处理 9.1 Java异常处理 try-catch-finally ​ ​ 9.2 Scala异常处理 ​ ​ package chapter09object Test01_Exception {def main(args: Array[String]): Unit {try {val n 10 / 1} catch {case e: ArithmeticException > {println("发生算数异常&quo…

【Java高级编程】Java常用类

Java常用类 1、字符串相关的类1.1、字符串相关的类:String1.2、字符串相关的类:String常用方法1.3、String与基本数据类型、包装类之间的转换1.4、String与char[]之间的转换1.5、String与byte[]之间的转换1.6、String、StringBuffer、StringBuilder三者的…

element-plus中的el-table如何动态合并行(复制粘贴即可使用 亲测有效!)

demo场景: 一个 table,由5列组成,其 prop 分别为’resource_name’, ‘scene_name’, ‘type’, ‘content’, ‘desc’,渲染 table 的数据来源于接口。现在需要将 propdesc的这一列,按照resource_name 相等时进行合并…

使用EVPN构建二层VPN

一、业务背景 EVPN实例用于将EVPN路由与公网路由隔离。不同EVPN实例的路由之间也是相互隔离的。在所有EVPN组网方案中,都需要配置EVPN实例。 二、业务拓扑 三、配置步骤 1、配置基本接口IP 2、配置核心网IGP和LDP 3、配置PE和PE之间的BGP EVPN邻居关系 4、配置EVPN的源地址 …

Linux5.10 NoSQL 之 Redis配置与优化及数据类型

文章目录 计算机系统5G云计算第四章 LINUX NOSQL 之 Redis配置与优化及数据类型一、关系数据库与非关系型数据库1.关系型数据库2.非关系型数据库3.关系型数据库和非关系型数据库区别4.非关系型数据库产生背景5.总结 二、Redis简介1.Redis 具有以下几个优点2.使用场景3.哪些数据…

一、枚举类型——使用 EnumMap 分发

使用 EnumMap 可以实现“真正的”双路分发,它是专门为 enum 设计的高效 Map。我们的目标是在两个未知类型中切换,因此由 EnumMap 组成的 EnumMap (嵌套 EnumMap )可以实现双路分发。 RoShamBo5.java import java.util.EnumMap;imp…

如何 设计一个高质量的 API 接口?

目录 你是否也感同身受? 优秀API的特质 自解释 易学习 易使用 难误用 API 设计原则 1. 充分原则 2. 单一视角原则 3. 单一功能原则 4. 简单原则 5. 抽象原则 6. 兼容扩展原则 7. 最小惊讶原则 8. 低耦合原则 9. 正交原则 10. 易测试原则 11. 统一原…

怎样查看电脑开关机日志

最近想查看家里电脑是否每天都正常关机了。 家里的是Windows电脑。 使用windows自带功能或者说自带工具无疑是最方便的。 按下【开始→运行】,输入eventvwr,按下回车键。 打开事件查看器,展开Windows日志,双击系统。 选择筛…

Redis内存满分析

操作0: dbsize计算db大小,判断是哪个db的问题,发现是db1的问题。 操作1: Redis中先备份xxx.rdb文件,然后使用下面的工具进行分析 Redis内存分析工具之redis-rdb-tools的安装与使用_薛定谔的猫io的博客-CSDN博客 结…

如何在Windows 10中移动文档文件夹位置

默认情况下,Windows将你的个人文档文件夹存储在你帐户的%UserProfile%文件夹中(例如:“C:\Users\Kent”)。 你可以将“文档”文件夹中文件的存储位置更改为硬盘驱动器、其他驱动器或网络上的其他计算机上的其他位置。 一、如果你当前的文档文件夹受 OneDrive 保护,那么你…

记录一个iOS无法找到堆栈信息的崩溃修复

崩溃提示 2023-06-28 21:14:46.9624560800 -[UIDynamicCatalogColor length]: unrecognized selector sent to instance 0x6000073292c0 崩溃如下图所示 思路,既然我们无法通过调用的堆栈信息查找,那就试试通过崩溃对象的内存地址查看该对象的详细信息 …

攻防世界-web-mfw

题目描述:如图,只有这样的三个页面 home页面: about页面: contact页面: burp抓包可以看到返回的html中刚好对应了三个页面,以及注释掉的flag 尝试将page设置成flag,但是并没有什么反应。 1. 思…

【Web 网络管理】网络杂谈(8)之基于 Web 的网络管理

涉及知识点 基于 Web 的网络管理模式,WBM的介绍与标准,WBM的实现方式与关键技术,WBM的安全性考虑。深入了解WBM技术。 原创于:CSDN博主-《拄杖盲学轻声码》,更多内容可去其主页关注下哈,不胜感激 文章目录…

污水厂3D可视化智慧大屏实现统一数据管理和信息化建设

随着城市化进程的加速和人口的不断增长,污水排放量也随之增加。3D可视化技术的出现,为污水厂的管理和运营带来了新的思路和方法。本文将探讨污水厂3D可视化智慧大屏系统的意义。 首先,污水厂3D可视化智慧大屏系统可以帮助管理人员更好地了解…

Unable to open debugger port (127.0.0.1:55305): java.net.BindException

如图idea启动服务端口被占用,如何解决 1.修改启动服务的端口 修改tomcat的启动端口,避免和windows已启动端口占用(不推荐) 2.杀死占用服务的端口 winR 打开命令行窗口 netstat -aon|findstr “55305” taskkill -f -pid 25512…

汽车租赁系统

汽车租赁系统,java,ssm,tomcat,mysql。包含数据库文件,源码,和项目运行演示介绍视频 idea和eclipse都可以运行。 系统介绍: 角色:管理员,用户 主要功能:汽车资…

解决 vue2 productionTip=false设置无效

原因:在最新版本的Chrome中,在script中使用settimeout,将在允许第一个js完成后立即回调。 第一种: 直接在源码中,将productionTip:true直接改成false 第二种,则是在红框位置改成大于0的任意数值…