CANN asc-devkit Iterate接口文档
Iterate【免费下载链接】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 训练系列产品不支持功能说明每次调用Iterate时会计算出一个baseM * baseN的结果矩阵并将该结果写入L0C Buffer。接口内部会维护迭代进度每次调用后矩阵的起始地址将进行偏移。如果传入的数据未对齐存在尾块则在最后一次迭代中输出尾块的计算结果。本接口需与GetTensorC接口配合使用在调用本接口后再调用GetTensorC接口L0C Buffer中的数据将被写入目标地址。函数原型template bool sync true __aicore__ inline bool Iterate(bool enPartialSum false)参数说明表1模板参数说明参数名描述sync预留参数用户无需感知。表2接口参数说明参数名输入/输出描述enPartialSum输入预留参数用户无需感知。返回值说明false设置的SingleShape上的所有数据已经算完。true数据仍在迭代计算中。约束说明Iterate接口必须在初始化接口及输入输出配置接口之后进行调用完成卷积反向实现调用顺序如下。Init(...); ... // 输入输出配置 while (Iterate()) { GetTensorC(); } End();在多轮循环计算的场景中在单次循环里计算单核SetSingleShape设置的数据大小。每次单核计算完成后必须将Conv3DBackpropFilter对象的ctx.isFirstIter_设置为true以确保下一轮循环中的单核计算能够正确进行。调用示例while (gradWeight_.Iterate()) { gradWeight_.GetTensorC(output); } // SingleShape计算完成后需要将ctx.isFirstIter_设置为true确保下一块SingleShape的正确计算 gradWeight_.ctx.isFirstIter_ true;【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考