Spec-Zone.ru › PyTorch 2.14

Граф

class torch.accelerator.Graph(keep_graph=False, *, pool=None, capture_error_mode='default') [источник]

Обёртка вокруг графа ускорителя, поддерживающая захват и воспроизведение.

Граф захватывает последовательность операций и их зависимости, позволяя эффективно воспроизводить их с меньшими накладными расходами. Этот класс можно использовать как менеджер контекста для автоматического захвата операций в текущем потоке.

Параметры:
  • keep_graph (bool, необязательный) – Если False, базовый граф уничтожается, а исполняемый граф создаётся на GPU в конце capture_end. Если True, базовый граф сохраняется после capture_end. В этом случае исполняемый граф не создаётся автоматически; его необходимо явно создать, вызвав instantiate, иначе он будет создан при первом вызове replay. По умолчанию — False.
  • pool (tuple[int, int], необязательный) – Идентификатор пула памяти для этого графа. Несколько графов могут совместно использовать один пул, если передать один и тот же идентификатор, что позволяет снизить накладные расходы на память. По умолчанию — None.
  • capture_error_mode (Literal["default", "global", "thread_local", "relaxed"], необязательный) – Определяет поведение захвата графа. Точная семантика зависит от бэкенда. "default": поведение захвата по умолчанию, определяемое бэкендом. "global": потенциально небезопасные вызовы API запрещены. Могут возникать ошибки, если захват в текущем потоке влияет на другие потоки. "thread_local": потенциально небезопасные вызовы API запрещены. Ошибки возникают только в том случае, если захват в текущем потоке влияет на сам текущий поток. "relaxed": текущему потоку разрешено выполнять потенциально небезопасные вызовы API, за исключением вызовов, которые непосредственно конфликтуют с захватом потока. Значение по умолчанию: "default".
Тип возвращаемого значения:

Self

Пример:

>>> x = torch.zeros([2000], device=0)

>>> stream = torch.Stream()
>>> graph = torch.accelerator.Graph()
>>> with stream, graph:
...     x += 1

>>> graph.replay()
capture_begin() [источник]

Начать захват графа в текущем потоке.

Все операции в текущем потоке после этого вызова будут записываться в граф до вызова capture_end с использованием пула памяти и режима ошибок захвата, заданных при создании.

capture_end() [источник]

Завершить захват графа в текущем потоке текущего устройства.

После этого вызова граф можно воспроизвести с помощью replay.

debug_dump(path) [источник]

Сохранить захваченный граф в файл для отладки, если режим отладки включён с помощью enable_debug_mode.

Параметры:

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

Пример::
>>> s = torch.Stream()
>>> g = torch.accelerator.Graph()
>>> g.enable_debug_mode()
>>> with s, g:
>>> # ... operations ...
>>> # Dump captured graph to a file "graph_dump.dot"
>>> g.debug_dump("graph_dump.dot")
enable_debug_mode() [источник]

Включить режим отладки для debug_dump.

instantiate() [источник]

Создать экземпляр базового графа. Вызывается методом capture_end, если keep_graph=False, или методом replay, если keep_graph=True и instantiate ещё не был вызван явно.

pool() [источник]

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

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

Пример::
>>> g1 = torch.accelerator.Graph()
>>> g1.capture_begin()
>>> # ... operations ...
>>> g1.capture_end()
>>> # Share g1's memory pool with a new graph
>>> pool_id = g1.pool()
>>> g2 = torch.accelerator.Graph(pool=pool_id)
Тип возвращаемого значения:

tuple[int, int]

replay() [источник]

Воспроизвести работу, захваченную этим графом.

reset() [источник]

Удалить граф, хранящийся в этом экземпляре.

После этого вызова граф можно захватить заново. Задайте graph_pool или capture_error_mode заранее, чтобы использовать другие параметры при следующем захвате.

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

Spec-Zone.ru

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