aclrtStreamWaitEvent
产品支持情况
| 
          产品  | 
        
          是否支持  | 
       
|---|---|
| 
          | 
        
          √  | 
       
| 
          | 
        
          √  | 
       
| 
          | 
        
          √  | 
       
| 
          | 
        
          √  | 
       
| 
          | 
        
          √  | 
       
| 
          | 
        
          √  | 
       
功能说明
阻塞指定Stream的运行,直到指定的Event完成,支持多个Stream等待同一个Event的场景。
本接口是异步接口,调用接口成功仅表示任务下发成功,不表示任务执行成功。调用该接口后,需调用同步等待接口(例如,aclrtSynchronizeStream)确保任务已执行完成,否则可能会导致训练或推理等业务异常、Device断链掉卡等未知情况。
提交到Stream上的所有后续任务都需要等待Event捕获的任务都完成后才能开始执行。具体见aclrtRecordEvent接口了解Event捕获的细节。
函数原型
aclError aclrtStreamWaitEvent(aclrtStream stream, aclrtEvent event)
参数说明
| 
          参数名  | 
        
          输入/输出  | 
        
          说明  | 
       
|---|---|---|
| 
          stream  | 
        
          输入  | 
        
          指定Stream。例如,Stream2等待Stream1的场景,此处配置为Stream2。 如果使用默认Stream,此处设置为NULL。  | 
       
| 
          event  | 
        
          输入  | 
        
          需等待的Event。  | 
       
返回值说明
返回0表示成功,返回其他值表示失败,请参见aclError。
约束说明
一个进程内,调用aclInit接口初始化后,若再调用aclrtSetOpWaitTimeout接口设置超时时间,那么本进程内后续调用aclrtStreamWaitEvent接口下发的任务支持在所设置的超时时间内等待,若等待的时间超过所设置的超时时间,则在调用同步等待接口(例如,aclrtSynchronizeStream)后,会返回报错。