Event — PyTorch 2.7 documentation (original) (raw)
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 via torch.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)
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 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()
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()
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)