Skip to content

SetLoadDataPaddingValue

产品支持情况

  • Ascend 950PR/Ascend 950DT:支持
  • Atlas A3 训练系列产品/Atlas A3 推理系列产品:支持
  • Atlas A2 训练系列产品/Atlas A2 推理系列产品:支持
  • Atlas 200I/500 A2 推理产品:支持
  • Atlas 推理系列产品AI Core:支持
  • Atlas 推理系列产品Vector Core:不支持
  • Atlas 训练系列产品:不支持
  • Kirin X90:支持
  • Kirin 9030:支持

功能说明

头文件路径为:"basic_api/kernel_operator_mm_intf.h"

用于调用LoadData(卷积数据搬运)接口时设置Pad填充的数值。LoadData(卷积数据搬运)的模板参数isSetPadding设置为false时,用户需要通过本接口设置Pad填充的数值,设置为true时,本接口设置的填充值不生效。

函数原型

C++
template <typename T>
__aicore__ inline void SetLoadDataPaddingValue(const T padValue)

参数说明

表1 参数说明

参数名称输入/输出含义
padValue输入Pad填充值的数值。

数据类型

Ascend 950PR/Ascend 950DT,支持数据类型为:int8_t、uint8_t、int16_t、uint16_t、half、bfloat16_t、int32_t、uint32_t、float。

Atlas 推理系列产品AI Core,支持的数据类型为:int8_t、uint8_t、int16_t、uint16_t、half。

Atlas A2训练系列产品/Atlas A2推理系列产品,支持数据类型:int8_t、uint8_t、int16_t、uint16_t、half、bfloat16_t、int32_t、uint32_t、float。

Atlas A3训练系列产品/Atlas A3推理系列产品,支持数据类型:int8_t、uint8_t、int16_t、uint16_t、half、bfloat16_t、int32_t、uint32_t、float。

Atlas 200I/500 A2 推理产品,支持数据类型:int8_t、uint8_t、int16_t、uint16_t、half、bfloat16_t、int32_t、uint32_t、float。

Kirin X90,支持数据类型:int8_t、half。

Kirin 9030,支持数据类型:half。

返回值说明

约束说明

调用示例

参考调用示例

展示代码示例片段:

C++
// LoadData(卷积数据搬运)v2指令完成img2col的过程,可知img2col后A矩阵高度为ho * wo,根据ho和wo的计算公式,代入卷积核宽度、卷积核滑动步长、卷积核膨胀系数等参数可知:A矩阵的高度为CeilAlign(k, fractalShape[0]);img2col后A矩阵宽度为ci * kh * kw,代入kh=1,kw=1,可知A矩阵的宽度为CeilAlign(m, fractalShape[1])。最后,配置loadDataParams.enTranspose = true,将整个A矩阵转置并且将其中每一个分形转置
// 使用load3d接口,实现NZ2ZZ
AscendC::LoadData3DParamsV2<T> loadDataParams;
// 设置loadDataParams相关参数
...
// 设置不在LoadData(卷积数据搬运)接口内部设置相关属性,通过外部接口显式调用设置
static constexpr AscendC::IsResetLoad3dConfig LOAD3D_CONFIG = {false, false};

// 使用SetLoadDataPaddingValue接口,设置LoadData(卷积数据搬运)接口的padValue参数
AscendC::SetLoadDataPaddingValue(0);

AscendC::LoadData<T, LOAD3D_CONFIG>(a2Local, a1Local, loadDataParams);

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