公司动态
CANN Ascend C矩阵计算GetBatchC接口文档
GetBatchC【免费下载链接】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 训练系列产品不支持功能说明GetBatchTensorC接口与该接口的功能相同建议使用GetBatchTensorC。调用一次GetBatchC会获取C矩阵分片该接口可以与IterateNBatch异步接口配合使用。用于在调用IterateNBatch迭代计算后获取一片std::max(batchA, batchB) * singleCoreM * singleCoreN大小的矩阵分片。函数原型template bool sync true __aicore__ inline GlobalTensorDstT GetBatchC(uint32_t batchA, uint32_t batchB, bool enSequentialWrite false)template bool sync true __aicore__ inline void GetBatchC(const LocalTensorDstT c, uint32_t batchA, uint32_t batchB, bool enSequentialWrite false)参数说明表1模板参数说明参数名描述sync通过该参数设置同步或者异步模式同步模式设置为true异步模式设置为false默认为同步模式。表2接口参数说明参数名输入/输出描述batchA输入左矩阵的batch数。batchB输入右矩阵的batch数。enSequentialWrite输入输出是否连续存放数据默认false非连续写模式。c输入C矩阵用于保存矩阵分片。类型为LocalTensor。返回值说明GlobalTensorDstT返回计算的矩阵分片。约束说明当开启MixDualMaster双主模式场景时即模板参数enableMixDualMaster设置为true不支持使用该接口。调用示例// 计算需要多Batch计算循环次数 int g_lay tiling.ALayoutInfoG tiling.BLayoutInfoG ? tiling.ALayoutInfoG : tiling.BLayoutInfoG; int for_exent tiling.ALayoutInfoB * tiling.ALayoutInfoN * g_lay / tiling.BatchNum; mm1.SetTensorA(gm_a[0], isTransposeAIn); mm1.SetTensorB(gm_b[0], isTransposeBIn); if (tiling.isBias) { mm1.SetBias(gm_bias[0]); } // 多batch Matmul计算 mm1.template IterateNBatchfalse(for_exent, batchA, batchB, false); // ...other compute for (int i 0; i for_exent ; i) { mm1.template GetBatchCfalse(ubCmatrix, batchA, batchB); // ...other compute }【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考