同步&异步API说明
CANN支持以下几类显式同步,调用此类接口后,主机线程会阻塞直到相关的任务执行完成。
- 设备同步:aclrtSynchronizeDevice
阻塞当前主机线程直到device上所有显式或隐式创建的stream都完成所有先前下发的任务。应该尽量少使用该函数,以免拖延主机运行。
- 流同步:aclrtSynchronizeStream
阻塞当前主机线程直到指定的stream中完成所有下发的任务。
- 事件同步:aclrtSynchronizeEvent
阻塞当前主机线程直到指定的Event事件完成。属于更细粒度的同步。
对于异步接口,主机线程调用异步接口后仅代表下发任务,在任务未完成前,异步接口已向主机线程返回成功。用户需要调用上面的显式同步接口阻塞主机线程,等待任务完成,否则可能会导致训练或推理等业务异常、Device断链掉卡等未知情况。
父主题: AscendCL API(C&C++)