---
title: GetMrgSortResult
description: "| 产品 | 是否支持 |"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/API/ascendcopapi/atlasascendc_api_07_0233.html
sourcePath: /source/zh/canncommercial/900/API/ascendcopapi/atlasascendc_api_07_0233.html
indexId: c8e8a0222536c82cbf98c9cad2a586acc2dcd3e49290e996ab707667a50198e376
---
# GetMrgSortResult

#### 产品支持情况

| 产品 | 是否支持 |
| --- | --- |
| Atlas 350 加速卡 | √ |
| Atlas A3 训练系列产品 / Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品 / Atlas A2 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | √ |
| Atlas 推理系列产品 AI Core | √ |
| Atlas 推理系列产品 Vector Core | x |
| Atlas 训练系列产品 | x |


#### 功能说明

获取MrgSort已经处理过的队列里的Region Proposal个数，并依次存储在四个出参中。

本接口和MrgSort相关指令的配合关系如下：

- 配合  MrgSort4指令
使用，获取MrgSort4指令处理过的队列里的Region Proposal个数。使用时，需要将MrgSort4中的MrgSort4Info.ifExhaustedSuspension参数配置为true，该配置模式下某条队列耗尽后，MrgSort4指令即停止。
  以上说明适用于如下型号：

  Atlas 推理系列产品 AI Core

- 配合  MrgSort指令
使用，获取MrgSort指令处理过的队列里的Region Proposal个数。使用时，需要将MrgSort中的MrgSort4Info.ifExhaustedSuspension参数配置为true，该配置模式下某条队列耗尽后，MrgSort指令即停止。
  以上说明适用于如下型号：

  Atlas 350 加速卡

  Atlas A3 训练系列产品 / Atlas A3 推理系列产品

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

  Atlas 200I/500 A2 推理产品


#### 函数原型

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


#### 参数说明


**表1 参数说明**

| 参数名 | 输入/输出 | 描述 |
| --- | --- | --- |
| mrgSortList1 | 输出 | 类型为uint16\_t，表示MrgSort第一个队列里已经处理过的Region Proposal个数。 |
| mrgSortList2 | 输出 | 类型为uint16\_t，表示MrgSort第二个队列里已经处理过的Region Proposal个数。 |
| mrgSortList3 | 输出 | 类型为uint16\_t，表示MrgSort第三个队列里已经处理过的Region Proposal个数。 |
| mrgSortList4 | 输出 | 类型为uint16\_t，表示MrgSort第四个队列里已经处理过的Region Proposal个数。 |


#### 返回值说明

无


#### 约束说明

无


#### 调用示例

- 配合  MrgSort指令
使用示例。
  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 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);

  输出示例:

```
srcList： [  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.  30.  31.  32.  33.  34.  35.  36.  37.  38.  39.  40.  41.  42.
43.  44.  45.  46.  47.  48.  49.  50.  51.  52.  53.  54.  55.  56.
57.  58.  59.  60.  61.  62.  63.  64.  65.  66.  67.  68.  69.  70.
71.  72.  73.  74.  75.  76.  77.  78.  79.  80.  81.  82.  83.  84.
85.  86.  87.  88.  89.  90.  91.  92.  93.  94.  95.  96.  97.  98.
99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112.
113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126.
127. 128.]
workLocal:
[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
dstLocal:
[128.   0. 127.   0. 126.   0. 125.   0. 124.   0. 123.   0. 122.   0.
121.   0. 120.   0. 119.   0. 118.   0. 117.   0. 116.   0. 115.   0.
114.   0. 113.   0. 112.   0. 111.   0. 110.   0. 109.   0. 108.   0.
107.   0. 106.   0. 105.   0. 104.   0. 103.   0. 102.   0. 101.   0.
100.   0.  99.   0.  98.   0.  97.   0.  96.   0.  95.   0.  94.   0.
93.   0.  92.   0.  91.   0.  90.   0.  89.   0.  88.   0.  87.   0.
86.   0.  85.   0.  84.   0.  83.   0.  82.   0.  81.   0.  80.   0.
79.   0.  78.   0.  77.   0.  76.   0.  75.   0.  74.   0.  73.   0.
72.   0.  71.   0.  70.   0.  69.   0.  68.   0.  67.   0.  66.   0.
65.   0.  64.   0.  63.   0.  62.   0.  61.   0.  60.   0.  59.   0.
58.   0.  57.   0.  56.   0.  55.   0.  54.   0.  53.   0.  52.   0.
51.   0.  50.   0.  49.   0.  48.   0.  47.   0.  46.   0.  45.   0.
44.   0.  43.   0.  42.   0.  41.   0.  40.   0.  39.   0.  38.   0.
37.   0.  36.   0.  35.   0.  34.   0.  33.   0.  32.   0.  31.   0.
30.   0.  29.   0.  28.   0.  27.   0.  26.   0.  25.   0.  24.   0.
23.   0.  22.   0.  21.   0.  20.   0.  19.   0.  18.   0.  17.   0.
16.   0.  15.   0.  14.   0.  13.   0.  12.   0.  11.   0.  10.   0.
9.   0.   8.   0.   7.   0.   6.   0.   5.   0.   4.   0.   3.   0.
2.   0.   1.   0.]
```


- 配合  MrgSort4指令
使用示例。
  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 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);
