Skip to content
版 本

DeInterleave

产 品 支 持 情 况

产 品

是 否 支 持

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 DeInterleave(const LocalTensor<T>& dst0, const LocalTensor<T>& dst1, const LocalTensor<T>& src0, const LocalTensor<T>& src1, const int32_t count)
    
  • 一 个 输 入

    Text
    template <typename T>
    __aicore__ inline void DeInterleave(const LocalTensor<T>& dst0, const LocalTensor<T>& dst1, const LocalTensor<T>& src, const int32_t srcCount)
    

参 数 说 明

表 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

src/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必 须 为 偶 数。

srcCount

输 入

输 入 数 据 元 素 个 数,两 个 输 出 的 大 小 都 为 输 入 的 一 半。srcCount必 须 为 偶 数。

返 回 值 说 明

约 束 说 明

调 用 示 例

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

  • 两 个 输 入

    Text
    AscendC::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]
    
  • 一 个 输 入

    Text
    AscendC::DeInterleave(dst0Local, dst1Local, srcLocal, 512);
    

    结 果 示 例 如 下:

    Text
    输 入 数 据srcLocal: [1 2 3 ... 512]
    输 出 数 据dst0Local: [1 3 5 ... 511]
    输 出 数 据dst1Local: [2 4 6 ... 512]
    

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