Spec-Zone.ru › PyTorch 2.14

FunctionEvent

class torch.autograd.profiler_util.FunctionEvent(id, name, thread, start_us, end_us, overload_name=None, fwd_thread=None, input_shapes=None, stack=None, scope=0, use_device=None, cpu_memory_usage=0, device_memory_usage=0, is_async=False, is_remote=False, sequence_nr=-1, node_id=-1, device_type=<DeviceType.CPU: 0>, device_index=0, device_resource_id=None, is_legacy=False, flops=None, trace_name=None, concrete_inputs=None, kwinputs=None, is_user_annotation=False, is_python_function=False, activity_type=None, metadata_json=None, flow_id=None, flow_type=None, flow_start=None, external_id=0, linked_correlation_id=0, extra_meta=None, structured_input_shapes=None, structured_input_strides=None, input_dtypes=None, python_id=-1, python_parent_id=-1, python_module_id=-1, typed_metadata=None) [исходный код]

Информация профилирования об отдельной функции.

FunctionEvent фиксирует выполнение отдельной операции во время профилирования. Эти события поступают от профилировщика/kineto и содержат подробную информацию о времени выполнения и использовании памяти.

Примечание

Объекты FunctionEvent обычно создаются профилировщиком/kineto, и пользователям не следует создавать их напрямую. Получайте к ним доступ через выходные данные профилировщика.

Переменные:
  • id (int) – Уникальный идентификатор этого события.
  • node_id (int) – Идентификатор узла для распределённого профилирования (-1, если не применимо).
  • name (str) – Имя профилируемой функции/оператора.
  • overload_name (str) – Имя перегрузки оператора (требует установки _ExperimentalConfig(capture_overload_names=True)).
  • trace_name (str) – Совпадает с name, но заменяет ProfilerStep* на ProfilerStep#
  • time_range (Interval) – Временной интервал, содержащий метки времени начала и окончания в микросекундах.
  • thread (int) – Идентификатор потока, в котором началась операция.
  • fwd_thread (int) – Идентификатор потока соответствующей операции прямого прохода.
  • kernels (List[Kernel]) – Список ядер устройства, запущенных этой операцией.
  • count (int) – Количество вызовов этого события (обычно 1).
  • cpu_children (List[FunctionEvent]) – Непосредственные дочерние операции CPU.
  • cpu_parent (FunctionEvent) – Непосредственная родительская операция CPU.
  • input_shapes (List[List[int]]) – Формы входных тензоров (требуется record_shapes=True). Для обычных тензорных входов каждая запись представляет собой список размерностей (например, [16, 16]). Входы TensorList представлены пустым списком []; используйте structured_input_shapes, чтобы получить формы отдельных элементов входов TensorList.
  • concrete_inputs (List[Any]) – Фактические значения входов (требуется record_shapes=true).
  • kwinputs (Dict[str, Any]) – Именованные аргументы (требуется record_shapes=true).
  • stack (List[str]) – Трассировка стека Python, в которой была вызвана операция (требуется with_stack=true).
  • scope (int) – Идентификатор at::RecordScope (0=прямой проход, 1=обратный проход и т. д.).
  • use_device (str) – Тип профилируемого устройства («cuda», «xpu» и т. д.).
  • cpu_memory_usage (int) – Объём памяти CPU, выделенной в байтах.
  • device_memory_usage (int) – Объём памяти устройства, выделенной в байтах.
  • is_async (bool) – Является ли эта операция асинхронной.
  • is_remote (bool) – Выполнялась ли эта операция на удалённом узле.
  • sequence_nr (int) – Номер последовательности для операций autograd.
  • device_type (DeviceType) – Тип устройства (CPU, CUDA, XPU, PrivateUse1 и т. д.).
  • device_index (int) – Индекс устройства (например, GPU 0, 1, 2).
  • device_resource_id (int) – Идентификатор ресурса на устройстве (например, идентификатор потока).
  • is_legacy (bool) – Получено ли это событие от устаревшего профилировщика.
  • flops (int) – Оценочное количество операций с плавающей точкой.
  • is_user_annotation (bool) – Является ли эта область аннотацией пользователя.
  • metadata (Dict[str, Any]) – Дополнительные метаданные с ключами, соответствующими именам полей в экспортированных трассировках. Используйте _ExperimentalConfig(expose_kineto_event_metadata=True) для доступа к метаданным активности Kineto. Доступные поля зависят от типа активности и бэкенда.
  • metadata_json (str) – Устарело. Используйте event_metadata.
  • event_metadata (EventMetadata) – Дополнительные метаданные в структурированном формате.
  • structured_input_shapes (List[List[int] | List[List[int]]]) – Аналог input_shapes, но с различением входов TensorList. Обычные тензорные входы представлены как List[int]; входы TensorList представлены как List[List[int]], содержащие по одной форме для каждого тензора в списке. Соответствует полю "Input Dims" в JSON трассировки Chrome.
  • structured_input_strides (List[List[int] | List[List[int]]]) – Шаги входных тензоров в том же формате, что и structured_input_shapes (требуется record_shapes=True).
Свойства:

cpu_time_total (float): Общее время CPU в микросекундах. device_time_total (float): Общее время устройства (CUDA/XPU и т. д.) в микросекундах. self_cpu_time_total (float): Время CPU без учёта дочерних операций. self_device_time_total (float): Время устройства без учёта дочерних операций. self_cpu_memory_usage (int): Использование памяти CPU без учёта дочерних операций. self_device_memory_usage (int): Использование памяти устройства без учёта дочерних операций. cpu_time (float): Среднее время CPU на один вызов. device_time (float): Среднее время устройства на один вызов. key (str): Ключ для группировки событий (обычно совпадает с name).

См. также

  • torch.profiler.profile: Менеджер контекста для профилирования
  • EventList: Список объектов FunctionEvent со вспомогательными методами
  • FunctionEventAvg: Усреднённая статистика по нескольким объектам FunctionEvent
append_cpu_child(child) [исходный код]

Добавляет дочерний элемент CPU типа FunctionEvent.

К событию следует добавлять только непосредственные дочерние элементы, чтобы корректно рассчитывалось собственное время CPU.

set_cpu_parent(parent) [исходный код]

Задаёт непосредственного родителя CPU типа FunctionEvent.

У события профилирования FunctionEvent должен быть только один родитель CPU, при этом интервал дочернего события должен полностью находиться внутри интервала родительского. Эта связь используется для определения того, относится ли событие к операции верхнего уровня.

© 2026, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://docs.pytorch.org/docs/2.14/generated/torch.autograd.profiler_util.FunctionEvent.html

Spec-Zone.ru

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