РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
723 of 769 menu

Метод record

Метод record класса Event записывает момент времени события в указанный поток CUDA. Это позволяет измерить время выполнения операций на GPU. Метод принимает один необязательный параметр - поток, в котором происходит запись.

Синтаксис

event.record(stream=None)

Параметр stream задаёт поток CUDA, в котором записывается событие. Если поток не указан, используется текущий поток.

Пример

Давайте создадим событие и запишем его в текущем потоке:

import torch event = torch.Event(enable_timing=True) event.record()

Пример

А теперь запишем событие в конкретном потоке и измерим время выполнения операции:

import torch torch.manual_seed(0) # Создаём поток и событие stream = torch.cuda.Stream() start_event = torch.Event(enable_timing=True) end_event = torch.Event(enable_timing=True) # Записываем начало в потоке start_event.record(stream) # Выполняем операцию в потоке with torch.cuda.stream(stream): t = torch.randn(1000, 1000, device='cuda') t = t @ t.T # Записываем конец в потоке end_event.record(stream) # Синхронизируем поток stream.synchronize() # Вычисляем время time = start_event.elapsed_time(end_event) print(f"Time: {time:.2f} ms")

Результат выполнения кода:

Time: 1.23 ms

В этом примере метод record записывает время начала и конца вычислений в указанном потоке. Это позволяет точно измерить время выполнения операции на GPU.

Пример

Если вызвать record без параметров, событие записывается в текущий поток:

import torch event = torch.Event(enable_timing=True) # Запись в текущем потоке event.record() # Проверяем, записано ли событие print(event.query())

Результат выполнения кода:

True

Метод query возвращает True, если все операции перед событием выполнены.

Смотрите также

  • класс Event,
    который представляет событие CUDA для синхронизации
  • метод wait,
    который заставляет поток ждать наступления события
  • метод query,
    который проверяет, выполнено ли событие
  • метод elapsed_time,
    который вычисляет время между двумя событиями
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить