asc.language.basic.sort32
asc.language.basic.sort32(dst: LocalTensor, src0: LocalTensor, src1: LocalTensor, repeat_time: int) → None
排序函数,一次迭代可以完成32个数的排序。
对应的Ascend C函数原型
template <typename T>
__aicore__ inline void Sort32(const LocalTensor<T>& dst, const LocalTensor<T>& src0,
const LocalTensor<uint32_t>& src1, const int32_t repeatTime)
参数说明
- dst: 目的操作数。类型为LocalTensor,支持的TPosition为VECIN/VECCALC/VECOUT。
- src0: 源操作数。类型为LocalTensor,支持的TPosition为VECIN/VECCALC/VECOUT。
- src1: 源操作数。类型为LocalTensor,支持的TPosition为VECIN/VECCALC/VECOUT。
- repeat_time: 重复迭代次数。
约束说明
- 当存在score[i]与score[j]相同时,如果i>j,则score[j]将首先被选出来,排在前面。
- 每次迭代内的数据会进行排序,不同迭代间的数据不会进行排序。
- 操作数地址对齐要求请参见 《Ascend C算子开发接口》 中的“通用说明和约束-通用地址对齐约束”。
调用示例
# repeat_time = 4, 对128个数分成4组进行排序,每次完成1组32个数的排序
asc.sort32(dst_local, src_local0, src_local1, 4)