GetMrgSortResult
产 品 支 持 情 况
功 能 说 明
头 文 件 路 径 为:"basic_api/kernel_operator_proposal_intf.h"
GetMrgSortResult接 口 需 与MrgSort接 口 配 合 使 用。当MrgSort接 口 中 的ifExhaustedSuspension参 数 设 置 为true时,若 某 个 输 入 队 列 中 的 数 据 耗 尽,MrgSort会 停 止 执 行。此 时,可 调 用GetMrgSortResult接 口 来 获 取4个 队 列 里 已 经 处 理 过 的 数 据 个 数。
以 上 说 明 适 用 于 如 下 型 号:
Ascend 950PR/Ascend 950DTAtlas A3 训 练 系 列 产 品/Atlas A3 推 理 系 列 产 品Atlas A2 训 练 系 列 产 品/Atlas A2 推 理 系 列 产 品Atlas 200I/500 A2 推 理 产 品
获 取MrgSort已 经 处 理 过 的 队 列 里 的Region Proposal个 数,并 依 次 存 储 在 四 个 出 参 中。
配 合MrgSort4指 令使 用,获 取MrgSort4指 令 处 理 过 的 队 列 里 的Region Proposal个 数。使 用 时,需 要 将MrgSort4中 的MrgSort4Info.ifExhaustedSuspension参 数 配 置 为true,该 配 置 模 式 下 某 条 队 列 耗 尽 后,MrgSort4指 令 即 停 止。
以 上 说 明 适 用 于 如 下 型 号:
Atlas 推 理 系 列 产 品AI Core
函 数 原 型
C++
__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指 令使 用 示 例。
C++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);输 出 示 例:
C++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指 令使 用 示 例。
C++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);