335 Star 1.5K Fork 862

MindSpore / docs

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
operator_list_parallel.md 24.99 KB
一键复制 编辑 原始数据 按行查看 历史
宦晓玲 提交于 2023-07-21 15:17 . modify the md links in 1.5

MindSpore分布式算子支持

查看源文件

分布式算子

操作名 约束
mindspore.ops.Abs
mindspore.ops.ACos
mindspore.ops.Acosh
mindspore.ops.Add
mindspore.ops.ApproximateEqual
mindspore.ops.ArgMaxWithValue 输入在轴(axis)的维度进行切分时,分布式结果可能会和单机不一致
mindspore.ops.ArgMinWithValue 输入在轴(axis)的维度进行切分时,分布式结果可能会和单机不一致
mindspore.ops.Asin
mindspore.ops.Asinh
mindspore.ops.Assign
mindspore.ops.AssignAdd
mindspore.ops.AssignSub
mindspore.ops.Atan
mindspore.ops.Atan2
mindspore.ops.Atanh
mindspore.ops.AvgPool 1. 数据格式只支持‘NCHW’;
2. 输出的H/W维的shape必须能被输入的H/W维的切分策略整除;
3. 如果切分H/W:
1) 当kernel_size <= stride时,输入切片大小需能被stride整除;
2) 不支持kernel_size > stride;
4. 在auto_parallel模式下,不支持双递归算法。
mindspore.ops.BatchMatMul 不支持transpose_a=True
mindspore.ops.BatchNorm 不支持GPU
mindspore.ops.BesselI0e
mindspore.ops.BesselI1e
mindspore.ops.BiasAdd
mindspore.ops.BroadcastTo
mindspore.ops.Cast Auto Parallel和Semi Auto Parallel模式下,配置策略不生效
mindspore.ops.Ceil
mindspore.ops.Concat 输入(input_x)在轴(axis)所对应的维度不能切分,切分后,在数学逻辑上和单机不等价
mindspore.ops.Conv2D 1. 数据格式只支持‘NCHW’;
2. 如果涉及相邻节点数据交换:
1) 只支持Ascend;
2) 只支持切分N/C-in/C-out/W维度;
3. 当group或dilation的值不为1时,只支持对N维进行切分;
4. weight的后两维不支持切分;
5. 输出的H/W维的shape必须能被输入的H/W维的切分策略整除;
6. pad模式下:不支持切分H/W维;
7. valid模式下:如果切分H/W:
1) 当kernel_size <= stride时,输入切片大小需能被stride整除;
2) 不支持kernel_size > stride;
8. same模式下:如果切分H/W:
1) 当kernel_size <= stride时,输入切片大小需能被stride整除;
2) 当kernel_size > stride时:
a) 不支持切分H维;
b) W维的原始长度需能被stride整除;
c) W维的输入切片大小需大于(kernel_size - stride + 1)/ 2;
d) 不支持 kernel_size - stride = 1;
mindspore.ops.Conv2DBackpropInput 1. 数据格式只支持‘NCHW’;
2. 如果涉及相邻节点数据交换:
1) 只支持Ascend;
2) 只支持切分N/C-in/C-out/W维度;
3. 当group或dilation的值不为1时,只支持对N维进行切分;
4. weight的后两维不支持切分;
5. 输出的H/W维的shape必须能被输入的H/W维的切分策略整除;
6. pad模式下:不支持切分H/W维;
7. valid模式下:不支持切分H/W维;
8. same模式下:
1) 不支持切分H维;
2) 如果切分W维:
a) W维的原始输入大小乘以stride需等于W维的原始输出shape;
b) 如果kernel_size > stride,相邻卡间需发送及接收数据,且W维发送接收的数据长度需小于切片大小;
mindspore.ops.Cos
mindspore.ops.Cosh
mindspore.ops.Div
mindspore.ops.DivNoNan
mindspore.ops.Dropout
mindspore.ops.DropoutDoMask 需和DropoutGenMask联合使用
mindspore.ops.DropoutGenMask 需和DropoutDoMask联合使用,不支持配置切分策略
mindspore.ops.Elu
mindspore.ops.EmbeddingLookup 同Gather
mindspore.ops.Equal
mindspore.ops.Erf
mindspore.ops.Erfc
mindspore.ops.Exp
mindspore.ops.ExpandDims
mindspore.ops.Expm1
mindspore.ops.Floor
mindspore.ops.FloorDiv
mindspore.ops.FloorMod
mindspore.ops.Gather 仅支持1维和2维的input_params,并且input_params的最后一维要32字节对齐(出于性能考虑);不支持标量input_indices;参数在轴(axis)所在维度切分时,不支持重复计算;不支持input_indices和input_params同时进行切分
mindspore.ops.GatherD dim所对应的维度不能切分;在auto_parallel模式下,不支持双递归算法。
mindspore.ops.GatherNd 第一个输入不能切分,第二个输入的最后一维不能切分;在auto_parallel模式下,不支持双递归算法。
mindspore.ops.GeLU
mindspore.ops.Greater
mindspore.ops.GreaterEqual
mindspore.ops.Inv
mindspore.ops.L2Normalize 输入(input_x)在轴(axis)对应的维度不能切,切分后,在数学逻辑上和单机不等价
mindspore.ops.Less
mindspore.ops.LessEqual
mindspore.ops.LogicalAnd
mindspore.ops.LogicalNot
mindspore.ops.LogicalOr
mindspore.ops.Log
mindspore.ops.Log1p
mindspore.ops.LogSoftmax 输入(logits)在轴(axis)对应的维度不可切分,切分后,在数学逻辑上和单机不等价
mindspore.ops.MatMul 不支持transpose_a=True
mindspore.ops.Maximum
mindspore.ops.MaxPool 1. 数据格式只支持‘NCHW’;
2. 输出的H/W维的shape必须能被输入的H/W维的切分策略整除;
3. 如果切分H/W:
1) 当kernel_size <= stride时,输入切片大小需能被stride整除;
2) 不支持kernel_size > stride;
4. 在auto_parallel模式下,不支持双递归算法。
mindspore.ops.Minimum
mindspore.ops.Mod
mindspore.ops.Mul
mindspore.ops.Neg
mindspore.ops.NotEqual
mindspore.ops.OneHot 仅支持输入(indices)是1维的Tensor,切分策略要配置输出的切分策略,以及第1和第2个输入的切分策略
mindspore.ops.OnesLike
mindspore.ops.Pow
mindspore.ops.PReLU weight的shape在非[1]的情况下,输入(input_x)的Channel维要和weight的切分方式一致
mindspore.ops.RealDiv
mindspore.ops.Reciprocal
mindspore.ops.ReduceMax 输入在轴(axis)的维度进行切分时,分布式结果可能会和单机不一致
mindspore.ops.ReduceMin 输入在轴(axis)的维度进行切分时,分布式结果可能会和单机不一致
mindspore.ops.ReduceSum
mindspore.ops.ReduceMean
mindspore.ops.ReLU
mindspore.ops.ReLU6
mindspore.ops.ReLUV2
mindspore.ops.Reshape 不支持配置切分策略,并且,在自动并行模式下,当reshape算子后接有多个算子,不允许对这些算子配置不同的切分策略
mindspore.ops.Round
mindspore.ops.Rsqrt
mindspore.ops.ScatterUpdate 第一个输入的第一维不能切分,第二个输入不能切分,第三个输入的前n维(n为第二个输入的维度)不能切分;在auto_parallel模式下,不支持双递归算法。
mindspore.ops.Select 在auto_parallel模式下,不支持双递归算法。
mindspore.ops.Sigmoid
mindspore.ops.SigmoidCrossEntropyWithLogits
mindspore.ops.Sign
mindspore.ops.Sin
mindspore.ops.Sinh
mindspore.ops.Softmax 输入(logits)在轴(axis)对应的维度不可切分,切分后,在数学逻辑上和单机不等价
mindspore.ops.SoftmaxCrossEntropyWithLogits 输入(logits、labels)的最后一维不能切分;有两个输出,正向的loss只支持取[0]
mindspore.ops.Softplus
mindspore.ops.Softsign
mindspore.ops.SparseGatherV2 同Gather
mindspore.ops.Split 轴(axis)所对应的维度不能切分,切分后,在数学逻辑上和单机不等价
mindspore.ops.Sqrt
mindspore.ops.Square
mindspore.ops.Squeeze
mindspore.ops.Stack
mindspore.ops.StridedSlice 仅支持值为全0的mask;需要切分的维度必须全部提取;输入在strides不为1对应的维度不支持切分
mindspore.ops.Slice 需要切分的维度必须全部提取
mindspore.ops.Sub
mindspore.ops.Tan
mindspore.ops.Tanh
mindspore.ops.Tile 仅支持对multiples配置切分策略
mindspore.ops.TopK 最后一维不支持切分,切分后,在数学逻辑上和单机不等价
mindspore.ops.Transpose
mindspore.ops.Unique 只支持重复计算的策略(1,)
mindspore.ops.UnsortedSegmentSum 输入input_x和segment_ids的切分配置必须在segment_ids的维度上保持一致
mindspore.ops.UnsortedSegmentMin 输入input_x和segment_ids的切分配置必须在segment_ids的维度上保持一致。注意:在segment id为空时,输出向量的对应位置会填充为输入类型的最大值。需要用户进行掩码处理,将最大值转换成0。否则容易造成数值溢出,导致通信算子上溢错误,从而引发Run Task Error
mindspore.ops.UnsortedSegmentMax 输入input_x和segment_ids的切分配置必须在segment_ids的维度上保持一致。注意:在segment id为空时,输出向量的对应位置会填充为输入类型的最小值。需要用户进行掩码处理,将最小值转换成0。否则容易造成数值溢出,导致通信算子上溢错误,从而引发Run Task Error
mindspore.ops.ZerosLike

重复计算是指,机器没有用满,比如:集群有8张卡跑分布式训练,切分策略只对输入切成了4份。这种情况下会发生重复计算。

1
https://gitee.com/mindspore/docs.git
git@gitee.com:mindspore/docs.git
mindspore
docs
docs
r1.5

搜索帮助

53164aa7 5694891 3bd8fe86 5694891