cann/asc-devkit:SetLoadDataRepeatWithStride接口文档

发布时间:2026/7/16 13:01:54

cann/asc-devkit:SetLoadDataRepeatWithStride接口文档 SetLoadDataRepeatWithStride【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit产品支持情况Ascend 950PR/Ascend 950DT支持Atlas A3 训练系列产品/Atlas A3 推理系列产品不支持Atlas A2 训练系列产品/Atlas A2 推理系列产品不支持Atlas 200I/500 A2 推理产品不支持Atlas 推理系列产品AI Core不支持Atlas 推理系列产品Vector Core不支持Atlas 训练系列产品不支持功能说明头文件路径为basic_api/kernel_operator_mm_intf.h。用于设置LoadDataWithStride接口的repeat参数。设置repeat参数后可以通过调用一次LoadDataWithStride接口完成多个迭代的数据搬运还用于配置输出矩阵K轴方向偏移。函数原型__aicore__ inline void SetLoadDataRepeatWithStride(const LoadDataRepeatParamWithStride repeatParams)参数说明表1参数说明参数名称输入/输出含义repeatParams输入设置LoadDataWithStride接口的repeat参数类型为SetLoadDataRepeatWithStride。具体定义请参考${INSTALL_DIR}/include/ascendc/basic_api/interface/kernel_struct_mm.h${INSTALL_DIR}请替换为CANN软件安装后文件存储路径。参数说明请参考表2。表2LoadDataRepeatParamWithStride结构体参数说明参数名称含义repeatStrideheight/width方向上的前一个迭代与后一个迭代起始地址的距离取值范围repeatStride∈[0, 65535]默认值为0。• repeatMode为0repeatStride的单位为16个元素。• repeatMode为1repeatStride的单位为32/sizeof(data_type)个元素data_type指源操作数的数据类型。repeatTimeheight/width方向上的迭代次数取值范围repeatTime∈[0, 255]。默认值为1。repeatMode控制repeat迭代的方向取值范围repeatMode∈[0, 1]。默认值为0。• 0迭代沿height方向• 1迭代沿width方向。dstStride输出矩阵K轴方向偏移以512字节的分形为单位。返回值说明无约束说明repeatTime0表示不执行搬运LoadDataWithStride接口将被视为NOP空操作。调用LoadDataWithStride接口时必须配置本接口中的dstStride参数若不使能repeat模式repeatTime、repeatStride、repeatMode使用默认构造值。调用示例本接口用于配合LoadDataWithStride接口使用展示代码示例片段// LoadDataWithStride指令完成img2col的过程可知 img2col后A矩阵高度为ho * wo,根据ho和wo的计算公式代入卷积核宽度、卷积核滑动步长、卷积核膨胀系数等参数可知A矩阵的高度为CeilAlign(k, fractalShape[0])img2col后A矩阵宽度为ci * kh * kw代入kh1kw1可知A矩阵的宽度为CeilAlign(m, fractalShape[1])。最后配置loadDataParams.enTranspose true将整个A 矩阵转置并且将其中每一个分形转置。 AscendC::LoadData3DParamsV2T loadDataParams; // 设置loadDataParams相关参数 ... // 使用SetLoadDataRepeatWithStride接口设置LoadDataWithStride接口的repeat参数 AscendC::LoadDataRepeatParamWithStride repeatParams; repeatParams.repeatTime 1; // height/width方向上的迭代次数 repeatParams.repeatStride 1; // height/width方向上前后迭代起始位置的距离 repeatParams.repeatMode 0; // 迭代方向0迭代沿height; 1迭代沿width repeatParams.dstStride CeilDivision(m, fractalShape[0]); // 输出矩阵K轴方向偏移 AscendC::SetLoadDataRepeatWithStride(repeatParams); AscendC::LoadDataWithStride(a2Local, a1Local, loadDataParams);【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