昇腾社区首页
中文
注册
开发者
下载

set_flag & wait_flag

功能说明

set_flag 和 wait_flag 是一对接口。任何 wait_flag 接口都会等待直到一个具有相同事件 ID 的 set_flag 被执行。对于每一种流水线组合,都有从0到7的事件 ID。set_flag 只是设置位,不会阻塞同一流水中的下一个接口。当 set_flag 之前的所有接口已完成提交,则会触发相应的 wait_flag。

值得注意的是,不允许有两个具有相同ID、流水和触发器对但没有相应wait_flag的set_flag。例如:

set_flag(PIPE_M, PIPE_V, 0);
set_flag(PIPE_M, PIPE_V, 0);  // 非法

接口原型

void set_flag(pipe_t pipe, pipe_t tpipe, uint64_t pipeID);
void set_flag(pipe_t pipe, pipe_t tpipe, event_t pipeID);
void wait_flag(pipe_t pipe, pipe_t tpipe, uint64_t pipeID);
void wait_flag(pipe_t pipe, pipe_t tpipe, event_t pipeID);

参数说明

pipe_t 类型见上一节。在这个接口中,pipe_t 不能为 PIPE_ALL。

表1 同步接口对参数说明

参数名

说明

pipe

需要等待完成的流水

tpipe

等待完成后才能触发的流水

pipeID

3bit 事件 ID,仅支持7个事件 ID

流水类型

PIPE_S