Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
FluidDoc
提交
7b945764
F
FluidDoc
项目概览
PaddlePaddle
/
FluidDoc
通知
8
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
23
列表
看板
标记
里程碑
合并请求
111
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
F
FluidDoc
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
23
Issue
23
列表
看板
标记
里程碑
合并请求
111
合并请求
111
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
7b945764
编写于
6月 24, 2018
作者:
T
typhoonzero
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
WIP add dist train howto
上级
b3617531
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
37 addition
and
0 deletion
+37
-0
source/user_guides/howto/training/dist_train_howto.md
source/user_guides/howto/training/dist_train_howto.md
+37
-0
未找到文件。
source/user_guides/howto/training/dist_train_howto.md
0 → 100644
浏览文件 @
7b945764
# Fluid分布式训练手册
## 分布式训练基本思想
分布式深度学习训练通常分为两种并行化方法:数据并行,模型并行,参考下图:
<img
src=
"parallelism.png"
>
在模型并行方式下,模型的层和参数将被分布在多个节点上,模型在一个mini-batch的前向和反向训练中,将经过多次跨
节点之间的通信。每个节点只保存整个模型的一部分;在数据并行方式下,每个节点保存有完整的模型的层和参数,每个节点
独自完成前向和反向计算,然后完成梯度的聚合并同步的更新所有节点上的参数。Fluid目前版本仅提供数据并行方式,另外
诸如模型并行的特例实现(超大稀疏模型训练)功能将在后续的文档中予以说明。
在数据并行模式的训练中,Fluid使用了两种通信模式,用于应对不同训练任务对分布式训练的要求,分别为RPC通信和Collective
通信。其中RPC通信方式使用
[
gRPC
](
https://github.com/grpc/grpc/
)
,Collective通信方式使用
[
NCCL2
](
https://developer.nvidia.com/nccl
)
。下面是一个RPC通信和Collective通信的横向对比:
| Feature | Collective | RPC |
| ------------- |:-------------:| -----:|
| Ring-Based Comm | Yes | No |
| Async Training | Reduce ranks | Fast, Direct async updates |
| Dist-Sparse-Table | No | Yes |
| Fault-Tolerant | No | Yes|
| Performance | Faster | Fast |
*
RPC通信方式的结构:
<img
src=
""
>
*
NCCL2通信方式的结构:
<img
src=
""
>
## 使用parameter server方式的训练
## 使用NCCL2通信方式的训练
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录