Event#
- class torch.cuda.Event(enable_timing=False, blocking=False, interprocess=False, external=False)[source]#
Wrapper around a CUDA event.
CUDA events are synchronization markers that can be used to monitor the device’s progress, to accurately measure timing, and to synchronize CUDA streams.
The underlying CUDA events are lazily initialized when the event is first recorded or exported to another process. After creation, only streams on the same device may record the event. However, streams on any device can wait on the event.
- 参数
enable_timing (bool, optional) – indicates if the event should measure time (default:
False
)blocking (bool, optional) – if
True
,wait()
will be blocking (default:False
)interprocess (bool) – if
True
, the event can be shared between processes (default:False
)external (bool, optional) – indicates whether this event should create event record and event wait nodes, or create an internal cross-stream dependency, when captured in a cuda graph. See cross-stream dependencies, cudaEventRecordExternal, and cudaEventWaitExternal for more information about internal vs. external events. (default:
False
)
- elapsed_time(end_event)[source]#
Return the time elapsed.
Time reported in milliseconds after the event was recorded and before the end_event was recorded.
- classmethod from_ipc_handle(device, handle)[source]#
Reconstruct an event from an IPC handle on the given device.
- ipc_handle()[source]#
Return an IPC handle of this event.
If not recorded yet, the event will use the current device.
- query()[source]#
Check if all work currently captured by event has completed.
- 返回
一个布尔值,指示当前由事件捕获的所有工作是否已完成。
- record(stream=None)[source]#
Record the event in a given stream.
Uses
torch.cuda.current_stream()
if no stream is specified. The stream’s device must match the event’s device.
- synchronize()[source]#
Wait for the event to complete.
Waits until the completion of all work currently captured in this event. This prevents the CPU thread from proceeding until the event completes.
注意
This is a wrapper around
cudaEventSynchronize()
: see CUDA Event documentation for more info.
- wait(stream=None)[source]#
使提交给给定流的所有未来工作等待此事件。
Use
torch.cuda.current_stream()
if no stream is specified.注意
This is a wrapper around
cudaStreamWaitEvent()
: see CUDA Event documentation for more info.