事件

torch.cuda.Event(enable_timing=False, blocking=False, interprocess=False)[源代码]

CUDA事件的封装类。

CUDA事件是用于同步的标记,可以用来监控设备的进度,精确测量时间,并同步CUDA流。

当事件首次被记录或导出到其他进程时,底层的 CUDA 事件会进行延迟初始化。一旦创建,只有在同一设备上的流才能记录该事件。但是,任何设备上的流都可以等待该事件。

参数
  • enable_timing (bool, 可选) – 是否启用事件的时间测量(默认值: False

  • blocking (bool, 可选) – 如果为Truewait() 将是阻塞的(默认值:False

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

elapsed_time(end_event)[源代码]

返回 elapsed 时间

时间以毫秒为单位报告,从事件被记录之后到结束事件被记录之前。

classmethodfrom_ipc_handle(device, handle)[源代码]

根据给定设备的IPC句柄重建一个事件。

ipc_handle()[源代码]

返回该事件的IPC句柄。

如果没有被记录,该事件将会使用当前设备。

query()[源代码]

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

返回值

一个布尔值,表示事件中所有已捕获的工作是否已完成。

record(stream=None)[源代码]

将事件记录到指定的流中。

如果没有指定流,则使用 torch.cuda.current_stream()。流所在的设备必须与事件所在的设备一致。

synchronize()[源代码]

等待事件结束。

等待此事件中所有当前工作的完成。这会阻止CPU线程在此事件完成前继续执行。

注意

这是对 cudaEventSynchronize() 的封装:更多详情请参阅CUDA 事件文档

wait(stream=None)[源代码]

让所有提交到该流的 future 工作都等待此事件。

如果没有指定流,请使用 torch.cuda.current_stream()

注意

这是一个围绕 cudaStreamWaitEvent() 的封装:更多详情请参阅 CUDA 事件文档

本页目录