Spec-Zone.ru › PyTorch 2.14

Событие

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)

Предупреждение

Параметры blocking и interprocess в настоящее время не поддерживаются и ничего не делают.

Возвращает:

Объект torch.Event.

Тип возвращаемого значения:

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) – конечное событие должно быть записано.

Возвращает:

Время между начальным и конечным событиями в миллисекундах.

Тип возвращаемого значения:

float

Пример:

>>> 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, если событие не было записано.

Возвращает:

Логическое значение, указывающее, завершена ли вся работа, связанная с событием.

Тип возвращаемого значения:

bool

Пример:

>>> 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API