Skip to content
版 本

SetPadValue(ISASI)

产 品 支 持 情 况

产 品

是 否 支 持

Ascend 950PR/Ascend 950DT

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

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

Atlas 200I/500 A2 推 理 产 品

x

Atlas 推 理 系 列 产 品AI Core

x

Atlas 推 理 系 列 产 品Vector Core

x

Atlas 训 练 系 列 产 品

x

功 能 说 明

设 置DataCopyPad需 要 填 充 的 数 值。支 持 的 通 路 如 下:

  • GM->VECIN/GM->VECOUT

函 数 原 型

Text
template <typename T, TPosition pos = TPosition::MAX>
__aicore__ inline void SetPadValue(T paddingValue)

参 数 说 明

表 1 模 板 参 数 说 明

参 数 名

输 入/输 出

描 述

T

输 入

填 充 值 的 数 据 类 型,与DataCopyPad接 口 搬 运 的 数 据 类 型 一 致。

pos

输 入

用 于 指 定DataCopyPad接 口 搬 运 过 程 中 从GM搬 运 数 据 到 哪 一 个 目 的 地 址,目 的 地 址 通 过 逻 辑 位 置 来 表 达。默 认 值 为TPosition::MAX,等 效 于TPosition::VECIN或TPosition::VECOUT。

支 持 的 取 值 为:

  • TPosition::VECIN、TPosition::VECOUT、TPosition::MAX

表 2 参 数 说 明

参 数 名

输 入/输 出

描 述

paddingValue

输 入

DataCopyPad接 口 填 充 的 数 值,数 据 与DataCopyPad接 口 搬 运 的 数 据 类 型 一 致。

返 回 值 说 明

约 束 说 明

调 用 示 例

更 多 样 例 请 参 见DataCopyPad样 例

Text
uint32_t m_n1 = 32;
uint32_t m_n2 = 31;
uint32_t m_n2Align = n2 % 32 == 0 ? n2 : (n2 / 32 + 1) * 32;

AscendC::LocalTensor<float> srcLocal = m_queInSrc.AllocTensor<float>();
AscendC::DataCopyExtParams dataCopyExtParams;
AscendC::DataCopyPadExtParams<float> padParams;

dataCopyExtParams.blockCount = m_n1; // Block个 数,拷 贝 的 的 次 数
dataCopyExtParams.blockLen = m_n2 * sizeof(float); // 一 次 拷 贝 多 少 个32B
dataCopyExtParams.srcStride = 0;
dataCopyExtParams.dstStride = 0;

padParams.isPad = true;
padParams.leftPadding = 0;
padParams.rightPadding = 1;

AscendC::SetPadValue((float)37); // 设 置Pad的 值 为37
AscendC::DataCopyPad(srcLocal, m_srcGlobal, dataCopyExtParams, padParams);
Text
输 入 数 据(srcGm, shape = [32, 31]):[[1, 1, 1, ..., 1], [1, 1, 1, ..., 1], ... , [1, 1, 1, ..., 1]]
输 出 数 据(dstGm, shape = [32, 32]):[[1, 1, 1, ..., 1, 37], [1, 1, 1, ..., 1, 37], ... , [1, 1, 1, ..., 1, 37]]
Text
// 对 于 不 支 持 使 用 立 即 数 进 行 赋 值 和 初 始 化 的 数 据 类 型,如 下 是 一 个 输 入 类 型bfloat16_t的 示 例:
AscendC::SetPadValue(m_srcGlobal.GetValue(0));
AscendC::DataCopyPad(srcLocal, m_srcGlobal, dataCopyExtParams, padParams);

输 入 数 据(srcGm, shape = [32, 31]):[[1, 2, 3, ..., 31], [1, 2, 3, ..., 31], ... , [1, 2, 3, ..., 31]]
输 出 数 据(dstGm, shape = [32, 32]):[[1, 2, 3, ..., 31, 1], [1, 2, 3, ..., 31, 1], ... , [1, 2, 3, ..., 31, 1]]

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