Событие
-
class torch.Event(device=None, *, enable_timing=False, blocking=False, interprocess=False) -
Запрашивает и записывает состояние потока, чтобы определять зависимости между потоками или управлять ими, а также измерять время.
- Параметры:
-
-
device (
torch.device, необязательно) – требуемое устройство для события. Если не указано, будет использоваться текущий тип ускорителя. -
enable_timing (bool, необязательно) – указывает, должно ли событие измерять время (по умолчанию:
False) -
blocking (bool, необязательно) – если
True,wait()будет блокирующим (по умолчанию:False) -
interprocess (bool) – если
True, событие можно использовать совместно несколькими процессами (по умолчанию:False)
-
device (
Предупреждение
Параметры blocking и interprocess в настоящее время не поддерживаются и ничего не делают.
- Возвращает:
-
Объект torch.Event.
- Тип возвращаемого значения:
Пример:
>>> event = torch.Event() >>> e_cuda = torch.Event(device='cuda')
-
elapsed_time(end_event) → float -
Возвращает время в миллисекундах между моментами записи этого события и
end_eventс помощьюtorch.Stream.record_event().- Параметры:
-
end_event (
torch.Event) – конечное событие должно быть записано. - Возвращает:
-
Время между начальным и конечным событиями в миллисекундах.
- Тип возвращаемого значения:
Пример:
>>> 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 -
Проверяет, прошёл ли поток, в котором было записано это событие, точку записи события. Всегда возвращает
True, если событие не было записано.- Возвращает:
-
Логическое значение, указывающее, завершена ли вся работа, связанная с событием.
- Тип возвращаемого значения:
Пример:
>>> s_cuda = torch.Stream(device='cuda') >>> e_cuda = s_cuda.record_event() >>> e_cuda.query() True
-
record(stream=None) → None -
Записывает событие в указанном потоке. Устройство потока должно совпадать с устройством события. Эта функция эквивалентна
stream.record_event(self).- Параметры:
-
stream (
torch.Stream, необязательно) – поток, в котором будет записано событие. Если не указан, будет использоваться текущий поток.
Пример:
>>> e_cuda = torch.Event(device='cuda') >>> e_cuda.record()
-
synchronize() → None -
Ожидает завершения события. Поток CPU не продолжит выполнение, пока событие не завершится.
Пример:
>>> s_cuda = torch.Stream(device='cuda') >>> e_cuda = s_cuda.record_event() >>> e_cuda.synchronize()
-
wait(stream=None) → None -
Заставляет всю последующую работу, отправленную в указанный поток, ожидать этого события.
- Параметры:
-
stream (
torch.Stream, необязательно) – поток для синхронизации. Если не указан, будет использоваться текущий поток.
Пример:
>>> s1_cuda = torch.Stream(device='cuda') >>> s2_cuda = torch.Stream(device='cuda') >>> e_cuda = s1_cuda.record() >>> e_cuda.wait(s2)
© 2026, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://docs.pytorch.org/docs/2.14/generated/torch.Event.html