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);