Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
MindSpore
docs
提交
f94f0ed3
D
docs
项目概览
MindSpore
/
docs
通知
4
Star
2
Fork
2
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
f94f0ed3
编写于
4月 28, 2020
作者:
L
leiyuning
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update distributed_training.md
上级
5a2a9bbf
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
8 addition
and
8 deletion
+8
-8
tutorials/source_zh_cn/advanced_use/distributed_training.md
tutorials/source_zh_cn/advanced_use/distributed_training.md
+8
-8
未找到文件。
tutorials/source_zh_cn/advanced_use/distributed_training.md
浏览文件 @
f94f0ed3
...
...
@@ -18,15 +18,15 @@
<!-- /TOC -->
## 概述
在深度学习中,
数据集和参数量的规模越大,训练需的时间和硬件资源会随之增加,最后变成制约训练的1个瓶颈。分布式并行训练,可以降低对内存、计算性能等硬件的需求,是进行训练的1个重要优化手段。根据并行的原理及模式不同,业界主流的并行种类
有以下几种:
在深度学习中,
当数据集和参数量的规模越来越大,训练所需的时间和硬件资源会随之增加,最后会变成制约训练的瓶颈。分布式并行训练,可以降低对内存、计算性能等硬件的需求,是进行训练的重要优化手段。根据并行的原理及模式不同,业界主流的并行类型
有以下几种:
-
数据并行(Data Parallel):对数据进行切分的
一种
并行模式,一般按照batch维度切分,将数据分配到各个计算单元(worker)中,进行模型计算。
-
模型并行(Model Parallel):对模型进行切分的
一种
并行模式。MindSpore中支持层内模型并行模式,对参数切分后分配到各个计算单元中进行训练。
-
混合并行(Hybrid Parallel):涵盖数据并行和模型并行的
一种
并行模式。
-
数据并行(Data Parallel):对数据进行切分的并行模式,一般按照batch维度切分,将数据分配到各个计算单元(worker)中,进行模型计算。
-
模型并行(Model Parallel):对模型进行切分的并行模式。MindSpore中支持层内模型并行模式,对参数切分后分配到各个计算单元中进行训练。
-
混合并行(Hybrid Parallel):涵盖数据并行和模型并行的并行模式。
当前MindSpore也提供分布式并行训练的功能。它支持了多种模式包括:
-
`DATA_PARALLEL`
:数据并行模式。
-
`AUTO_PARALLEL`
:自动并行模式,融合了数据并行、模型并行及混合并行的
一种分布式并行模式,可以自动建立代价模型,为用户选择一
种并行模式。其中,代价模型指围绕Ascend 910芯片基于内存的计算开销和通信开销对训练时间建模,并设计高效的算法找到训练时间较短的并行策略。
-
`AUTO_PARALLEL`
:自动并行模式,融合了数据并行、模型并行及混合并行的
1种分布式并行模式,可以自动建立代价模型,为用户选择1
种并行模式。其中,代价模型指围绕Ascend 910芯片基于内存的计算开销和通信开销对训练时间建模,并设计高效的算法找到训练时间较短的并行策略。
本篇教程我们主要讲解如何在MindSpore上通过数据并行及自动并行模式训练ResNet-50网络。
> 本例面向Ascend 910 AI处理器硬件平台,暂不支持CPU和GPU场景。
...
...
@@ -38,7 +38,7 @@
在裸机环境(对比云上环境,即本地有Ascend 910 AI 处理器)进行分布式训练时,需要配置当前多卡环境的组网信息文件。如果使用华为云环境,因为云服务本身已经做好了配置,可以跳过本小节。
以Ascend 910 AI处理器为例,
一
个8卡环境的json配置文件示例如下,本样例将该配置文件命名为rank_table.json。
以Ascend 910 AI处理器为例,
1
个8卡环境的json配置文件示例如下,本样例将该配置文件命名为rank_table.json。
```
json
{
...
...
@@ -105,7 +105,7 @@ if __name__ == "__main__":
其中,
-
`mode=context.GRAPH_MODE`
:使用分布式训练需要指定运行模式为图模式(PyNative模式不支持并行)。
-
`enable_hccl=True`
:使能HCCL通信。
-
`device_id`
:卡物理序号,即卡所在机器中的实际序号。
-
`device_id`
:卡
的
物理序号,即卡所在机器中的实际序号。
-
`init()`
:完成分布式训练初始化操作。
## 数据并行模式加载数据集
...
...
@@ -260,7 +260,7 @@ def test_train_cifar(num_classes=10, epoch_size=10):
## 运行脚本
上述已将训练所需的脚本编辑好了,接下来通过命令调用对应的脚本。
目前MindSpore分布式执行采用单卡单进程运行方式,即每张卡上运行
一个进程,进程数量与使用的卡的数量一致。每个进程创建一
个目录,用来保存日志信息以及算子编译信息。下面以使用8张卡的分布式训练脚本为例,演示如何运行脚本:
目前MindSpore分布式执行采用单卡单进程运行方式,即每张卡上运行
1个进程,进程数量与使用的卡的数量一致。每个进程创建1
个目录,用来保存日志信息以及算子编译信息。下面以使用8张卡的分布式训练脚本为例,演示如何运行脚本:
```
bash
#!/bin/bash
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录