torch.compiler.set_stance
-
torch.compiler.set_stance(stance='default', *, skip_guard_eval_unsafe=False, force_backend=None)[исходный код] -
Задаёт текущее состояние компилятора. Можно использовать как функцию, менеджер контекста или декоратор. Не используйте эту функцию внутри области
torch.compile— в противном случае будет вызвана ошибка.@torch.compile def foo(x): ... @torch.compiler.set_stance("force_eager") def bar(): # will not be compiled foo(...) bar() with torch.compiler.set_stance("force_eager"): # will also not be compiled foo(...) torch.compiler.set_stance("force_eager") # will also not be compiled foo(...) torch.compiler.set_stance("default") # will be compiled foo(...)- Параметры:
-
-
stance (StanceStr) –
Состояние, в которое нужно перевести компилятор. Допустимые значения:
- ”default”: состояние по умолчанию, используемое при обычной компиляции.
- ”force_eager”: игнорировать все директивы
torch.compile. - ”eager_on_recompile”: выполнять код в eager-режиме, когда требуется повторная компиляция. Если для входных данных есть кэшированный скомпилированный код, он всё равно будет использован.
- ”fail_on_recompile”: вызывать ошибку при повторной компиляции функции.
- ”eager_then_compile”: выполнить первый вызов в eager-режиме, а последующие вызовы компилировать. Это полезно для динамических форм, поскольку позволяет определить динамичность по первым двум вызовам вместо того, чтобы тратить ресурсы на статическую компиляцию при первом вызове.
- ”aot_eager_then_compile”: выполнить первый вызов с AOT eager, чтобы получить преимущества экономии памяти от контрольных точек активаций, а последующие вызовы компилировать. Как и eager_then_compile, это улучшает обработку динамических форм, позволяя избежать начальной статической компиляции.
-
skip_guard_eval_unsafe (bool) –
Флаг, позволяющий выполнять только дифференцирующие защитные проверки. ВНИМАНИЕ: этот флаг небезопасен, и его следует использовать только в том случае, если ваша конфигурация соответствует следующим условиям.
torch.compile использует систему защитных проверок для поддержки повторной компиляции и выбора скомпилированного артефакта, который нужно запустить во время выполнения. Эти проверки, несмотря на свою эффективность, создают некоторые накладные расходы, которые могут влиять на производительность в сценариях, где необходимо свести время обработки проверок к минимуму. Этот API позволяет отключить выполнение защитных проверок при условии, что скомпилированная модель была прогрета на достаточно разнообразных входных данных. Это означает, что после этапа прогрева повторная компиляция больше не потребуется. Если это условие не выполняется, существует риск незаметно получить неверные результаты (отсюда слово «небезопасный» в названии API).
-
force_backend (str | Callable[[...], Any] | None) – Если
stanceимеет значение “default”, этот аргумент можно использовать, чтобы принудительно задать дляtorch.compileопределённый бэкенд. В противном случае будет вызвана ошибка.
-
© 2026, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://docs.pytorch.org/docs/2.14/generated/torch.compiler.set_stance.html