评价此页

Event#

class torch.cuda.Event(enable_timing=False, blocking=False, interprocess=False, external=False)[源]#

CUDA 事件的包装器。

CUDA 事件是用于监视设备进度、精确测量时间以及同步 CUDA 流的同步标记。

底层 CUDA 事件会在事件首次记录或导出到另一个进程时进行惰性初始化。创建后,只有同一设备上的流才能记录该事件。但是,任何设备上的流都可以等待该事件。

参数
  • enable_timing (bool, optional) – 指示事件是否应测量时间(默认值:False

  • blocking (bool, optional) – 如果为 True,则 wait() 将是阻塞的(默认为 False)。

  • interprocess (bool) – 如果为 True,则事件可以在进程之间共享(默认值:False

  • external (bool, optional) – 指示在 CUDA 图中捕获时,此事件是否应创建事件记录和事件等待节点,或创建内部跨流依赖关系。有关内部与外部事件的更多信息,请参阅 跨流依赖项cudaEventRecordExternalcudaEventWaitExternal。(默认为 False)。

elapsed_time(end_event)[源]#

返回经过的时间。

报告时间单位为毫秒,表示自事件记录到 end_event 记录之前的时间。

classmethod from_ipc_handle(device, handle)[源]#

从给定设备上的 IPC handle 重构一个事件。

ipc_handle()[源]#

返回此事件的 IPC handle。

如果尚未记录,事件将使用当前设备。

query()[源]#

检查事件捕获的所有工作是否已完成。

返回

一个布尔值,指示当前由事件捕获的所有工作是否已完成。

record(stream=None)[源]#

在给定的流中记录事件。

如果未指定流,则使用 torch.cuda.current_stream()。流的设备必须与事件的设备匹配。

synchronize()[源]#

等待事件完成。

Waits until the completion of all work currently captured in this event. This prevents the CPU thread from proceeding until the event completes.

注意

这是 cudaEventSynchronize() 的包装器:有关更多信息,请参阅 CUDA 事件文档

wait(stream=None)[源]#

使提交给给定流的所有未来工作等待此事件。

如果未指定流,则使用 torch.cuda.current_stream()

注意

这是 cudaStreamWaitEvent() 的包装器:有关更多信息,请参阅 CUDA 事件文档