Aivizor
Aivizor
СкиныКреативыСообщество
Назад
  1. Сообщество
  2. /
  3. Hugging Face

Первый пост серии объясняет, как профилировать matmul в torch.profiler и читать трассы PyTorch

Новость
О
Ольга Романова
Редактор новостной ленты

5/30/2026, 9:46:23 AM

Первый пост серии объясняет, как профилировать matmul в torch.profiler и читать трассы PyTorch

Публикация от 29 мая 2026 года открывает серию «Profiling in PyTorch» и на примере матричного умножения с bias показывает, как настроить torch.

29 мая 2026 года вышел первый пост серии «Profiling in PyTorch», авторы Aritra Roy Gosthipaty, Sayak Paul, Sergio Paniego, Rémi Ouazan Reboul и Pedro Cuenca пошагово показывают, как с помощью torch.profiler профилировать простую операцию и читать результаты. Это важно, потому что правильный профайлинг помогает находить узкие места и принимать обоснованные решения при оптимизации скорости инференса и обучения.

В качестве отправной точки авторы берут функцию def fn(x, w, b): return torch.add(torch.matmul(x, w), b-то есть матричное умножение с последующим сложением смещения — и сопровождают материал скриптом 01_matmul_add.py. Для замеров рекомендуется оборачивать критические участки в torch.profiler.record_function("matmul_add") и запускать профайлер в контексте torch.profiler.profile(activities=[ProfilerActivity.CPU, ProfilerActivity.CUDA]) с несколькими прогревочными итерациями; в демонстрациях использовалась плата NVIDIA A100-SXM4‑80GB.

Авторы подчёркивают практический контекст: профайлинг обязателен, если нужно повысить tokens/sec для LLM, снизить миллисекунды инференса или понять, почему цикл обучения работает медленнее ожидаемого. При этом они отмечают высокий порог входа для новичков — визуальные трассы часто выглядят как плотные панели прямоугольников, и большинство обучающих материалов подразумевает умение их читать заранее. Сценарий всей серии выстроен от простого к сложному: в начале — матмуль, затем разбор nn.Linear и MLP, и в дальнейшем — применение тех же приёмов к полноценным трансформерам и большим LLM. Такой подход позволяет постепенно перенести навыки чтения трасс и интерпретации таблиц на более сложные модели.

Практическая ценность статьи выражена в наборе конкретных умений: как настроить torch.profiler и какие данные он возвращает; как читать профильную таблицу и визуальную трассу, разделяя CPU‑ленту, GPU‑ленту и промежутки между ними; как проследить цепочку от Python‑вызова до запуска CUDA‑ядра; и как на результаты влияет включение torch.compile. Эти знания помогают локализовать узкие места и обосновать оптимизации на уровне ядер и вызовов.

В конце авторы дают простые рекомендации: держать под рукой исходный скрипт 01_matmul_add.py, давать понятные имена через record_function, прогревать оборудование перед измерением и анализировать соотношение времени запуска на CPU и времени выполнения CUDA‑ядер. Материал сопровождается обновлением на GitHub, служит первым шагом серии и получил небольшое число голосов поддержки на платформе, ориентируясь в первую очередь на начинающих разработчиков PyTorch.

Источники

  1. Hugging Face Blog · 5/29/2026
0
0
0

Ответы (0)

Пока нет ответов в этой теме.

9:41