WaitPreBlock
产品支持情况
功能说明
通过读GM地址中的值,确认是否需要继续等待,当GM的值满足当前核的等待条件时,该核即可往下执行,进行下一步操作。使用接口前,请确保已经调用InitDetermineComputeWorkspace接口,初始化共享内存。
函数原型
__aicore__ inline void WaitPreBlock(GlobalTensor<int32_t>& gmWorkspace, LocalTensor<int32_t>& ubWorkspace)
参数说明
表 1 接口参数说明
返回值说明
无
约束说明
-
需要保证每个核调用该接口的次数相同。
-
gmWorkspace申请的空间最少要求为:blockNum * 32Bytes;ubWorkspace申请的空间最少要求为:blockNum * 32 + 32Bytes;其中blockNum为调用的核数,可调用GetBlockNum获取。
-
分离模式下,使用该接口进行多核同步时,仅对AIV核生效,WaitPreBlock和NotifyNextBlock之间仅支持插入矢量计算相关指令,对矩阵计算相关指令不生效。
-
使用该接口进行多核控制时,算子调用时指定的逻辑blockDim必须保证不大于实际运行该算子的AI处理器核数,否则框架进行多轮调度时会插入异常同步,导致Kernel“卡死”现象。
调用示例
请参考调用示例。