asc_get_vms4_sr
产 品 支 持 情 况
| 产 品 | 是 否 支 持 |
|---|---|
| √ | |
| √ |
功 能 说 明
此 接 口 用 于 获 取 执 行asc_mrgsort4操 作 后 的4个 队 列 中,每 个 队 列 已 经 理 过 的Region Proposal个 数。使 用 时,需 要 将asc_mrgsort4中 的if_exhausted_suspension参 数 配 置 为true,该 配 置 模 式 下 某 条 队 列 耗 尽 后,MrgSort4指 令 停 止。
函 数 原 型
C++
__aicore__ inline void asc_get_vms4_sr(uint16_t sorted_num[ASC_C_API_MRGSORT_ELEMENT_LEN])
参 数 说 明
| 参 数 名 | 输 入/输 出 | 描 述 |
|---|---|---|
| sorted_num | 输 出 | 每 个 队 列 已 经 理 过 的Region Proposal个 数。队 列 数 量ASC_C_API_MRGSORT_ELEMENT_LEN值 为4。 |
返 回 值 说 明
无
流 水 类 型
PIPE_S
约 束 说 明
- 需 和asc_mrgsort4操 作 配 合 使 用,且 需asc_mrgsort4中 的if_exhausted_suspension参 数 配 置 为true。
- 需 通 过 同 步 操 作 确 保asc_mrgsort4执 行 完 成 后 再 调 用 本 接 口 获 取 结 果。
调 用 示 例
C++
// 示 例 对4个 已 排 序 好 的Region Proposal队 列 进 行 归 并 排 序,每 个 队 列 包 含32个 元 素。
constexpr uint16_t element_length = 32;
constexpr uint16_t array_length = element_length * 2;
// 每 个 元 素 包 含float32的score和4字 节 的index,占8字 节,相 当 于2个sizeof(float)。
__ubuf__ float src_workspace[array_length * 4];
__ubuf__ float* src[ASC_C_API_MRGSORT_ELEMENT_LEN];
__ubuf__ float dst[array_length * 4];
uint8_t repeat = 1;
uint8_t valid_bit = 0b1111;
bool if_exhausted_suspension = true;
src[0] = &src_workspace[0];
src[1] = &src_workspace[1 * array_length];
src[2] = &src_workspace[2 * array_length];
src[3] = &src_workspace[3 * array_length];
asc_mrgsort4(dst, src, repeat, element_length, element_length, element_length, element_length, if_exhausted_suspension, valid_bit);
asc_sync();
uint16_t sorted_num[ASC_C_API_MRGSORT_ELEMENT_LEN];
asc_get_vms4_sr(sorted_num);