活动 ¶
- class torch.cuda.Event(enable_timing=False, blocking=False, interprocess=False)[source][source]¶
CUDA 事件的包装器。
CUDA 事件是同步标记,可用于监控设备的进度,精确测量时间以及同步 CUDA 流。
基础 CUDA 事件在事件首次记录或导出到另一个进程时才会懒加载初始化。创建后,只有同一设备上的流可以记录事件。然而,任何设备上的流都可以等待该事件。
- 参数:
enable_timing(布尔值,可选)- 表示事件是否测量时间(默认:
False
)blocking(布尔值,可选)- 如果
True
,wait()
将是阻塞的(默认:False
)进程间(布尔值)- 如果
True
,则事件可以在进程间共享(默认:False
)
- elapsed_time(end_event)[source][source]
返回经过的时间。
报告的时间是在事件记录后和 end_event 记录前以毫秒为单位的。
- from_ipc_handle(device, handle)[source][source] ¶
从指定设备上的 IPC 句柄重建事件。
- record(stream=None)[source][source]¶
在给定的流中记录事件。
如果未指定流,则使用
torch.cuda.current_stream()
。流的设备必须与事件设备匹配。
- synchronize()[source][source]¶
等待事件完成。
等待此事件中当前捕获的所有工作完成。这可以防止 CPU 线程在事件完成之前继续执行。
注意
这是围绕
cudaEventSynchronize()
的包装器:请参阅 CUDA 事件文档以获取更多信息。
- wait(stream=None)[源][源] ¶
使所有提交给指定流的未来工作等待此事件。
如果未指定流,请使用
torch.cuda.current_stream()
。注意
这是
cudaStreamWaitEvent()
的包装器:请参阅 CUDA 事件文档以获取更多信息。