Skip to content
版 本

MrgSort4

产 品 支 持 情 况

产 品

是 否 支 持

Ascend 950PR/Ascend 950DT

x

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

x

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

x

Atlas 200I/500 A2 推 理 产 品

x

Atlas 推 理 系 列 产 品AI Core

Atlas 推 理 系 列 产 品Vector Core

x

Atlas 训 练 系 列 产 品

功 能 说 明

将 已 经 排 好 序 的 最 多4条Region Proposals队 列,排 列 并 合 并 成1条 队 列,结 果 按 照score域 由 大 到 小 排 序。

函 数 原 型

Text
template <typename T>
__aicore__ inline void MrgSort4(const LocalTensor<T>& dst, const MrgSortSrcList<T>& src, const MrgSort4Info& params)

参 数 说 明

表 1 模 板 参 数 说 明

参 数 名

描 述

T

操 作 数 数 据 类 型。

Atlas 训 练 系 列 产 品,支 持 的 数 据 类 型 为:half

Atlas 推 理 系 列 产 品AI Core,支 持 的 数 据 类 型 为:half/float

表 2 接 口 参 数 说 明

参 数 名

输 入/输 出

含 义

dst

输 出

目 的 操 作 数,存 储 经 过 排 序 后 的Region Proposals。

类 型 为LocalTensor,支 持 的TPosition为VECIN/VECCALC/VECOUT。

LocalTensor的 起 始 地 址 需 要 保 证16字 节 对 齐(针 对half数 据 类 型),32字 节 对 齐(针 对float数 据 类 型)。

src

输 入

源 操 作 数,4个Region Proposals队 列,并 且 每 个Region Proposal队 列 都 已 经 排 好 序,类 型 为MrgSortSrcList结 构 体,具 体 定 义 如 下:

template <typename T> struct MrgSortSrcList {
    __aicore__ MrgSortSrcList() {}
    __aicore__ MrgSortSrcList(const LocalTensor<T>& src1In, const LocalTensor<T>& src2In, const LocalTensor<T>& src3In,
        const LocalTensor<T>& src4In)
    {
        src1 = src1In[0];
        src2 = src2In[0];
        src3 = src3In[0];
        src4 = src4In[0];
    }
    LocalTensor<T> src1; // 第 一 个 已 经 排 好 序 的Region Proposals队 列
    LocalTensor<T> src2; // 第 二 个 已 经 排 好 序 的Region Proposals队 列
    LocalTensor<T> src3; // 第 三 个 已 经 排 好 序 的Region Proposals队 列
    LocalTensor<T> src4; // 第 四 个 已 经 排 好 序 的Region Proposals队 列
};

Region Proposal队 列 的 数 据 类 型 与 目 的 操 作 数 保 持 一 致。src1、src2、src3、src4类 型 为LocalTensor,支 持 的TPosition为VECIN/VECCALC/VECOUT。

LocalTensor的 起 始 地 址 需 要 保 证16字 节 对 齐(针 对half数 据 类 型),32字 节 对 齐(针 对float数 据 类 型)。

params

输 入

排 序 所 需 参 数,类 型 为MrgSort4Info结 构 体。

具 体 定 义 请 参 考${INSTALL_DIR}/include/ascendc/basic_api/interface/kernel_struct_proposal.h,${INSTALL_DIR}请 替 换 为CANN软 件 安 装 后 文 件 存 储 路 径。

参 数 说 明 请 参 考表3

表 3 MrgSort4Info参 数 说 明

参 数 名 称

输 入/输 出

含 义

elementLengths

输 入

四 个 源Region Proposals队 列 的 长 度(Region Proposal数 目),类 型 为 长 度 为4的uint16_t数 据 类 型 的 数 组,理 论 上 每 个 元 素 取 值 范 围[0, 4095],但 不 能 超 出UB的 存 储 空 间。

ifExhaustedSuspension

输 入

某 条 队 列 耗 尽 后,指 令 是 否 需 要 停 止,类 型 为bool,默 认false。

validBit

输 入

有 效 队 列 个 数,取 值 如 下:
  • 3:前 两 条 队 列 有 效
  • 7:前 三 条 队 列 有 效
  • 15:四 条 队 列 全 部 有 效

repeatTimes

输 入

