Event¶
- class torch.Event(device, *, enable_timing)¶
Query and record Stream status to identify or control dependencies across Stream and measure timing.
- Parameters
device (
torch.device
, optional) – the desired device for the Event. If not given, the current accelerator type will be used.enable_timing (bool, optional) – indicates if the event should measure time (default:
False
).
- Returns
An torch.Event object.
- Return type
Example:
>>> e_cuda = torch.Event(device='cuda')
- elapsed_time(end_event) float ¶
Returns the elapsed time in milliseconds between when this event and the
end_event
are each recorded viatorch.Stream.record_event()
.- Parameters
end_event (
torch.Event
) – The ending event has been recorded.- Returns
Time between starting and ending event in milliseconds.
- Return type
Example:
>>> s_cuda = torch.Stream(device='cuda') >>> e1_cuda = s_cuda.record_event() >>> e2_cuda = s_cuda.record_event() >>> ms = e1_cuda.elapsed_time(e2_cuda)
- query() bool ¶
Check if the stream where this event was recorded already moved past the point where the event was recorded. Always returns
True
if the Event was not recorded.- Returns
A boolean indicating if all work currently captured by event has completed.
- Return type
Example:
>>> s_cuda = torch.Stream(device='cuda') >>> e_cuda = s_cuda.record_event() >>> e_cuda.query() True
- record(stream) None ¶
Record the event in a given stream. The stream’s device must match the event’s device. This function is equivalent to
stream.record_event(self)
.- Parameters
stream (
torch.Stream
, optional) – A stream to be recorded.given (If not) –
used. (the current stream will be) –
Example:
>>> e_cuda = torch.Event(device='cuda') >>> e_cuda.record()
- synchronize() None ¶
Wait for the event to complete. This prevents the CPU thread from proceeding until the event completes.
Example:
>>> s_cuda = torch.Stream(device='cuda') >>> e_cuda = s_cuda.record_event() >>> e_cuda.synchronize()
- wait(stream) None ¶
Make all future work submitted to the given stream wait for this event.
- Parameters
stream (
torch.Stream
, optional) – A stream to synchronize.given (If not) –
used. (the current stream will be) –
Example:
>>> s1_cuda = torch.Stream(device='cuda') >>> s2_cuda = torch.Stream(device='cuda') >>> e_cuda = s1_cuda.record() >>> e_cuda.wait(s2)