MindSpore分布式算子支持

Linux Ascend GPU CPU 模型开发 初级 中级 高级

查看源文件

分布式算子

操作名

约束

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.BatchMatMul

不支持transpose_a=True

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.Cos

mindspore.ops.Cosh

mindspore.ops.Div

mindspore.ops.DivNoNan

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.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.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.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

同GatherV2

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份。这种情况下会发生重复计算。