迭 代 次 数,每 一 次 源 操 作 数 和 目 的 操 作 数 跳 过 四 个 队 列 总 长 度。取 值 范 围:repeatTimes∈[1,255]。

repeatTimes参 数 生 效 是 有 条 件 的,需 要 同 时 满 足 以 下 四 个 条 件:
  • 四 个 源Region Proposals队 列 的 长 度 一 致
  • 四 个 源Region Proposals队 列 连 续 存 储
  • ifExhaustedSuspension = False
  • validBit=15

约 束 说 明

  • 当 存 在proposal[i]与proposal[j]的score值 相 同 时,如 果i>j,则proposal[j]将 首 先 被 选 出 来,排 在 前 面。

  • 操 作 数 地 址 对 齐 要 求 请 参 见通 用 地 址 对 齐 约 束

  • 不 支 持 源 操 作 数 与 目 的 操 作 数 之 间 存 在 地 址 重 叠。

调 用 示 例

详 细 示 例 请 参 考RegionProposalSort样 例

接 口 使 用 样 例

Text
// Region Proposals的 创 建 如 下 所 示
// AscendC::ProposalConcat(vconcatWorkLocal[0], srcLocal[0], repeat, mode);
// AscendC::RpSort16(vconcatWorkLocal[0], vconcatWorkLocal[0], repeat);

// vconcatWorkLocal为 已 经 创 建 并 且 完 成 排 序 的4个Region Proposals,每 个Region Proposal数 目 是16个
// 输 入 数 据 先 经 过ProposalConcat将 连 续 元 素 合 入Region Proposal内 对 应 位 置,然 后 经 过RpSort16对Region Proposals中 的score域 对 其 进 行 排 序 才 是 各 个vconcatWorkLocal。

struct MrgSortSrcList<half> srcList(vconcatWorkLocal[0], vconcatWorkLocal[1], vconcatWorkLocal[2], vconcatWorkLocal[3]);
// 四 个 源Region Proposals队 列 的 长 度 都 是16
uint16_t elementLengths[4] = {16, 16, 16, 16};
// false表 示 某 条 队 列 耗 尽 后,指 令 不 需 要 停 止。15表 示 四 条 队 列 都 是 有 效 队 列。repeat=1,1次 迭 代
struct MrgSort4Info srcInfo(elementLengths, false, 15, 1);
AscendC::MrgSort4(dstLocal, srcList, srcInfo);
Text
示 例 结 果
输 入 数 据(src_gm):
[-38.1    82.7   -40.75  -54.62   21.67  -58.53   25.94  -79.5   -61.44
  26.7   -27.45   48.78   86.75  -18.1   -58.8    62.38   46.38  -78.94
 -87.7   -13.81  -13.25   46.94  -47.8   -50.44   34.16   20.3    80.1
 -94.1    52.4   -42.75   83.4    80.44  -66.8   -82.7   -91.44  -95.6
  66.2   -30.97  -36.53   61.66   24.92  -45.1    38.97  -34.62  -69.8
  59.1    34.22   11.695 -33.47   52.1    -4.832  46.88   56.78   71.4
  13.29  -35.78   52.44  -46.03   83.8    83.56   71.3    -9.086 -65.06
  46.25 ]

// 输 入 数 据 先 经 过ProposalConcat将 连 续 元 素 合 入Region Proposal内 对 应 位 置,然 后 经 过RpSort16对Region Proposals中 的score域 对 其 进 行 排 序 后 变 成4个vconcatWorkLocal,4个 合 并 后 是 输 出。

