Spec-Zone.ru › PyTorch 2.14

Работа с разрывами графа

Создано: 28 июл. 2025 г. | Последнее обновление: 03 дек. 2025 г.

Как вы, возможно, помните из раздела Основные концепции Dynamo, Dynamo выполняет разрыв графа, когда встречает код, который невозможно отследить. В настройках torch.compile по умолчанию Dynamo компилирует граф FX, построенный к этому моменту, выполняет неподдерживаемый код на обычном Python, а затем возобновляет трассировку.

Разрывы графа позволяют Dynamo трассировать произвольный код Python и выделять функциональные подграфы, каждый из которых можно оптимизировать отдельно.

Однако разрывы графа могут вызывать неожиданное замедление в torch.compile. Если вы не видите ожидаемого ускорения, рекомендуем проверить наличие разрывов графа и устранить их.

В следующих разделах описаны стратегии устранения разрывов графа.

  • Используйте fullgraph=True, чтобы выявить и устранить разрывы графа
    • Стратегия 1: перепишите неподдерживаемый код, используя возможности, поддерживаемые Dynamo
    • Стратегия 2: чистые функции всегда можно скомпилировать с помощью обходного решения.
    • Стратегия 3: не компилируйте код
  • Распространённые разрывы графа
    • Некорректный код
    • Операции, зависящие от данных
    • Вывод и журналирование
  • Используйте torch._dynamo.nonstrict_trace
  • Пользовательские операторы
  • Работа с fullgraph=False
    • Где применять torch.compile?
      • compile(model) и model.compile()
    • Отключение и подавление ошибок
    • Переключение error_on_graph_break
      • Пример error_on_graph_break(False)
      • Пример error_on_graph_break(True)
      • Поведение вложенности error_on_graph_break
      • Взаимодействие с fullgraph
      • Сравнение fullgraph=True/False и error_on_graph_break
    • Вложенные разрывы графа
    • Пропускаемые функции
      • Разрыв графа в цикле
      • Разрыв графа в менеджере контекста
      • Разрыв графа в блоке try
      • Достижение предела повторной компиляции
      • Ошибки компилятора
      • Работа с пропускаемыми функциями

© 2026, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://docs.pytorch.org/docs/2.14/user_guide/torch_compiler/compile/programming_model.graph_breaks_index.html

Spec-Zone.ru

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