昇思MindSpore:分布式并行,让快更快

加入CSDN的昇思MindSpore社区,学习更多AI知识。

 

代码路径

代码

resnet.pyresnet50_distributed_training.py是训练网络定义脚本,run.sh是分布式训练执行脚本。

准备数据集

采用CIFAR-10数据集,由10类32*32的彩色图片组成,每类包含6000张图片,其中训练集共50000张图片,测试集共10000张图片。

将数据集下载并解压到本地,解压后文件夹为cifar-10-batches-bin

配置分布式环境

CPU上数据并行主要分为单机多节点和多机多节点两种并行方式(一个训练进程可以理解为一个节点)。在运行训练脚本前,需要搭建组网环境,主要是环境变量配置和训练脚本里初始化接口的调用。

环境变量配置如下:

export MS_WORKER_NUM=8                # Worker number
export MS_SCHED_HOST=127.0.0.1        # Scheduler IP address
export MS_SCHED_PORT=6667             # Scheduler port
export MS_ROLE=MS_WORKER              # The role of this node: MS_SCHED represents the scheduler, MS_WORKER represents the worker

其中,

  • MS_WORKER_NUM:表示worker节点数,多机场景下,worker节点数是每机worker节点之和。

  • MS_SCHED_HOST:表示scheduler节点ip地址。

  • MS_SCHED_PORT:表示scheduler节点服务端口,用于接收worker节点发送来的ip和服务端口,然后将收集到的所有worker节点ip和端口下发给每个worker。

  • MS_ROLE:表示节点类型,分为worker(MS_WORKER)和scheduler(MS_SCHED)两种。不管是单机多节点还是多机多节点,都需要配置一个scheduler节点用于组网。

     

启动训练

在CPU平台上,以单机8节点为例,执行分布式训练。通过以下shell脚本启动训练,指令bash run.sh cifar-10-batches-bin

启动后台运行,会有相关日志生成。

 

打开worker日志,发现出现了异常。是内存不足了。

 修改worker数量为2.

worker日志里有训练的loss打印。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值