Skip to content
版 本

Interleave

产 品 支 持 情 况

产 品

是 否 支 持

Ascend 950PR/Ascend 950DT

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

x

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

x

Atlas 200I/500 A2 推 理 产 品

x

Atlas 推 理 系 列 产 品AI Core

x

Atlas 推 理 系 列 产 品Vector Core

x

Atlas 训 练 系 列 产 品

x

功 能 说 明

给 定 源 操 作 数src0和src1,将src0和src1中 的 元 素 交 织 存 入 结 果 操 作 数dst0和dst1中。交 织 排 列 方 式 如 下 图 所 示,其 中 每 个 方 格 代 表 一 个 元 素。

函 数 原 型

Text
template <typename T>
__aicore__ inline void Interleave(const LocalTensor<T>& dst0, const LocalTensor<T>& dst1, const LocalTensor<T>& src0, const LocalTensor<T>& src1, const int32_t count)

参 数 说 明

表 1 模 板 参 数 说 明

参 数 名

描 述

T

操 作 数 数 据 类 型。

表 2 参 数 说 明

参 数 名

输 入/输 出

描 述

dst0/dst1

输 出

目 的 操 作 数。

类 型 为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

src0/src1

输 入

源 操 作 数。

类 型 为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

count

输 入

输 入/输 出 数 据 元 素 个 数,dst0/dst1/src0/src1长 度 大 小 均 为count。count必 须 为 偶 数。

返 回 值 说 明

约 束 说 明

调 用 示 例

本 样 例 中 只 展 示Compute流 程 中 的 部 分 代 码。

Text
AscendC::Interleave(dst0Local, dst1Local, src0Local, src1Local, 512);

结 果 示 例 如 下:

Text
输 入 数 据src0Local:[1 2 3 ... 512]
输 入 数 据src1Local:[513 514 515 ... 1024]
输 出 数 据dst0Local:[1 513 2 ... 768]
输 出 数 据dst1Local:[257 769 258 ... 1024]

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