[0-size Tensor Job2 No.72-74] Add 0-size Tensor support for paddle.scatter [fluid_ops] #73933
+251 −14
Add this suggestion to a batch that can be applied as a single commit. This suggestion is invalid because no changes were made to the code. Suggestions cannot be applied while the pull request is closed. Suggestions cannot be applied while viewing a subset of changes. Only one suggestion per line can be applied in a batch. Add this suggestion to a batch that can be applied as a single commit. Applying suggestions on deleted lines is not supported. You must change the existing code in this line in order to create a valid suggestion. Outdated suggestions cannot be applied. This suggestion has been applied or marked resolved. Suggestions cannot be applied from pending reviews. Suggestions cannot be applied on multi-line comments. Suggestions cannot be applied while the pull request is queued to merge. Suggestion cannot be applied right now. Please check back later.
PR Category
Operator Mechanism
PR Types
Bug fixes
Description
[0-size Tensor Job2 No.72-74] Add 0-size Tensor support for paddle.scatter
scatter_nd 调用的是scatter_nd_add

index 为0-size在 python部分判断,scatter修改有性能问题,改在kernel中使用phi::Copy,同时修改infermeta判断,符号推导没有对应代码
scatter_nd_add 返回x.clone() + updates, PaddleAPITest 中也是同样实现
https://github.com/PFCCLab/PaddleAPITest/blob/f360ad9c78a0c7ce095ec911ec52a29392a80404/tester/paddle_to_torch/rules.py#L5166
输出维度和输入x维度相同
修改前向,反向,反向updates填充0,PaddleAPITest中为自定义规则

https://github.com/PFCCLab/PaddleAPITest/blob/f360ad9c78a0c7ce095ec911ec52a29392a80404/tester/paddle_to_torch/rules.py#L5124
增加单测,取消已有 TestScatterNdAddWithEmptyIndex 测试
PaddleAPITest测试通过,错误为numpy error

paddle.scatter
paddle.scatter_nd

paddle.scatter_nd_add
