下载
中文
注册

关于Stream间任务的同步等待

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

#include "acl/acl.h"
//......
//创建一个Event
aclrtEvent event;
aclrtCreateEvent(&event);

//创建两个Stream
aclrtStream s1;
aclrtStream s2;
aclrtCreateStream(&s1);
aclrtCreateStream(&s2);

//在s1末尾添加了一个event
aclrtRecordEvent(event, s1);

//阻塞s2运行,直到指定event发生,也就是s1执行完成
//s1完成后,唤醒s2,继续执行s2的任务
aclrtStreamWaitEvent(s2, event);

//显式销毁资源
aclrtDestroyStream(s2);
aclrtDestroyStream(s1);
aclrtDestroyEvent(event);
//......