CANN/asc-devkit SetSkipMsg函数 SetSkipMsg产品支持情况产品是否支持Ascend 950PR/Ascend 950DT√Atlas A3 训练系列产品/Atlas A3 推理系列产品xAtlas A2 训练系列产品/Atlas A2 推理系列产品√Atlas 200I/500 A2 推理产品xAtlas 推理系列产品AI CorexAtlas 推理系列产品Vector CorexAtlas 训练系列产品x功能说明AIC跳过指定个数假消息的处理仅在回调函数中调用。下图中Block0通过调用SetSkipMsg跳过三个假消息。图 1SetSkipMsg示意图![](https://raw.gitcode.com/cann/asc-devkit/raw/68eb55191616e7a7b08961a5c82a706272353b5f/docs/api/figures/SetSkipMsg示意图.png SetSkipMsg示意图?utm_sourcegitcode_repo_files)函数原型__aicore__ inline void SetSkipMsg(uint8_t skipCnt)参数说明表 1接口参数说明参数输入/输出说明skipCnt输入AIC需要跳过的消息数。返回值说明无。约束说明该任务的消息空间后skipCnt个消息队列需要发送FAKE消息。调用示例__aicore__ inline static void Call( MatmulApiCfg mm, __gm__ CubeMsgBody *rcvMsg, CubeResGroupHandleCubeMsgBody handle) { // AIC上计算逻辑用户自行实现 auto skipNum 3;//(rcvMsg-head).skipCnt假消息个数可由用户在回调计算结构体中定义也可以通过自定义消息结构体传递。 auto tmpId handle.FreeMessage(rcvMsg, AscendC::CubeMsgState::VALID); // 当前消息处理完调用FreeMessage代表rcvMsg已处理完 for (int i 1; i skipNum 1; i) { // 由于后续发了三个假消息也需要调用FreeMessage代表假消息处理完毕。 auto tmpId handle.FreeMessage(rcvMsg i, AscendC::CubeMsgState::FAKE); } // 当假消息存在需要调用SetSkipMsg通知Cube核不去处理后面三个假消息。 handle.SetSkipMsg(skipNum); };创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考