MindSpore分布式算子支持
Linux
Ascend
GPU
CPU
模型开发
初级
中级
高级
分布式算子
操作名 |
约束 |
---|---|
无 |
|
无 |
|
无 |
|
无 |
|
无 |
|
输入在轴(axis)的维度进行切分时,分布式结果可能会和单机不一致 |
|
输入在轴(axis)的维度进行切分时,分布式结果可能会和单机不一致 |
|
无 |
|
无 |
|
无 |
|
无 |
|
无 |
|
无 |
|
无 |
|
无 |
|
不支持 |
|
无 |
|
无 |
|
无 |
|
无 |
|
Auto Parallel和Semi Auto Parallel模式下,配置策略不生效 |
|
无 |
|
输入(input_x)在轴(axis)所对应的维度不能切分,切分后,在数学逻辑上和单机不等价 |
|
无 |
|
无 |
|
无 |
|
无 |
|
需和 |
|
需和 |
|
无 |
|
同Gather |
|
无 |
|
无 |
|
无 |
|
无 |
|
无 |
|
无 |
|
无 |
|
无 |
|
无 |
|
仅支持1维和2维的input_params,并且input_params的最后一维要32字节对齐(出于性能考虑);不支持标量input_indices;参数在轴(axis)所在维度切分时,不支持重复计算;不支持input_indices和input_params同时进行切分 |
|
无 |
|
无 |
|
无 |
|
无 |
|
输入(input_x)在轴(axis)对应的维度不能切,切分后,在数学逻辑上和单机不等价 |
|
无 |
|
无 |
|
无 |
|
无 |
|
无 |
|
无 |
|
无 |
|
输入(logits)在轴(axis)对应的维度不可切分,切分后,在数学逻辑上和单机不等价 |
|
不支持 |
|
无 |
|
无 |
|
无 |
|
无 |
|
无 |
|
无 |
|
仅支持输入(indices)是1维的Tensor,切分策略要配置输出的切分策略,以及第1和第2个输入的切分策略 |
|
无 |
|
无 |
|
weight的shape在非[1]的情况下,输入(input_x)的Channel维要和weight的切分方式一致 |
|
无 |
|
无 |
|
输入在轴(axis)的维度进行切分时,分布式结果可能会和单机不一致 |
|
输入在轴(axis)的维度进行切分时,分布式结果可能会和单机不一致 |
|
无 |
|
无 |
|
无 |
|
无 |
|
无 |
|
不支持配置切分策略,并且,在自动并行模式下,当reshape算子后接有多个算子,不允许对这些算子配置不同的切分策略 |
|
无 |
|
无 |
|
无 |
|
无 |
|
无 |
|
无 |
|
无 |
|
输入(logits)在轴(axis)对应的维度不可切分,切分后,在数学逻辑上和单机不等价 |
|
输入(logits、labels)的最后一维不能切分;有两个输出,正向的loss只支持取[0] |
|
无 |
|
无 |
|
同GatherV2 |
|
轴(axis)所对应的维度不能切分,切分后,在数学逻辑上和单机不等价 |
|
无 |
|
无 |
|
无 |
|
无 |
|
仅支持值为全0的mask;需要切分的维度必须全部提取;输入在strides不为1对应的维度不支持切分 |
|
需要切分的维度必须全部提取 |
|
无 |
|
无 |
|
无 |
|
仅支持对multiples配置切分策略 |
|
最后一维不支持切分,切分后,在数学逻辑上和单机不等价 |
|
无 |
|
只支持重复计算的策略(1,) |
|
输入input_x和segment_ids的切分配置必须在segment_ids的维度上保持一致 |
|
输入input_x和segment_ids的切分配置必须在segment_ids的维度上保持一致。注意:在segment id为空时,输出向量的对应位置会填充为输入类型的最大值。需要用户进行掩码处理,将最大值转换成0。否则容易造成数值溢出,导致通信算子上溢错误,从而引发Run Task Error |
|
输入input_x和segment_ids的切分配置必须在segment_ids的维度上保持一致。注意:在segment id为空时,输出向量的对应位置会填充为输入类型的最小值。需要用户进行掩码处理,将最小值转换成0。否则容易造成数值溢出,导致通信算子上溢错误,从而引发Run Task Error |
|
无 |
重复计算是指,机器没有用满,比如:集群有8张卡跑分布式训练,切分策略只对输入切成了4份。这种情况下会发生重复计算。