文档
注册
评分
提单
论坛
小AI

GetMrgSortResult

功能说明

获取MrgSortMrgSort4已经处理过的队列里的区域提案数,并依次存储在四个List入参中。

使用该接口,需要将MrgSort/MrgSort4中的MrgSort4Info.ifExhaustedSuspension参数配置为true,该配置模式下某条队列耗尽后,MrgSort/MrgSort4指令即停止。

函数原型

1
__aicore__ inline void GetMrgSortResult(uint16_t &mrgSortList1, uint16_t &mrgSortList2, uint16_t &mrgSortList3, uint16_t &mrgSortList4)

参数说明

表1 参数说明

参数名

输入/输出

描述

mrgSortList1

输入/输出

类型为uint16_t,表示MrgSort或MrgSrot4指令第一个队列里已经处理过的区域提案数。

mrgSortList2

输入/输出

类型为uint16_t,表示MrgSort或MrgSrot4指令第二个队列里已经处理过的区域提案数。

mrgSortList3

输入/输出

类型为uint16_t,表示MrgSort或MrgSrot4指令第三个队列里已经处理过的区域提案数。

mrgSortList4

输入/输出

类型为uint16_t,表示MrgSort或MrgSrot4指令第四个队列里已经处理过的区域提案数。

返回值

MrgSort或MrgSort4指令中已经处理过的队列里的区域提案数。

支持的型号

Atlas推理系列产品(Ascend 310P处理器)AI Core

Atlas A2训练系列产品/Atlas 800I A2推理产品

Atlas 200/500 A2推理产品

约束说明

Atlas推理系列产品(Ascend 310P处理器)AI Core,GetMrgSortResult接口需要配合MrgSort4指令使用,获取MrgSort4指令处理过的队列里的区域提案数。

Atlas A2训练系列产品/Atlas 800I A2推理产品,GetMrgSortResult接口需要配合MrgSort指令使用,获取MrgSort指令处理过的队列里的区域提案数。

Atlas 200/500 A2推理产品GetMrgSortResult接口需要配合MrgSort指令使用,获取MrgSort指令处理过的队列里的区域提案数。

调用示例

  • 配合MrgSort指令使用示例。
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    AscendC::LocalTensor<float> dstLocal;
    AscendC::LocalTensor<float> workLocal;
    AscendC::LocalTensor<float> src0Local;
    AscendC::LocalTensor<uint32_t> src1Local;
    
    AscendC::Sort32(workLocal, src0Local, src1Local, 1);
    
    uint16_t elementLengths[4] = { 0 };
    uint32_t sortedNum[4] = { 0 };
    elementLengths[0] = 32;
    elementLengths[1] = 32;
    elementLengths[2] = 32;
    elementLengths[3] = 32;
    uint16_t validBit = 0b1111;
    
    AscendC::MrgSortSrcList<float> srcList;
    srcList.src1 = workLocal[0];
    srcList.src2 = workLocal[32 * 1 * 2];
    srcList.src3 = workLocal[32 * 2 * 2];
    srcList.src4 = workLocal[32 * 3 * 2];
    
    AscendC::MrgSort4Info mrgSortInfo(elementLengths, true, validBit, 1);
    AscendC::MrgSort(dstLocal, srcList, mrgSortInfo);
    
    uint16_t mrgRes1 = 0;
    uint16_t mrgRes2 = 0;
    uint16_t mrgRes3 = 0;
    uint16_t mrgRes4 = 0;
    AscendC::GetMrgSortResult(mrgRes1, mrgRes2, mrgRes3, mrgRes4);
    
  • 配合MrgSort4指令使用示例。
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    AscendC::LocalTensor<float> dstLocal;
    AscendC::LocalTensor<float> workLocal;
    AscendC::LocalTensor<float> src0Local;
    
    AscendC::RpSort16(workLocal, src0Local, 1);
    
    uint16_t elementLengths[4] = { 0 };
    uint32_t sortedNum[4] = { 0 };
    elementLengths[0] = 32;
    elementLengths[1] = 32;
    elementLengths[2] = 32;
    elementLengths[3] = 32;
    uint16_t validBit = 0b1111;
    
    AscendC::MrgSortSrcList<float> srcList;
    srcList.src1 = workLocal[0];
    srcList.src2 = workLocal[32 * 1 * 2];
    srcList.src3 = workLocal[32 * 2 * 2];
    srcList.src4 = workLocal[32 * 3 * 2];
    
    AscendC::MrgSort4Info mrgSortInfo(elementLengths, true, validBit, 1);
    AscendC::MrgSort4(dstLocal, srcList, mrgSortInfo);
    
    uint16_t mrgRes1 = 0;
    uint16_t mrgRes2 = 0;
    uint16_t mrgRes3 = 0;
    uint16_t mrgRes4 = 0;
    AscendC::GetMrgSortResult(mrgRes1, mrgRes2, mrgRes3, mrgRes4);
    
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词