DeInterleave
产 品 支 持 情 况
功 能 说 明
给 定 源 操 作 数src0和src1,将src0和src1中 的 元 素 解 交 织 存 入 结 果 操 作 数dst0和dst1中。解 交 织 排 列 方 式 如 下 图 所 示,其 中 每 个 方 格 代 表 一 个 元 素。

函 数 原 型
两 个 输 入
Texttemplate <typename T> __aicore__ inline void DeInterleave(const LocalTensor<T>& dst0, const LocalTensor<T>& dst1, const LocalTensor<T>& src0, const LocalTensor<T>& src1, const int32_t count)一 个 输 入
Texttemplate <typename T> __aicore__ inline void DeInterleave(const LocalTensor<T>& dst0, const LocalTensor<T>& dst1, const LocalTensor<T>& src, const int32_t srcCount)
参 数 说 明
表 1 模 板 参 数 说 明
表 2 参 数 说 明
类 型 为LocalTensor,支 持 的TPosition为VECIN/VECCALC/VECOUT。 LocalTensor的 起 始 地 址 需 要32字 节 对 齐。 Ascend 950PR/Ascend 950DT,支 持 的 数 据 类 型 为:uint8_t/int8_t/uint16_t/int16_t/half/bfloat16_t/uint32_t/int32_t/float/uint64_t/int64_t | ||
类 型 为LocalTensor,支 持 的TPosition为VECIN/VECCALC/VECOUT。 LocalTensor的 起 始 地 址 需 要32字 节 对 齐。 源 操 作 数 的 数 据 类 型 需 要 与 目 的 操 作 数 保 持 一 致。 Ascend 950PR/Ascend 950DT,支 持 的 数 据 类 型 为:uint8_t/int8_t/uint16_t/int16_t/half/bfloat16_t/uint32_t/int32_t/float/uint64_t/int64_t | ||
输 入/输 出 数 据 元 素 个 数,dst0/dst1/src0/src1长 度 大 小 为count。count必 须 为 偶 数。 | ||
输 入 数 据 元 素 个 数,两 个 输 出 的 大 小 都 为 输 入 的 一 半。srcCount必 须 为 偶 数。 |
返 回 值 说 明
无
约 束 说 明
无
调 用 示 例
本 样 例 中 只 展 示Compute流 程 中 的 部 分 代 码。
两 个 输 入
TextAscendC::DeInterleave(dst0Local, dst1Local, src0Local, src1Local, 512);结 果 示 例 如 下:
Text输 入 数 据src0Local: [1 2 3 ... 512] 输 入 数 据src1Local: [513 514 515 ... 1024] 输 出 数 据dst0Local: [1 3 5 ... 1023] 输 出 数 据dst1Local: [2 4 6 ... 1024]一 个 输 入
TextAscendC::DeInterleave(dst0Local, dst1Local, srcLocal, 512);结 果 示 例 如 下:
Text输 入 数 据srcLocal: [1 2 3 ... 512] 输 出 数 据dst0Local: [1 3 5 ... 511] 输 出 数 据dst1Local: [2 4 6 ... 512]