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

hset_flag & hwait_flag

功能说明

为了减少同步延迟,提供了hset和hwait标志接口,hset_flag接口中的目的内存由接口立即数指定,都放置在实际的生成者或消费者接口之前。这样可以在同步发生之前通知硬件数据依赖的确切位置。接口的具体功能是,根据传入的内存和管道信息,在对应接口完成相关内存的读写之后,立即获得该事件的型号,不必等待接口的其余部分执行完成。

hset_flag & hwait_flag 仅在Cube和Fixpipe之间(双向)、Cube和Pipe MTE1之间(双向)使用。hset_flag和hwait_flag接口必须放置在相应的生产或消费接口之前,其目标内存由接口的立即数memory 指定,这样硬件可以在同步发生之前被告知数据依赖关系的确切位置。

由于“set & wait”标志必须成对出现,因此在循环体前后会插入多个“虚拟”的“set”or “wait”标志,接口引入了一个新的参数 v 来指示接口是否为虚拟接口。

接口原型

void hset_flag(pipe_t pipe, pipe_t tpipe, event_t eventID, mem_t memory, bool v)
void hset_flag(pipe_t pipe, pipe_t tpipe, uint64_t eventID, mem_t memory, bool v)
void hwait_flag(pipe_t pipe, pipe_t tpipe, uint64_t eventID, mem_t memory, bool v)
void hwait_flag(pipe_t pipe, pipe_t tpipe, event_t eventID, mem_t memory, bool v)

参数说明

pipe_t/event_t 参数参考上一节。

表1 hset/hwait 特有参数说明

参数名

说明

memory

指定的依赖内存

v

虚拟指示器,0表示valid,1表示虚拟

eventID

2bit事件ID,仅支持4个事件ID。

表2 mem_t枚举量

枚举名

枚举值

L1

0

L0A

1

L0B

2

L0C

3

UB

4

BT

5

流水类型

PIPE_S