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

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