当不同核之间操作同一块全局内存且可能存在读后写、写后读以及写后写等数据依赖问题时,通过调用该函数来插入同步语句来避免上述数据依赖时可能出现的数据读写错误问题。IBWait与IBSet成对出现配合使用,表示核之间的同步等待指令,等待某一个核操作完成。
1 2 | template<bool isAIVOnly = true> __aicore__ inline void IBWait(const GlobalTensor<int32_t>& gmWorkspace, const LocalTensor<int32_t>& ubWorkspace, int32_t blockIdx, int32_t eventID) |
参数名 |
输入/输出 |
描述 |
---|---|---|
gmWorkspace |
输出 |
外部存储核状态的公共缓存,类型为GlobalTensor。GlobalTensor数据结构的定义请参考GlobalTensor。 |
ubWorkspace |
输入 |
当前核的公共缓存,类型为LocalTensor。 类型为LocalTensor,支持的TPosition为VECIN/VECCALC/VECOUT。 |
blockIdx |
输入 |
表示等待核的idx号,范围:0 ~ 核数-1,不包含自身blockIdx。 |
eventID |
输入 |
用来控制当前核的set、wait事件。 |
isAIVOnly |
输入 |
控制是否为AIVOnly模式,默认为true。 |
无
Atlas 训练系列产品
Atlas推理系列产品AI Core
Atlas A2训练系列产品/Atlas 800I A2推理产品
调用样例请参考调用示例。