CANN/asc-devkit消息空间申请API
AllocMessage【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit产品支持情况产品是否支持Ascend 950PR/Ascend 950DT√Atlas A3 训练系列产品 / Atlas A3 推理系列产品xAtlas A2 训练系列产品 / Atlas A2 推理系列产品√功能说明AIV从消息队列里申请消息空间用于存放消息结构体返回当前申请的消息空间的地址。消息队列的深度固定为4申请消息空间的顺序为自上而下然后循环。当消息队列指针指向的消息空间为FREE状态时AllocMessage返回空间的地址否则循环等待直到当前空间的状态为FREE。图 1AllocMessage示意图函数原型template PipeMode pipeMode PipeMode::SCALAR_MODE __aicore__ inline __gm__ CubeMsgType *AllocMessage()参数说明表 1模板参数说明参数名描述pipeMode用于配置发送消息的执行单元。PipeMode类型其定义如下enum class PipeMode : uint8_t { SCALAR_MODE 0, // Scalar执行单元往GM上写消息。 MTE3_MODE 1, // 使用MTE3单元往GM上写消息。 MAX }注意pipeMode为MTE3_MODE时后续只能使用PostMessage接口发送消息。同时两个接口AllocMessage与PostMessage的模板参数pipeMode需要相同。返回值说明当前申请的消息空间的地址。约束说明无调用示例auto queIdx AscendC::GetBlockIdx(); handle.AssignQueue(queIdx); auto msgPtr handle.AllocMessage(); // 绑定队列后从该队列中申请消息空间消息空间地址为msgPtr。【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考