Spec-Zone.ru › PyTorch 2.14

EventList

class torch.autograd.profiler_util.EventList(*args, **kwargs) [исходный код]

Список событий профилирования со вспомогательными методами для анализа и визуализации.

EventList расширяет стандартный список Python, предоставляя специализированные методы для работы с событиями профилирования (объектами FunctionEvent или FunctionEventAvg). Он включает средства для агрегирования статистики, форматирования выходных таблиц и экспорта данных профилирования.

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

Параметры:
  • *args – Стандартные аргументы списка.
  • use_device (str, необязательно) – Тип устройства для профилирования («cuda», «xpu» и т. д.).
  • profile_memory (bool, необязательно) – Было ли включено профилирование памяти. По умолчанию: False.
  • with_flops (bool, необязательно) – Следует ли включать подсчёт FLOP. По умолчанию: False.
Переменные:
  • _use_device (str) – Тип устройства, для которого выполняется профилирование.
  • _profile_memory (bool) – Включено ли профилирование памяти.
  • _with_flops (bool) – Включён ли подсчёт FLOP.
  • _tree_built (bool) – Построена ли структура дерева событий.
Основные методы:

table(…): форматирует события в виде строки таблицы для отображения. export_chrome_trace(path): экспортирует данные в формат трассировки Chrome. export_stacks(path, metric): экспортирует трассировки стека с метриками. key_averages(…): вычисляет усреднённую статистику, сгруппированную по имени операции. total_average(): вычисляет общие итоговые значения для всех событий (суммы, а не средние значения).

Свойства:

self_cpu_time_total: сумма собственного времени CPU по всем событиям.

Пример:

import torch
from torch.profiler import profile, ProfilerActivity

with profile(activities=[ProfilerActivity.CPU]) as prof:
    x = torch.randn(100, 100)
    y = torch.matmul(x, x)

# EventList is returned by prof.events()
events = prof.events()

# Display as formatted table
print(
    events.table(
        sort_by="cpu_time_total", row_limit=20, top_level_events_only=False
    )
)

# Export to Chrome tracing format
events.export_chrome_trace("trace.json")

# Get averaged statistics
avg_events = events.key_averages()
print(avg_events.table())

# Export stack traces
events.export_stacks("stacks.txt", "self_cpu_time_total")

См. также

  • FunctionEvent: отдельное событие профилирования
  • FunctionEventAvg: усреднённая статистика профилирования
  • table(): форматирует события в удобочитаемую таблицу
  • key_averages(): агрегирует события по имени операции
append(object, /)

Добавляет объект в конец списка.

clear()

Удаляет все элементы из списка.

copy()

Возвращает поверхностную копию списка.

count(value, /)

Возвращает количество вхождений значения.

export_chrome_trace(path) [исходный код]

Экспортирует EventList в файл для инструментов трассировки Chrome.

Эту запись можно позднее загрузить и просмотреть по адресу chrome://tracing.

Параметры:

path (str) – Путь, по которому будет сохранена трассировка.

extend(iterable, /)

Расширяет список, добавляя элементы из итерируемого объекта.

index(value, start=0, stop=9223372036854775807, /)

Возвращает индекс первого вхождения значения.

Вызывает ValueError, если значение отсутствует.

insert(index, object, /)

Вставляет объект перед указанным индексом.

key_averages(group_by_input_shapes=False, group_by_stack_n=0, group_by_overload_name=False, include_python_functions=False) [исходный код]

Вычисляет средние значения для всех событий функций, группируя их по ключам.

Параметры:
  • group_by_input_shapes – группировать записи по (имени события, формам входных данных), а не только по имени события. Это помогает определить, какие формы входных данных сильнее всего влияют на время выполнения, и может помочь с оптимизацией для определённых размеров или выбором наиболее подходящих кандидатов для квантования (то есть с подбором под roofline-модель).
  • group_by_stack_n – группировать по первым n записям трассировки стека
  • group_by_overload_name – различать операторы по имени их перегрузки, например aten::add.Tensor
  • separately (и aten::add.out будут агрегированы) –
  • include_python_functions – включать события функций Python (например, отдельные записи мест вызова функций Python, зафиксированные с помощью with_stack=True) в средние значения. По умолчанию они исключены, так как часто выглядят как вводящие в заблуждение горячие точки (например, threading.py: wait), затеняющие реальную детализацию на уровне операторов. Установите значение True, чтобы восстановить исходное представление для каждого места вызова.
Возвращает:

EventList, содержащий объекты FunctionEventAvg.

pop(index=-1, /)

Удаляет и возвращает элемент по указанному индексу (по умолчанию — последний).

Вызывает IndexError, если список пуст или индекс выходит за его границы.

remove(value, /)

Удаляет первое вхождение значения.

Вызывает ValueError, если значение отсутствует.

reverse()

Разворачивает список НА МЕСТЕ.

sort(*, key=None, reverse=False)

Сортирует список по возрастанию и возвращает None.

Сортировка выполняется на месте (то есть сам список изменяется) и является стабильной (то есть порядок двух равных элементов сохраняется).

Если задана функция ключа, она применяется к каждому элементу списка один раз, после чего элементы сортируются по возрастанию или убыванию в соответствии со значениями, возвращёнными этой функцией.

Для сортировки по убыванию можно установить флаг reverse.

table(sort_by=None, row_limit=100, max_src_column_width=75, max_name_column_width=55, max_shapes_column_width=80, header=None, top_level_events_only=False, time_unit=None) [исходный код]

Выводит EventList в виде аккуратно отформатированной таблицы.

Параметры:
  • sort_by (str, необязательно) – Атрибут, используемый для сортировки записей. По умолчанию они выводятся в том же порядке, в котором были зарегистрированы. Допустимые ключи: cpu_time, cuda_time, xpu_time, cpu_time_total, cuda_time_total, xpu_time_total, cpu_memory_usage, cuda_memory_usage, xpu_memory_usage, self_cpu_memory_usage, self_cuda_memory_usage, self_xpu_memory_usage, count.
  • top_level_events_only (bool, необязательно) – Логический флаг, определяющий, какие события отображать. Если значение истинно, профилировщик будет отображать только события верхнего уровня, такие как вызовы верхнего уровня python lstm, python add или других функций. Вложенные события, например низкоуровневые операции cpu/cuda/xpu, не отображаются, чтобы результаты профилирования оставались понятными.
  • time_unit (str, необязательно) – Единица времени, используемая для всех значений в таблице. Допустимые варианты: s, ms и us.
Возвращает:

Строку с таблицей.

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

Вычисляет агрегированную статистику по всем событиям.

Собирает статистику всех событий в один объект FunctionEventAvg. Это в первую очередь полезно для вычисления суммарных метрик (общего времени CPU, общего использования памяти и т. д.) за весь сеанс профилирования независимо от типа операции.

Примечание

Этот метод суммирует время и количество вызовов для ВСЕХ различных операций, поэтому метрики «средних» значений (например, cpu_time) отражают среднее время на вызов операции за весь сеанс с учётом всех типов операций. Для вычисления средних значений по каждой операции используйте вместо этого key_averages().

Возвращает:
Единый агрегированный объект с ключом key=”Total”, содержащий

накопленную статистику.

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

FunctionEventAvg

© 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.EventList.html

Spec-Zone.ru

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