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

Returns

An torch.Event object.

Return type

Event

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

float

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

bool

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

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

Example:

s1_cuda = torch.Stream(device='cuda') s2_cuda = torch.Stream(device='cuda') e_cuda = s1_cuda.record() e_cuda.wait(s2)