DistributeTranspilerConfig_cn.rst 1.6 KB
Newer Older
H
Hao Wang 已提交
1 2 3 4 5
.. _cn_api_fluid_transpiler_DistributeTranspilerConfig:

DistributeTranspilerConfig
-------------------------------

L
liuwei1031 已提交
6
:api_attr: 声明式编程模式(静态图)
7

H
Hao Wang 已提交
8 9
.. py:class:: paddle.fluid.transpiler.DistributeTranspilerConfig

T
tangwei12 已提交
10
单机任务切换为分布式任务的配置类,用户可根据需求进行配置,如指定同步/异步训练,指定节点个数及模型切分逻辑。
11

T
tangwei12 已提交
12
返回:None
H
Hao Wang 已提交
13

T
tangwei12 已提交
14
.. py:attribute:: slice_var_up (bool)
H
Hao Wang 已提交
15

T
tangwei12 已提交
16 17 18 19
是否为Pserver将张量切片, 默认为True, bool类型属性, 默认为True。该参数将指定是否将参数/梯度切分后均匀分布于多个PServer上。slice_var_up为True的情况下,会将参数均匀切分后分布于多个PServer端,使每个PServer的负载相对均衡。


.. py:attribute:: split_method (PSDispatcher)
H
Hao Wang 已提交
20

21
参数分发的方式,当前支持的方法包括 :ref:`cn_api_fluid_transpiler_RoundRobin` 和 :ref:`cn_api_fluid_transpiler_HashName` 两种, 默认为RoundRobin。
H
Hao Wang 已提交
22 23 24 25 26

注意: 尝试选择最佳方法来达到负载均衡。

.. py:attribute:: min_block_size (int)

27
参数切片时,最小数据块的大小,默认为8192。
H
Hao Wang 已提交
28

29
注意: 根据:https://github.com/PaddlePaddle/Paddle/issues/8638#issuecomment-369912156 , 当数据块大小超过2MB时,我们可以有效地使用带宽。如果你想更改它,请详细查看slice_variable函数。
H
Hao Wang 已提交
30 31 32 33 34

**代码示例**

.. code-block:: python

35 36 37
        from paddle.fluid.transpiler.ps_dispatcher import RoundRobin
        import paddle.fluid as fluid

H
Hao Wang 已提交
38 39
        config = fluid.DistributeTranspilerConfig()
        config.slice_var_up = True
40 41
        config.split_method = RoundRobin
        config.min_block_size = 81920
H
Hao Wang 已提交
42 43 44