接口功能:将tensor src中的值按指定的轴和方向和对应的位置关系逐个替换/累加/累乘至tensor self中。
示例: 对于一个3D tensor,self会按照如下的规则进行更新:
[object Object]在计算时需要满足以下要求:
- self、index和src的维度数量必须相同。
- 对于每一个维度d,有index.size(d) <= src.size(d)的限制。
- 对于每一个维度d,如果d != dim,有index.size(d) <= self.size(d)的限制。
- dim的值的大小必须在 [-self的维度数量, self的维度数量-1] 之间。
- self的维度数应该小于等于8。
- index中对应维度dim的值大小必须在[0, self.size(dim)-1]之间。
aclnnScatter和aclnnInplaceScatter实现相同的功能,使用区别如下,请根据自身实际场景选择合适的算子。
- aclnnScatter:需新建一个输出张量对象存储计算结果。
- aclnnInplaceScatter:无需新建输出张量对象,直接在输入张量的内存中存储计算结果。
每个算子分为,必须先调用“aclnnScatterGetWorkspaceSize”或者“aclnnInplaceScatterGetWorkspaceSize”接口获取计算所需workspace大小以及包含了算子计算流程的执行器,再调用“aclnnScatter”或者“aclnnInplaceScatter”接口执行计算。
[object Object]
[object Object]
[object Object]
[object Object]
- 确定性计算:
- aclnnScatter&aclnnInplaceScatter默认确定性实现。
aclnnScatter示例代码:
[object Object]
aclnnInplaceScatter示例代码:
[object Object]