Событие
-
class torch.mtia.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.mtia.Event.html