Wait
功能说明
在调用PostMessage或PostFakeMessage后,查询该消息是否已被AIC处理完。
函数原型
1 2 |
template <bool sync = true> __aicore__ inline bool Wait(uint16_t offset) |
参数说明
参数 |
输入/输出 |
说明 |
---|---|---|
sync |
输入 |
查询消息时,程序的运行是否需要等待。参数取值如下:
|
参数 |
输入/输出 |
说明 |
---|---|---|
offset |
输入 |
消息空间地址偏移量,通过PostMessage或者PostFakeMessage的返回值获取。 |
返回值
- true:当前消息已被AIC处理完。
- false:当前消息未被AIC处理完。
支持的型号
Atlas A2训练系列产品/Atlas 800I A2推理产品
约束说明
无
调用示例
1 2 3 4 5 6 7 8 9 |
auto msgPtr = a.AllocMessage(); // 在msgPtr指针这个位置,可以发送一个新消息 AscendC::CubeGroupMsgHead headA = {AscendC::CubeMsgState::VALID, 0}; AscendC::CubeMsgBody msgA = {headA, 1, 0, 0, false, false, false, false, 0, 0, 0, 0, 0, 0, 0, 0}; auto id = a.PostMessage(msgPtr, msgA); // 在msgPtr指针位置,填充用户自定义的消息结构体,并发送 bool waitState = a.template Wait<true>(id); // 等待AIC处理完msgA // 假消息场景 auto msgFake = qk.AllocMessage(); id = qk.PostFakeMsg(msgFake); bool waitState = qk.template Wait<true>(id); // 等待AIC处理完假消息msgFake |
父主题: CubeResGroupHandle