Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
FluidDoc
提交
7259f652
F
FluidDoc
项目概览
PaddlePaddle
/
FluidDoc
通知
5
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看板
体验新版 GitCode,发现更多精彩内容 >>
提交
7259f652
编写于
11月 27, 2018
作者:
T
typhoonzero
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
follow comments
上级
cf9d7465
变更
3
显示空白变更内容
内联
并排
Showing
3 changed file
with
6 addition
and
21 deletion
+6
-21
doc/fluid/api/api_guides/index.rst
doc/fluid/api/api_guides/index.rst
+0
-2
doc/fluid/api/api_guides/low_level/distributed/index.rst
doc/fluid/api/api_guides/low_level/distributed/index.rst
+0
-8
doc/fluid/api/api_guides/low_level/distributed/sync_training.rst
...id/api/api_guides/low_level/distributed/sync_training.rst
+6
-11
未找到文件。
doc/fluid/api/api_guides/index.rst
浏览文件 @
7259f652
...
...
@@ -12,6 +12,4 @@ API使用指南
low_level/metrics.rst
low_level/model_save_reader.rst
low_level/inference.rst
low_level/distributed/index.rst
doc/fluid/api/api_guides/low_level/distributed/index.rst
已删除
100644 → 0
浏览文件 @
cf9d7465
=============
分布式训练
=============
.. toctree::
:maxdepth: 1
sync_training.rst
\ No newline at end of file
doc/fluid/api/api_guides/low_level/distributed/sync_training.rst
浏览文件 @
7259f652
...
...
@@ -5,7 +5,7 @@
############
Fluid支持数据并行的分布式同步训练,API使用 :code:`DistributedTranspiler` 将单机网络配置转换成可以多机执行的
:code:`pserver` 端程序和 :code:`trainer` 端程序
,
用户在不同的节点执行相同的一段代码,根据环境变量或启动参数,
:code:`pserver` 端程序和 :code:`trainer` 端程序
。
用户在不同的节点执行相同的一段代码,根据环境变量或启动参数,
可以执行对应的 :code:`pserver` 或 :code:`trainer` 角色。Fluid分布式同步训练同时支持pserver模式和NCCL2模式,
在API使用上有差别,需要注意。
...
...
@@ -31,20 +31,15 @@ API详细使用方法参考 :ref:<DistributeTranspiler> ,简单实例用法:
- :code:`trainer_id` : trainer节点的id,从0到n-1,n为当前训练任务中trainer节点的个数
- :code:`program` : 被转换的 :code:`program` 默认使用 :code:`fluid.default_main_program()`
- :code:`pservers` : 当前训练任务中pserver节点的IP端口列表
- :code:`trainers` : 当前训练任务中trainer节点的个数(注意NCCL2模式中,此项参数是字符串,指定trainer节点的IP端口列表),
注意,在pserver模式下,trainer节点个数可以和pserver节点个数不一致,比如使用20个pserver和50个trainer。在实际训练任务
中,您可以通过调整pserver节点和trainer节点个数找到最佳性能。
- :code:`trainers` : int类型,当前训练任务中trainer节点的个数(NCCL2模式中,此项参数是字符串,指定trainer节点的IP端口列表),注意,在pserver模式下,trainer节点个数可以和pserver节点个数不一致,比如使用20个pserver和50个trainer。在实际训练任务中,您可以通过调整pserver节点和trainer节点个数找到最佳性能。
- :code:`sync_mode` : 是否是同步训练模式,默认为True,不传此参数也默认是同步训练模式
其中,支持的config包括:
- :code:`slice_var_up` : 配置是否切分一个参数到多个pserver上进行优化,默认开启。此选项适用于模型参数个数少,
但需要使用大量节点的场景,有利于提升pserver端计算并行度
- :code:`split_method` : 配置transpiler分配参数(或参数的切片)到多个pserver的方式,
默认为"RoundRobin",也可以使用"HashName"
- :code:`min_block_size` : 如果配置了参数切分,指定最小Tensor的切分大小,防止RPC请求包过小,默认为8192,一般情况
不需要调整此项参数
- :code:`slice_var_up` : 配置是否切分一个参数到多个pserver上进行优化,默认开启。此选项适用于模型参数个数少,但需要使用大量节点的场景,有利于提升pserver端计算并行度
- :code:`split_method` : 配置transpiler分配参数(或参数的切片)到多个pserver的方式,默认为"RoundRobin",也可以使用"HashName"
- :code:`min_block_size` : 如果配置了参数切分,指定最小Tensor的切分大小,防止RPC请求包过小,默认为8192,一般情况不需要调整此项参数
- :code:`enable_dc_asgd` : 是否开启 :code:`DC-ASGD` 此选项在异步训练中生效,启用异步训练补偿算法
- :code:`mode` : 可以选择"pserver"或"nccl2",指定使用pserver模式或NCCL2模式分布式训练
- :code:`print_log` : 是否开启transpiler debug日志,此项为开发调试使用
...
...
@@ -82,5 +77,5 @@ NCCL2模式分布式训练
- :code:`trainer_id` : trainer节点的id,从0到n-1,n为当前训练任务中trainer节点的个数
- :code:`program` 和 :code:`startup_program` : 分别为Fluid 模型的主配置program和初始化startup_program
- :code:`trainers` :
指定当前任务所有trainer的IP和端口号,仅用于NCCL2初始化
- :code:`trainers` :
字符串类型,指定当前任务所有trainer的IP和端口号,仅用于NCCL2初始化(pserver模式中,此参数为int,指定trainer节点的个数)
- :code:`current_endpoint` : 当前任务的当前节点的IP和端口号
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录