mindspore.ops.Abs |
无 |
mindspore.ops.ACos |
无 |
mindspore.ops.Acosh |
无 |
mindspore.ops.Add |
无 |
mindspore.ops.AddN |
无 |
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.AvgPool3D |
1. 数据格式只支持‘NCDHW’; 2. 如果涉及相邻节点数据交换,只支持Ascend; 3. W维不支持切分; 4. 输出的D/H维的shape必须能被输入的D/H维的切分策略整除; 5. valid模式下:如果切分D/H: 1)当kernel_size <= stride时,输入切片大小需能被stride整除; 2)不支持kernel_size > stride; 6. same/pad模式下:如果切分D/H: 1)kernel_size >= stride时,(包含pad的输入总长度 - kernel_size)需能被stride整除;kernel_size < stride时,pad需等于0且分片能被stride整除; 2)(输出总长度*stride - 输入总长度)需能被切分策略整除; 3)相邻卡间发送接收的数据长度需大于等于0且小于等于切片大小; 7. 在auto_parallel模式下,不支持双递归算法。 |
mindspore.ops.BatchMatMul |
不支持transpose_a=True |
mindspore.ops.BatchNorm |
不支持GPU |
mindspore.ops.BesselI0e |
无 |
mindspore.ops.BesselI1e |
无 |
mindspore.ops.BiasAdd |
无 |
mindspore.ops.BitwiseAnd |
无 |
mindspore.ops.BitwiseOr |
无 |
mindspore.ops.BitwiseXor |
无 |
mindspore.ops.BoundingBoxEncode |
1. 支持对输入(anchor_box)和输入(groundtruth_box)的第一维进行切分; 2. 输入(anchor_box)和输入(groundtruth_box)的切分策略必须一致 |
mindspore.ops.BroadcastTo |
无 |
mindspore.ops.Cast |
Auto Parallel和Semi Auto Parallel模式下,配置策略不生效 |
mindspore.ops.Cdist |
1. 当两输入都含有Batch维时,这一维的切分策略必须相等; 2.M 维度不支持切分 |
mindspore.ops.Ceil |
无 |
mindspore.ops.Concat |
输入(input_x)在轴(axis)所对应的维度不能切分,切分后,在数学逻辑上和单机不等价 |
mindspore.ops.Conv2D |
1. 数据格式只支持‘NCHW’; 2. 如果涉及相邻节点数据交换,只支持Ascend; 3. 当group的值不为1时,不支持切分C-in/C-out; 4. weight的后两维不支持切分; 5. 输出的H/W维的shape必须能被输入的H/W维的切分策略整除; 6. valid模式下:如果切分H/W: 1)当kernel_size <= stride时其中(kernel_size=dilation (kernel_size - 1) + 1,下同),输入切片大小需能被stride整除; 2)不支持kernel_size > stride; 7. same/pad模式下:如果切分H/W: 1)kernel_size >= stride时,(包含pad的输入总长度 - kernel_size)需能被stride整除;kernel_size < stride时,pad需等于0且分片能被stride整除; 2)( 输出总长度stride - 输入总长度)需能被切分策略整除; 3)相邻卡间发送接收的数据长度需大于等于0且小于等于切片大小; |
mindspore.ops.Conv3D |
1. 数据格式只支持‘NCDHW’; 2. 如果涉及相邻节点数据交换,只支持Ascend; 3. 当group的值不为1时,不支持切分C-in/C-out; 4. W维不支持切分,weight的后三维不支持切分; 5. 输出的D/H维的shape必须能被输入的D/H维的切分策略整除; 6. valid模式下:如果切分D/H: 1)当kernel_size <= stride时(kernel_size=dilation (kernel_size - 1) + 1,下同),输入切片大小需能被stride整除; 2)不支持kernel_size > stride; 7. same/pad模式下:如果切分D/H: 1)kernel_size >= stride时,(包含pad的输入总长度 - kernel_size)需能被stride整除;kernel_size < stride时,pad需等于0且分片能被stride整除; 2)( 输出总长度stride - 输入总长度)需能被切分策略整除; 3)相邻卡间发送接收的数据长度需大于等于0且小于等于切片大小; 8. 在auto_parallel模式下,不支持双递归算法。 |
mindspore.ops.Cos |
无 |
mindspore.ops.Cosh |
无 |
mindspore.ops.CropAndResize |
1. 不支持对输入(x)的H/W维和输入(boxes)的第二维进行切分; 2. 输入(boxes)和输入(box_index)第一维的切分策略必须一致 |
mindspore.ops.CumProd |
不支持axis维 切分 |
mindspore.ops.CumSum |
不支持axis维 切分 |
mindspore.ops.Div |
无 |
mindspore.ops.DivNoNan |
无 |
mindspore.ops.Dropout |
无 |
mindspore.ops.Elu |
无 |
mindspore.ops.EmbeddingLookup |
同Gather |
mindspore.ops.Equal |
无 |
mindspore.ops.Erf |
无 |
mindspore.ops.Erfc |
无 |
mindspore.ops.Erfinv |
无 |
mindspore.ops.Exp |
无 |
mindspore.ops.ExpandDims |
无 |
mindspore.ops.Expm1 |
无 |
mindspore.ops.Floor |
无 |
mindspore.ops.FloorDiv |
无 |
mindspore.ops.FloorMod |
无 |
mindspore.ops.Gamma |
1. shape 为tuple,但可以对shape 进行切分,如shape=(8, 16),对应的策略可以为(2, 4); 2. alpha 和beta 对应的策略必须为全1; 3. 当shape 切分策略不为全1时,结果和单卡不一致 |
mindspore.ops.Gather |
1. 均匀切分时: 1)仅支持一维和二维的input_params,并且input_params的切片的最后一维要32字节对齐(出于性能考虑); 2)不支持标量input_indices; 3)参数在轴(axis)所在维度切分时,不支持重复计算; 4)不支持input_indices和input_params同时进行切分; 5)axis=0且参数在轴(axis)所在维度切分时,支持配置输出切分策略,合法的输出切分策略为(indices_strategy, param_strategy[1:]) 或 ((indices_strategy[0]*param_strategy[0], indices_strategy[1:]), param_strategy[1:]) 2. 非均匀切分时: 1)axis仅支持为0; 2)非均匀切分仅表示对input_params的第零维非均匀切分,并且input_params的切片的最后一维要32字节对齐; 3)对input_params第零维的切分份数要等于对input_indices最后一维的切分份数; 4)input_params的每个维度都能切分,但input_indices只能切分最后一维,且不支持重复计算; 5)input_indices需满足:后一个切片的Tensor值需大于前一个分片的Tensor值。 |
mindspore.ops.GatherD |
dim所对应的维度不能切分;在auto_parallel模式下,不支持双递归算法。 |
mindspore.ops.GatherNd |
第一个输入不能切分,第二个输入的最后一维不能切分;在auto_parallel模式下,不支持双递归算法。 |
mindspore.ops.GeLU |
无 |
mindspore.ops.Greater |
无 |
mindspore.ops.GreaterEqual |
无 |
mindspore.ops.HShrink |
无 |
mindspore.ops.HSigmoid |
无 |
mindspore.ops.InplaceAdd |
不支持对x 和input_v 的第一维切分 |
mindspore.ops.InplaceSub |
同InplaceAdd |
mindspore.ops.InplaceUpdate |
同InplaceAdd |
mindspore.ops.Inv |
无 |
mindspore.ops.IOU |
支持对anchor_boxes 和gt_boxes 的第一维切分 |
mindspore.ops.IsFinite |
无 |
mindspore.ops.KLDivLoss |
无 |
mindspore.ops.L2Loss |
无 |
mindspore.ops.L2Normalize |
输入(input_x)在轴(axis)对应的维度不能切,切分后,在数学逻辑上和单机不等价 |
mindspore.ops.Lerp |
无 |
mindspore.ops.Less |
无 |
mindspore.ops.LessEqual |
无 |
mindspore.ops.LinSpace |
不需要为start 和end 配置策略,只需要传入一个长度为1的策略,其数值能整除num |
mindspore.ops.LogicalAnd |
无 |
mindspore.ops.LogicalNot |
无 |
mindspore.ops.LogicalOr |
无 |
mindspore.ops.Log |
无 |
mindspore.ops.Log1p |
无 |
mindspore.ops.LogSoftmax |
输入(logits)在轴(axis)对应的维度不可切分,切分后,在数学逻辑上和单机不等价 |
mindspore.ops.MaskedFill |
无 |
mindspore.ops.MatMul |
1. 不支持transpose_a=True ; 2. 当transpose_b=True 时,输入的切分策略需是 ((A, B), (C, B)) 的形式 3. 当transpose_b=False 时,输入的切分策略需是 ((A, B), (B, C)) 的形式; 4. 支持设置输出切分策略,合法的输出切分策略为 ((A, C),) 或 ((A * B, C),) 。 |
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.MaxPool3D |
同AvgPool3D |
mindspore.ops.Minimum |
无 |
mindspore.ops.Mish |
无 |
mindspore.ops.Mod |
无 |
mindspore.ops.Mul |
无 |
mindspore.ops.MulNoNan |
无 |
mindspore.ops.Neg |
无 |
mindspore.ops.NotEqual |
无 |
mindspore.ops.OneHot |
仅支持输入(indices)是一维的Tensor,切分策略要配置输出的切分策略,以及第1和第2个输入的切分策略 |
mindspore.ops.OnesLike |
无 |
mindspore.ops.Pow |
无 |
mindspore.ops.PReLU |
weight的shape在非[1]的情况下,输入(input_x)的Channel维要和weight的切分方式一致 |
mindspore.ops.RandomChoiceWithMask |
不支持切分,仅支持全1策略 |
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.Reshape |
不支持配置切分策略,并且,在自动并行模式下,当reshape API后接有多个API,不允许对这些API配置不同的切分策略 |
mindspore.ops.ResizeBilinear |
在GPU平台下,不支持H/W维切分;在Ascend平台下,不支持H维切分,且W维的输出shape要能被切分数整除。 |
mindspore.ops.ResizeNearestNeighbor |
在align_corners=True 时只支持切分第一维和第二维。 |
mindspore.ops.Rint |
无 |
mindspore.ops.ROIAlign |
不支持对输入(features)的H/W维和输入(rois)的第二维进行切分 |
mindspore.ops.Round |
无 |
mindspore.ops.Rsqrt |
无 |
mindspore.ops.ScatterAdd |
第二个输入不能切分,第三个输入的前n维(n为第二个输入的维度)不能切分;在auto_parallel模式下,不支持双递归算法。 |
mindspore.ops.ScatterDiv |
第二个输入不能切分,第三个输入的前n维(n为第二个输入的维度)不能切分;在auto_parallel模式下,不支持双递归算法。 |
mindspore.ops.ScatterMax |
第一个输入的第一维不能切分,第二个输入不能切分,第三个输入的前n维(n为第二个输入的维度)不能切分;在auto_parallel模式下,不支持双递归算法。 |
mindspore.ops.ScatterMin |
第一个输入的第一维不能切分,第二个输入不能切分,第三个输入的前n维(n为第二个输入的维度)不能切分;在auto_parallel模式下,不支持双递归算法。 |
mindspore.ops.ScatterMul |
第二个输入不能切分,第三个输入的前n维(n为第二个输入的维度)不能切分;在auto_parallel模式下,不支持双递归算法。 |
mindspore.ops.ScatterNdAdd |
第二个输入不能切分,第三个输入的前n-1维(n为第二个输入的维度)不能切分,第三个输入的剩下k个维度(除去前n-1维度)的切分与第一个输入的最后k个切分一致;在auto_parallel模式下,不支持双递归算法。 |
mindspore.ops.ScatterNdSub |
第二个输入不能切分,第三个输入的前n-1维(n为第二个输入的维度)不能切分,第三个输入的剩下k个维度(除去前n-1维度)的切分与第一个输入的最后k个切分一致;在auto_parallel模式下,不支持双递归算法。 |
mindspore.ops.ScatterNdUpdate |
第一个输入前m维度不能切(m为第二个输入indices的最后一维的值indices[-1])第二个输入不能切分,第三个输入的前n-1维(n为第二个输入的维度)不能切分,第三个输入的剩下k个维度(除去前n-1维度)的切分与第一个输入的最后k个切分一致;在auto_parallel模式下,不支持双递归算法。 |
mindspore.ops.ScatterSub |
第二个输入不能切分,第三个输入的前n维(n为第二个输入的维度)不能切分;在auto_parallel模式下,不支持双递归算法。 |
mindspore.ops.ScatterUpdate |
第一个输入的第一维不能切分,第二个输入不能切分,第三个输入的前n维(n为第二个输入的维度)不能切分;在auto_parallel模式下,不支持双递归算法。 |
mindspore.ops.TensorScatterAdd |
第二个输入不能切分,第三个输入的前n-1维(n为第二个输入的维度)不能切分,第三个输入的剩下k个维度(除去前n-1维度)的切分与第一个输入的最后k个切分一致;在auto_parallel模式下,不支持双递归算法。 |
mindspore.ops.TensorScatterDiv |
第二个输入不能切分,第三个输入的前n-1维(n为第二个输入的维度)不能切分,第三个输入的剩下k个维度(除去前n-1维度)的切分与第一个输入的最后k个切分一致;在auto_parallel模式下,不支持双递归算法。 |
mindspore.ops.TensorScatterMax |
第一个输入前m维度不能切(m为第二个输入indices的最后一维的值indices[-1])第二个输入不能切分,第三个输入的前n-1维(n为第二个输入的维度)不能切分,第三个输入的剩下k个维度(除去前n-1维度)的切分与第一个输入的最后k个切分一致;在auto_parallel模式下,不支持双递归算法。 |
mindspore.ops.TensorScatterMax |
第一个输入前m维度不能切(m为第二个输入indices的最后一维的值indices[-1])第二个输入不能切分,第三个输入的前n-1维(n为第二个输入的维度)不能切分,第三个输入的剩下k个维度(除去前n-1维度)的切分与第一个输入的最后k个切分一致;在auto_parallel模式下,不支持双递归算法。 |
mindspore.ops.TensorScatterMul |
第二个输入不能切分,第三个输入的前n-1维(n为第二个输入的维度)不能切分,第三个输入的剩下k个维度(除去前n-1维度)的切分与第一个输入的最后k个切分一致;在auto_parallel模式下,不支持双递归算法。 |
mindspore.ops.TensorScatterAdd |
第二个输入不能切分,第三个输入的前n-1维(n为第二个输入的维度)不能切分,第三个输入的剩下k个维度(除去前n-1维度)的切分与第一个输入的最后k个切分一致;在auto_parallel模式下,不支持双递归算法。 |
mindspore.ops.TensorScatterUpdate |
第一个输入前m维度不能切(m为第二个输入indices的最后一维的值indices[-1])第二个输入不能切分,第三个输入的前n-1维(n为第二个输入的维度)不能切分,第三个输入的剩下k个维度(除去前n-1维度)的切分与第一个输入的最后k个切分一致;在auto_parallel模式下,不支持双递归算法。 |
mindspore.ops.Select |
在auto_parallel模式下,不支持双递归算法。 |
mindspore.ops.SeLU |
无 |
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.SoftShrink |
无 |
mindspore.ops.SparseGatherV2 |
同Gather |
mindspore.ops.Split |
轴(axis)所对应的维度不能切分,切分后,在数学逻辑上和单机不等价 |
mindspore.ops.Sqrt |
无 |
mindspore.ops.Square |
无 |
mindspore.ops.SquaredDifference |
无 |
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.TruncateDiv |
无 |
mindspore.ops.TruncateMod |
无 |
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。否则容易造成数值溢出,导致通信API上溢错误,从而引发Run Task Error |
mindspore.ops.UnsortedSegmentMax |
输入input_x和segment_ids的切分配置必须在segment_ids的维度上保持一致。注意:在segment id为空时,输出向量的对应位置会填充为输入类型的最小值。需要用户进行掩码处理,将最小值转换成0。否则容易造成数值溢出,导致通信API上溢错误,从而引发Run Task Error |
mindspore.ops.Xdivy |
无 |
mindspore.ops.Xlogy |
无 |
mindspore.ops.ZerosLike |
无 |