算子级并行使用约束
| 操作名 | 约束 | Layout配置约束 | 
|---|---|---|
| 无 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 无 | 支持配置Layout,输入的Layout 需要相同或能广播,不支持配置输出的Layout | |
| 无 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 输入在轴(axis)的维度进行切分时,分布式结果可能会和单机不一致 | 不支持配置Layout | |
| 输入在轴(axis)的维度进行切分时,分布式结果可能会和单机不一致 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 1. 数据格式只支持‘NCHW’; | 不支持配置Layout | |
| 1. 数据格式只支持‘NCDHW’; | 不支持配置Layout | |
| 每个输入和输出的最后两个维度的切分规则与MatMul算子的切分规则相同 | 支持配置Layout; 每个输入和输出的最后两个维度的切分规则与MatMul算子的切分规则相同 | |
| 不支持GPU | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 无 | 支持配置Layout,输入参数bias的Layout需要和input_x的最后一维度相同,不支持配置输出的Layout | |
| 无 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 1. 支持对输入(anchor_box)和输入(groundtruth_box)的第一维进行切分;  | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| Auto Parallel和Semi Auto Parallel模式下,配置策略不生效 | 不支持配置Layout | |
| 1. 当两输入都含有Batch维时,这一维的切分策略必须相等; | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 输入(input_x)在轴(axis)所对应的维度不能切分,切分后,在数学逻辑上和单机不等价 | 不支持配置Layout | |
| 1. 数据格式只支持‘NCHW’; | 不支持配置Layout | |
| 1. 数据格式只支持‘NCDHW’; | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 1. 不支持对输入(x)的H/W维和输入(boxes)的第二维进行切分; | 不支持配置Layout | |
| 不支持 | 不支持配置Layout | |
| 不支持 | 不支持配置Layout | |
| 无 | 支持配置Layout,输入的Layout 需要相同或能广播,不支持配置输出的Layout | |
| 无 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 1. padding_idx、max_norm、norm_type和scale_grad_by_freq仅支持默认值; | 支持配置Layout | |
| 同Gather | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 1.  | 不支持配置Layout | |
| 1. batch_dims > 0时: | 不支持配置Layout | |
| dim所对应的维度不能切分;在auto_parallel模式下,不支持双递归算法。 | 不支持配置Layout | |
| 第一个输入不能切分,第二个输入的最后一维不能切分;在auto_parallel模式下,不支持双递归算法。 | 不支持配置Layout | |
| 无 | 支持配置输入的Layout,不支持配置输出的Layout | |
| 无 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 不支持对 | 不支持配置Layout | |
| 同InplaceAdd | 不支持配置Layout | |
| 同InplaceAdd | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 支持对 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 第二个输入gamma以及第三个输入beta的切分策略需要等于input_x_strategy[begin_params_axis:],input_x_strategy是第一个输入的切分策略 | 支持配置Layout。第二个输入gamma以及第三个输入beta的Layout配置需要等于input_x_layout_tuple[begin_params_axis:],input_x_layout_tuple是第一个输入的layout配置 | |
| 无 | 不支持配置Layout | |
| 输入(input_x)在轴(axis)对应的维度不能切,切分后,在数学逻辑上和单机不等价 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 不需要为 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 输入(logits)在轴(axis)对应的维度不可切分,切分后,在数学逻辑上和单机不等价 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 1. 当 | 支持配置Layout。 | |
| 无 | 不支持配置Layout | |
| 1. 数据格式只支持‘NCHW’; | 不支持配置Layout | |
| 同AvgPool3D | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 无 | 支持配置Layout,输入的Layout 需要相同或能广播,不支持配置输出的Layout | |
| 无 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 仅支持输入(indices)是一维的Tensor,切分策略要配置输出的切分策略,以及第1和第2个输入的切分策略 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| weight的shape在非[1]的情况下,输入(input_x)的Channel维要和weight的切分方式一致 | 不支持配置Layout | |
| 不支持切分,仅支持全1策略 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 输入在轴(axis)的维度进行切分时,分布式结果可能会和单机不一致 | 不支持配置Layout | |
| 输入在轴(axis)的维度进行切分时,分布式结果可能会和单机不一致 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 无 | 支持配置输入的Layout,不支持配置输出的Layout | |
| 无 | 不支持配置Layout | |
| 不支持配置切分策略,并且,在自动并行模式下,当reshape API后接有多个API,不允许对这些API配置不同的切分策略 | 不支持配置Layout | |
| 在 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 不支持对输入(features)的H/W维和输入(rois)的第二维进行切分 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 第二个输入不能切分,第三个输入的前n维(n为第二个输入的维度)不能切分;在auto_parallel模式下,不支持双递归算法。 | 不支持配置Layout | |
| 第二个输入不能切分,第三个输入的前n维(n为第二个输入的维度)不能切分;在auto_parallel模式下,不支持双递归算法。 | 不支持配置Layout | |
| 第一个输入的第一维不能切分,第二个输入不能切分,第三个输入的前n维(n为第二个输入的维度)不能切分;在auto_parallel模式下,不支持双递归算法。 | 不支持配置Layout | |
| 第一个输入的第一维不能切分,第二个输入不能切分,第三个输入的前n维(n为第二个输入的维度)不能切分;在auto_parallel模式下,不支持双递归算法。 | 不支持配置Layout | |
| 第二个输入不能切分,第三个输入的前n维(n为第二个输入的维度)不能切分;在auto_parallel模式下,不支持双递归算法。 | 不支持配置Layout | |
| 第二个输入不能切分,第三个输入的前n-1维(n为第二个输入的维度)不能切分,第三个输入的剩下k个维度(除去前n-1维度)的切分与第一个输入的最后k个切分一致;在auto_parallel模式下,不支持双递归算法。 | 不支持配置Layout | |
| 第二个输入不能切分,第三个输入的前n-1维(n为第二个输入的维度)不能切分,第三个输入的剩下k个维度(除去前n-1维度)的切分与第一个输入的最后k个切分一致;在auto_parallel模式下,不支持双递归算法。 | 不支持配置Layout | |
| 第一个输入前m维度不能切(m为第二个输入indices的最后一维的值indices[-1])第二个输入不能切分,第三个输入的前n-1维(n为第二个输入的维度)不能切分,第三个输入的剩下k个维度(除去前n-1维度)的切分与第一个输入的最后k个切分一致;在auto_parallel模式下,不支持双递归算法。 | 不支持配置Layout | |
| 第二个输入不能切分,第三个输入的前n维(n为第二个输入的维度)不能切分;在auto_parallel模式下,不支持双递归算法。 | 不支持配置Layout | |
| 第一个输入的第一维不能切分,第二个输入不能切分,第三个输入的前n维(n为第二个输入的维度)不能切分;在auto_parallel模式下,不支持双递归算法。 | 不支持配置Layout | |
| 第二个输入不能切分,第三个输入的前n-1维(n为第二个输入的维度)不能切分,第三个输入的剩下k个维度(除去前n-1维度)的切分与第一个输入的最后k个切分一致;在auto_parallel模式下,不支持双递归算法。 | 不支持配置Layout | |
| 第二个输入不能切分,第三个输入的前n-1维(n为第二个输入的维度)不能切分,第三个输入的剩下k个维度(除去前n-1维度)的切分与第一个输入的最后k个切分一致;在auto_parallel模式下,不支持双递归算法。 | 不支持配置Layout | |
| 第一个输入前m维度不能切(m为第二个输入indices的最后一维的值indices[-1])第二个输入不能切分,第三个输入的前n-1维(n为第二个输入的维度)不能切分,第三个输入的剩下k个维度(除去前n-1维度)的切分与第一个输入的最后k个切分一致;在auto_parallel模式下,不支持双递归算法。 | 不支持配置Layout | |
| 第一个输入前m维度不能切(m为第二个输入indices的最后一维的值indices[-1])第二个输入不能切分,第三个输入的前n-1维(n为第二个输入的维度)不能切分,第三个输入的剩下k个维度(除去前n-1维度)的切分与第一个输入的最后k个切分一致;在auto_parallel模式下,不支持双递归算法。 | 不支持配置Layout | |
| 第二个输入不能切分,第三个输入的前n-1维(n为第二个输入的维度)不能切分,第三个输入的剩下k个维度(除去前n-1维度)的切分与第一个输入的最后k个切分一致;在auto_parallel模式下,不支持双递归算法。 | 不支持配置Layout | |
| 第二个输入不能切分,第三个输入的前n-1维(n为第二个输入的维度)不能切分,第三个输入的剩下k个维度(除去前n-1维度)的切分与第一个输入的最后k个切分一致;在auto_parallel模式下,不支持双递归算法。 | 不支持配置Layout | |
| 第一个输入前m维度不能切(m为第二个输入indices的最后一维的值indices[-1])第二个输入不能切分,第三个输入的前n-1维(n为第二个输入的维度)不能切分,第三个输入的剩下k个维度(除去前n-1维度)的切分与第一个输入的最后k个切分一致;在auto_parallel模式下,不支持双递归算法。 | 不支持配置Layout | |
| 在auto_parallel模式下,不支持双递归算法。 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 无 | 支持配置输入的Layout,不支持配置输出的Layout | |
| 无 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 输入(logits)在轴(axis)对应的维度不可切分,切分后,在数学逻辑上和单机不等价 | 支持配置输入的Layout,不支持配置输出的Layout,并且不能在轴(axis)对应的维度配置Layout | |
| 输入(logits、labels)的最后一维不能切分;有两个输出,正向的loss只支持取[0] | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 同Gather | 不支持配置Layout | |
| 轴(axis)所对应的维度不能切分,切分后,在数学逻辑上和单机不等价 | 支持配置Layout,并且不能在轴(axis)所对应的维度配置 | |
| 无 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 仅支持值为全0的mask;需要切分的维度必须全部提取;输入在strides不为1对应的维度不支持切分 | 不支持配置Layout | |
| 需要切分的维度必须全部提取 | 不支持配置Layout | |
| 无 | 支持配置Layout,输入的Layout 需要相同或能广播,不支持配置输出的Layout | |
| 无 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 仅支持对dims配置切分策略 | 支持配置输入与输出的Layout,dim (复制次数) 为1的维度,输入与输出中此维度切分策略需相同;dim>1的维度,输入中此维度不允许切分以防止复制后数据乱序,输出中对应dim需要能被切分数整除 | |
| 最后一维不支持切分,切分后,在数学逻辑上和单机不等价 | 不支持配置Layout | |
| 无 | 支持配置Layout,不支持配置输出的Layout | |
| 无 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 只支持重复计算的策略(1,) | 不支持配置Layout | |
| 输入input_x和segment_ids的切分配置必须在segment_ids的维度上保持一致 | 不支持配置Layout | |
| 输入input_x和segment_ids的切分配置必须在segment_ids的维度上保持一致。注意:在segment id为空时,输出向量的对应位置会填充为输入类型的最大值。需要用户进行掩码处理,将最大值转换成0。否则容易造成数值溢出,导致通信API上溢错误,从而引发Run Task Error | 不支持配置Layout | |
| 输入input_x和segment_ids的切分配置必须在segment_ids的维度上保持一致。注意:在segment id为空时,输出向量的对应位置会填充为输入类型的最小值。需要用户进行掩码处理,将最小值转换成0。否则容易造成数值溢出,导致通信API上溢错误,从而引发Run Task Error | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 无 | 不支持配置Layout | |
| 无 | 不支持配置Layout | 
重复计算是指,机器没有用满,比如:集群有8张卡跑分布式训练,切分策略只对输入切成了4份。这种情况下会发生重复计算。