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)