CANN/asc-devkit核间同步WaitPreBlock

📅 2026/7/15 15:09:14
CANN/asc-devkit核间同步WaitPreBlock
WaitPreBlock产品支持情况产品是否支持Ascend 950PR/Ascend 950DT√Atlas A3 训练系列产品 / Atlas A3 推理系列产品√Atlas A2 训练系列产品 / Atlas A2 推理系列产品√Atlas 200I/500 A2 推理产品xAtlas 推理系列产品 AI Core√Atlas 推理系列产品 Vector CorexAtlas 训练系列产品x功能说明通过读GM地址中的值确认是否需要继续等待当GM的值满足当前核的等待条件时该核即可往下执行进行下一步操作。使用接口前请确保已经调用InitDetermineComputeWorkspace接口初始化共享内存。函数原型__aicore__ inline void WaitPreBlock(GlobalTensorint32_t gmWorkspace, LocalTensorint32_t ubWorkspace)参数说明表 1接口参数说明参数名称输入/输出含义gmWorkspace输入临时空间通过读取gmWorkspace判断当前核是否可以继续往下执行类型为GlobalTensor。ubWorkspace输入临时空间用于操作gmWorkspace类型为LocalTensor。返回值说明无约束说明需要保证每个核调用该接口的次数相同。gmWorkspace申请的空间最少要求为blockNum * 32BytesubWorkspace申请的空间最少要求为blockNum * 32 32Bytes其中blockNum为调用的核数可调用GetBlockNum获取。分离模式下使用该接口进行多核同步时仅对AIV核生效WaitPreBlock和NotifyNextBlock之间仅支持插入矢量计算相关指令对矩阵计算相关指令不生效。使用该接口进行多核控制时算子调用时指定的逻辑numBlocks必须保证不大于实际运行该算子的AI处理器核数否则框架进行多轮调度时会插入异常同步导致Kernel“卡死”现象。调用示例请参考调用示例。创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考