输 出 数 据(dst_gm):
[
0.0       0.0       0.0       0.0       86.75     0.0       0.0       0.0
0.0       0.0       0.0       83.8      0.0       0.0       0.0       0.0
0.0       0.0       83.56     0.0       0.0       0.0       0.0       0.0
0.0       83.4      0.0       0.0       0.0       0.0       0.0       0.0
82.7      0.0       0.0       0.0       0.0       0.0       0.0       80.44
0.0       0.0       0.0       0.0       0.0       0.0       0.0       80.1
0.0       0.0       0.0       0.0       0.0       0.0       71.4      0.0
0.0       0.0       0.0       0.0       0.0       71.3      0.0       0.0
0.0       0.0       0.0       0.0       66.2      0.0       0.0       0.0
0.0       0.0       0.0       62.38     0.0       0.0       0.0       0.0
0.0       0.0       61.66     0.0       0.0       0.0       0.0       0.0
0.0       59.1      0.0       0.0       0.0       0.0       0.0       0.0
56.78     0.0       0.0       0.0       0.0       0.0       0.0       52.44
0.0       0.0       0.0       0.0       0.0       0.0       52.4      0.0
0.0       0.0       0.0       0.0       0.0       52.1      0.0       0.0
0.0       0.0       0.0       0.0       0.0       48.78     0.0       0.0
0.0       0.0       0.0       0.0       46.94     0.0       0.0       0.0
0.0       0.0       0.0       46.88     0.0       0.0       0.0       0.0
0.0       0.0       46.38     0.0       0.0       0.0       0.0       0.0
0.0       46.25     0.0       0.0       0.0       0.0       0.0       0.0
38.97     0.0       0.0       0.0       0.0       0.0       0.0       34.22
0.0       0.0       0.0       0.0       0.0       0.0       34.16     0.0
0.0       0.0       0.0       0.0       0.0       26.7      0.0       0.0
0.0       0.0       0.0       0.0       25.94     0.0       0.0       0.0
0.0       0.0       0.0       24.92     0.0       0.0       0.0       0.0
0.0       0.0       21.67     0.0       0.0       0.0       0.0       0.0
0.0       20.3      0.0       0.0       0.0       0.0       0.0       0.0
0.0       13.29     0.0       0.0       0.0       0.0       0.0       0.0
11.695    0.0       0.0       0.0       0.0       0.0       0.0       -4.832
0.0       0.0       0.0       0.0       0.0       0.0       -9.086    0.0
0.0       0.0       0.0       0.0       0.0       -13.25    0.0       0.0
0.0       0.0       0.0       0.0       -13.81    0.0       0.0       0.0
0.0       0.0       0.0       -18.1     0.0       0.0       0.0       0.0
0.0       0.0       0.0       -27.45    0.0       0.0       0.0       0.0
0.0       0.0       -30.97    0.0       0.0       0.0       0.0       0.0
0.0       -33.47    0.0       0.0       0.0       0.0       0.0       0.0
-34.62    0.0       0.0       0.0       0.0       0.0       0.0       -35.78
0.0       0.0       0.0       0.0       0.0       0.0       -36.53    0.0
0.0       0.0       0.0       0.0       0.0       -38.1     0.0       0.0
0.0       0.0       0.0       0.0       -40.75    0.0       0.0       0.0
0.0       0.0       0.0       -42.75    0.0       0.0       0.0       0.0
0.0       0.0       -45.1     0.0       0.0       0.0       0.0       0.0
0.0       -46.03    0.0       0.0       0.0       0.0       0.0       0.0
-47.8     0.0       0.0       0.0       0.0       0.0       0.0       0.0
-50.44    0.0       0.0       0.0       0.0       0.0       0.0       -54.62
0.0       0.0       0.0       0.0       0.0       0.0       -58.53    0.0
0.0       0.0       0.0       0.0       0.0       -58.8     0.0       0.0
0.0       0.0       0.0       0.0       -61.44    0.0       0.0       0.0
0.0       0.0       0.0       -65.06    0.0       0.0       0.0       0.0
0.0       0.0       -66.8     0.0       0.0       0.0       0.0       0.0
0.0       -69.8     0.0       0.0       0.0       0.0       0.0       0.0
-78.94    0.0       0.0       0.0       0.0       0.0       0.0       -79.5
0.0       0.0       0.0       0.0       0.0       0.0       -82.7     0.0
0.0       0.0       0.0       0.0       0.0       -87.7     0.0       0.0
0.0       0.0       0.0       0.0       -91.44    0.0       0.0       0.0
0.0       0.0       0.0       -94.1     0.0       0.0       0.0       0.0
0.0       0.0       0.0       -95.6     0.0       0.0       0.0       0.0
]

免 责 声 明:本 站 内 容 由 asc-devkit 仓 master 分 支 自 动 编 译 生 成,属 于 持 续 开 发 版 本,可 能 存 在 缺 陷,仅 供 预 览 与 参 考。如 需 稳 定 及 商 用 资 料,请 查 阅 官 方 昇 腾 社 区