RowWiseParallel¶
按行切分策略是模型并行中的一个并行策略。本策略会尝试对标识 Layer 的 weight
(如有)在第一维切分, 本策略是针对 paddle.nn.Linear
与 paddle.nn.Embedding
设计, 如果标识的 Layer 不属于这两个类,本策略会尝试切分 Layer 中的 weight
(如有)。
注解
weight
需要有两个纬度。
参数¶
is_input_parallel (bool,可选) - 标识 Layer 的输入是否为局部张量。如果 Layer 的输入为全局张量,额外的计算会被引入。默认为 True,即标识 Layer 的输入为局部变量。
代码示例
>>> import paddle
>>> import paddle.distributed as dist
>>> class MLP(paddle.nn.Layer):
... def __init__(self):
... super().__init__()
... self.fc1 = paddle.nn.Linear(8, 8)
... self.fc2 = paddle.nn.Linear(8, 8)
...
... def forward(self, input):
... return self.fc2(self.fc1(input))
>>> layer = MLP()
>>> mp_config = {
... 'fc1': dist.RowWiseParallel()
... }