CANN/Ascend C SetLocalWorkspace接口

发布时间:2026/7/17 8:29:34
CANN/Ascend C SetLocalWorkspace接口 SetLocalWorkspace【免费下载链接】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 训练系列产品不支持Kirin X90不支持Kirin 9030不支持功能说明对于某些场景Matmul内部需要额外占用VECCALC空间如果用户希望在算子中复用这个额外占用的VECCALC空间则该空间需要用户预留并申请好LocalTensor将其起始物理地址传入给Matmul。具体需要申请的VECCALC临时空间大小由tiling接口MatmulGetTmpBufSize给出满足以下几个条件之一就需要使用该接口传入UB临时空间C矩阵Position为TPosition::GMC矩阵CubeFormat为CubeFormat::NDA矩阵或者B矩阵CubeFormat为CubeFormat::ND存在Bias且Bias的Position不是VECCALC。请在Iterate或者IterateAll之前调用该接口。获取到的UB临时空间大小以字节为单位。函数原型__aicore__ inline void SetLocalWorkspace(const LocalTensoruint8_t tmpBuffer)参数说明参数名输入/输出描述tmpBuffer输入临时空间由用户申请并管理TPosition为VECCALC。返回值说明无约束说明当开启MixDualMaster双主模式场景时即模板参数enableMixDualMaster设置为true不支持使用该接口。调用示例REGIST_MATMUL_OBJ(pipe, GetSysWorkSpacePtr(), mm, tiling); mm.SetLocalWorkspace(mmFormatUb); //设置临时VECCALC空间 mm.SetTensorA(gm_a); mm.SetTensorB(gm_b); if (tiling.isBias) { mm.SetBias(biasGlobal); } mm.IterateAll(gm_c); mm.End();【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考