下载
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
昇腾小AI

关于Stream间任务的同步等待

多Stream之间任务的同步等待可以利用Event实现,调用acl.rt.stream_wait_event接口阻塞指定Stream的运行,直到指定的Event完成。需在调用acl.rt.stream_wait_event接口前,先调用acl.rt.record_event接口。

模型加载与执行的流程请参见模型推理

算子加载与执行的流程请参见单算子调用

图1 同步等待流程_多Stream场景

调用接口后,需增加异常处理的分支,并记录报错日志、提示日志,此处不一一列举。以下是关键步骤的代码示例,不可以直接拷贝运行,仅供参考。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
import acl
# ......
# 创建一个Event。
event, ret = acl.rt.create_event()

# 创建两个Stream。
s1, ret = acl.rt.create_stream()
s2, ret = acl.rt.create_stream()

# 在s1末尾添加了一个event。
ret = acl.rt.record_event(event, s1)

# 阻塞s2运行,直到指定Event发生,也就是s1执行完成。
# s1完成后,唤醒s2,继续执行s2的任务。
ret = acl.rt.stream_wait_event(s2, event)

# 显式销毁资源。
ret = acl.rt.destroy_stream(s2)
ret = acl.rt.destroy_stream(s1)
ret = acl.rt.destroy_event(event)
# ......
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词