torch.backends
Дата создания: Sep 16, 2020 | Дата последнего обновления: Jul 08, 2026
torch.backends управляет поведением различных бэкендов, поддерживаемых PyTorch.
К этим бэкендам относятся:
torch.backends.cputorch.backends.cudatorch.backends.cudnntorch.backends.cusparselttorch.backends.mhatorch.backends.mpstorch.backends.mkltorch.backends.mkldnntorch.backends.nnpacktorch.backends.openmptorch.backends.opt_einsumtorch.backends.python_nativetorch.backends.xeon
torch.backends.cpu
-
torch.backends.cpu.get_cpu_capability()[исходный код] -
Возвращает возможности CPU в виде строкового значения.
Возможные значения: - “DEFAULT” - “VSX” - “Z VECTOR” - “NO AVX” - “AVX2” - “AVX512” - “SVE256”
- Тип возвращаемого значения:
torch.backends.cuda
-
torch.backends.cuda.is_built()[исходный код] -
Возвращает, собрана ли PyTorch с поддержкой CUDA.
Обратите внимание: это не обязательно означает, что CUDA доступна; это лишь означает, что если бы этот бинарный файл PyTorch запускался на компьютере с работающими драйверами и устройствами CUDA, мы могли бы её использовать.
-
torch.backends.cuda.matmul.allow_tf32 -
bool, определяющий, можно ли использовать тензорные ядра TensorFloat-32 при умножении матриц на GPU Ampere и новее. Параметр allow_tf32 будет объявлен устаревшим. См. TensorFloat-32 (TF32) на устройствах Ampere и новее.
-
torch.backends.cuda.matmul.allow_fp16_reduced_precision_reduction -
bool, определяющий, разрешены ли редукции с пониженной точностью (например, с типом накопления fp16) при умножении матриц fp16 (GEMM). Сведения о присваивании кортежей и поведении split-k см. в разделе Редукция с пониженной точностью в GEMM FP16.
-
torch.backends.cuda.matmul.allow_fp16_reduced_precision_reduction_split_k -
Доступное только для чтения значение
bool, указывающее, можно ли применять эвристики split-K для GEMM fp16 при передаче управления в cuBLASLt. Сведения об управлении этим значением см. в разделе Редукция с пониженной точностью в GEMM FP16.
-
torch.backends.cuda.matmul.prefer_cublaslt_grouped_gemm -
bool, определяющий, следует ли поддерживаемым групповым операциям GEMM отдавать предпочтение бэкенду cuBLASLt.
-
torch.backends.cuda.matmul.allow_bf16_reduced_precision_reduction -
bool, определяющий, разрешены ли редукции с пониженной точностью при умножении матриц bf16 (GEMM). Сведения о присваивании кортежей и поведении split-k см. в разделе Редукция с пониженной точностью в GEMM BF16.
-
torch.backends.cuda.matmul.allow_bf16_reduced_precision_reduction_split_k -
Доступное только для чтения значение
bool, указывающее, можно ли применять эвристики split-K для GEMM bf16 при передаче управления в cuBLASLt. Сведения об управлении этим значением см. в разделе Редукция с пониженной точностью в GEMM BF16.
-
torch.backends.cuda.cufft_plan_cache -
cufft_plan_cacheсодержит кэши планов cuFFT для каждого устройства CUDA. Запросить кэш конкретного устройстваiможно с помощьюtorch.backends.cuda.cufft_plan_cache[i].-
torch.backends.cuda.cufft_plan_cache.size -
Доступное только для чтения значение
int, показывающее количество планов в кэше планов cuFFT.
-
torch.backends.cuda.cufft_plan_cache.max_size -
int, определяющее ёмкость кэша планов cuFFT.
-
torch.backends.cuda.cufft_plan_cache.clear() -
Очищает кэш планов cuFFT.
-
-
torch.backends.cuda.preferred_blas_library(backend=None)[исходный код] -
Переопределяет библиотеку, используемую PyTorch для операций BLAS. Можно выбрать cuBLAS, cuBLASLt или CK [только для ROCm].
Предупреждение
Этот флаг экспериментальный и может измениться.
При выполнении операции BLAS CUDA PyTorch по умолчанию использует cuBLAS, даже если доступны и cuBLAS, и cuBLASLt. В сборке PyTorch для ROCm hipBLAS, hipBLASLt и CK могут обеспечивать различную производительность. Этот флаг (значение
str) позволяет переопределить используемую библиотеку BLAS.- Если задано
“cublas”, по возможности будет использоваться cuBLAS. - Если задано
“cublaslt”, по возможности будет использоваться cuBLASLt. - Если задано
“ck”, по возможности будет использоваться CK. - Если задано
“default”(значение по умолчанию), для выбора между остальными вариантами будут использоваться эвристики. - Если аргумент не указан, функция возвращает библиотеку, предпочтительную в данный момент.
- Чтобы глобально задать cuBLASLt как предпочтительную библиотеку, можно использовать переменную окружения TORCH_BLAS_PREFER_CUBLASLT=1. Этот флаг задаёт только начальное значение предпочтительной библиотеки; позднее в скрипте его всё ещё можно переопределить вызовом этой функции.
Примечание: если отдано предпочтение одной библиотеке, могут использоваться и другие библиотеки, если предпочтительная библиотека не реализует вызываемые операции. Этот флаг может повысить производительность, если выбор библиотеки PyTorch не подходит для входных данных вашего приложения.
- Тип возвращаемого значения:
-
_BlasBackend
- Если задано
-
torch.backends.cuda.cublas_workspace_size(size=None)[исходный код] -
Запрашивает или задаёт размер рабочей области cuBLAS в байтах.
При вызове без аргументов возвращает текущий размер рабочей области. При вызове с аргументом размера задаёт размер рабочей области и возвращает новое значение. Заданный размер рабочей области имеет приоритет над переменной окружения CUBLAS_WORKSPACE_CONFIG. Изменения вступают в силу отложенно: новые рабочие области получают только дескрипторы, используемые после изменения.
-
torch.backends.cuda.cublaslt_workspace_size(size=None)[исходный код] -
Запрашивает или задаёт размер рабочей области cuBLASLt в байтах.
При вызове без аргументов возвращает текущий размер рабочей области. При вызове с аргументом размера задаёт размер рабочей области и возвращает новое значение. Заданный размер рабочей области имеет приоритет над переменной окружения CUBLASLT_WORKSPACE_SIZE. Изменения вступают в силу отложенно: новые рабочие области получают только дескрипторы, используемые после изменения.
-
torch.backends.cuda.blas_workspace_size(size=None, backend=None)[исходный код] -
Запрашивает или задаёт размер рабочей области BLAS для указанного бэкенда.
Вспомогательная обёртка, которая в зависимости от бэкенда вызывает
cublas_workspace_size()илиcublaslt_workspace_size().Если значение backend равно
None, используется текущийpreferred_blas_library(). ЗначениеDefaultразрешается в бэкенд платформы по умолчанию (cuBLAS на NVIDIA, потенциально hipBLASLt на поддерживаемых архитектурах ROCm).Примечание
Если включён параметр
TORCH_CUBLASLT_UNIFIED_WORKSPACE(по умолчанию в сборках CUDA с открытым исходным кодом), размер рабочей области cuBLASLt ограничен размером рабочей области cuBLAS, и физически используется то же выделение памяти. Поэтому задание большого размера рабочей области cuBLASLt с помощью этой функции не увеличит расход памяти сверх размера рабочей области cuBLAS.Примечание
Задание размера рабочей области для бэкенда cublas имеет приоритет над переменной окружения CUBLAS_WORKSPACE_CONFIG, а задание размера рабочей области для бэкенда cublaslt имеет приоритет над переменной окружения CUBLASLT_WORKSPACE_SIZE.
- Параметры:
-
- size (int, необязательно) – размер рабочей области в байтах. Должен быть неотрицательным. Если параметр не указан, возвращается текущий размер без изменений.
-
backend (str | torch._C._BlasBackend, необязательно) – рабочую область какого бэкенда нужно запросить или задать. Принимает те же строки, что и
preferred_blas_library()(например,"cublas","cublaslt").
- Возвращает:
-
текущий (или только что заданный) размер рабочей области в байтах.
- Тип возвращаемого значения:
- Вызывает исключение:
-
RuntimeError – если разрешённый бэкенд — CK (у него нет понятия рабочей области).
-
torch.backends.cuda.preferred_rocm_fa_library(backend=None)[исходный код] -
[Только для ROCm] Переопределяет бэкенд, используемый PyTorch в средах ROCm для Flash Attention. Можно выбрать AOTriton или CK.
Предупреждение
Этот флаг экспериментальный и может измениться.
Когда Flash Attention включён и требуется, PyTorch по умолчанию использует бэкенд AOTriton. Этот флаг (значение
str) позволяет переопределить этот бэкенд и использовать composable_kernel.- Если задано
“default”, по возможности будет использоваться бэкенд по умолчанию. В настоящее время это AOTriton. - Если задано
“aotriton”, по возможности будет использоваться AOTriton. - Если задано
“ck”, по возможности будет использоваться CK. - Если аргумент не указан, функция возвращает библиотеку, предпочтительную в данный момент.
- Чтобы глобально задать CK как предпочтительную библиотеку, можно использовать переменную окружения TORCH_ROCM_FA_PREFER_CK=1.
Примечание: если отдано предпочтение одной библиотеке, могут использоваться и другие библиотеки, если предпочтительная библиотека не реализует вызываемые операции. Этот флаг может повысить производительность, если выбор библиотеки PyTorch не подходит для входных данных вашего приложения.
- Тип возвращаемого значения:
-
_ROCmFABackend
- Если задано
-
torch.backends.cuda.is_ck_sdpa_available()[исходный код] -
Предупреждение
Этот флаг бета-версии и может измениться.
Возвращает, можно ли использовать composable_kernel в качестве бэкенда для внимания с масштабированным скалярным произведением.
- Тип возвращаемого значения:
-
torch.backends.cuda.preferred_linalg_library(backend=None)[исходный код] -
Переопределяет эвристику, используемую PyTorch для выбора между cuSOLVER и MAGMA при выполнении операций линейной алгебры CUDA.
Предупреждение
Этот флаг экспериментальный и может измениться.
При выполнении операций линейной алгебры CUDA PyTorch часто использует библиотеки cuSOLVER или MAGMA и, если доступны обе, выбирает одну из них с помощью эвристики. Этот флаг (значение
str) позволяет переопределить эти эвристики.- Если задано
“cusolver”, по возможности будет использоваться cuSOLVER. - Если задано
“magma”, по возможности будет использоваться MAGMA. - Если задано
“default”(значение по умолчанию), при наличии обеих библиотек для выбора между cuSOLVER и MAGMA будут использоваться эвристики. - Если аргумент не указан, функция возвращает библиотеку, предпочтительную в данный момент.
- Чтобы глобально задать cuSOLVER как предпочтительную библиотеку, можно использовать переменную окружения TORCH_LINALG_PREFER_CUSOLVER=1. Этот флаг задаёт только начальное значение предпочтительной библиотеки; позднее в скрипте его всё ещё можно переопределить вызовом этой функции.
Примечание: если отдано предпочтение одной библиотеке, могут использоваться и другие библиотеки, если предпочтительная библиотека не реализует вызываемые операции. Этот флаг может повысить производительность, если эвристический выбор библиотеки PyTorch не подходит для входных данных вашего приложения.
В настоящее время поддерживаются следующие операторы линейной алгебры:
torch.linalg.inv()torch.linalg.inv_ex()torch.linalg.cholesky()torch.linalg.cholesky_ex()torch.cholesky_solve()torch.cholesky_inverse()torch.linalg.lu_factor()torch.linalg.lu()torch.linalg.lu_solve()torch.linalg.qr()torch.linalg.eigh()torch.linalg.eigvals()torch.linalg.svd()torch.linalg.svdvals()
- Тип возвращаемого значения:
-
_LinalgBackend
- Если задано
-
class torch.backends.cuda.SDPAParams
-
torch.backends.cuda.flash_sdp_enabled()[исходный код] -
Предупреждение
Этот флаг бета-версии и может измениться.
Возвращает, включено ли внимание Flash с масштабированным скалярным произведением.
-
torch.backends.cuda.enable_mem_efficient_sdp(enabled)[исходный код] -
Предупреждение
Этот флаг бета-версии и может измениться.
Включает или отключает экономичное по памяти внимание с масштабированным скалярным произведением.
-
torch.backends.cuda.mem_efficient_sdp_enabled()[исходный код] -
Предупреждение
Этот флаг бета-версии и может измениться.
Возвращает, включено ли экономичное по памяти внимание с масштабированным скалярным произведением.
-
torch.backends.cuda.enable_flash_sdp(enabled)[исходный код] -
Предупреждение
Этот флаг бета-версии и может измениться.
Включает или отключает внимание Flash с масштабированным скалярным произведением.
-
torch.backends.cuda.math_sdp_enabled()[исходный код] -
Предупреждение
Этот флаг бета-версии и может измениться.
Возвращает, включено ли математическое внимание с масштабированным скалярным произведением.
-
torch.backends.cuda.enable_math_sdp(enabled)[исходный код] -
Предупреждение
Этот флаг бета-версии и может измениться.
Включает или отключает математическое внимание с масштабированным скалярным произведением.
-
torch.backends.cuda.fp16_bf16_reduction_math_sdp_allowed()[исходный код] -
Предупреждение
Этот флаг бета-версии и может измениться.
Возвращает, включена ли редукция fp16/bf16 в математическом внимании с масштабированным скалярным произведением.
-
torch.backends.cuda.allow_fp16_bf16_reduction_math_sdp(enabled)[исходный код] -
Предупреждение
Этот флаг бета-версии и может измениться.
Включает или отключает редукцию fp16/bf16 в математическом внимании с масштабированным скалярным произведением.
-
torch.backends.cuda.cudnn_sdp_enabled()[исходный код] -
Предупреждение
Этот флаг бета-версии и может измениться.
Возвращает, включено ли внимание cuDNN с масштабированным скалярным произведением.
-
torch.backends.cuda.enable_cudnn_sdp(enabled)[исходный код] -
Предупреждение
Этот флаг бета-версии и может измениться.
Включает или отключает внимание cuDNN с масштабированным скалярным произведением.
-
torch.backends.cuda.is_flash_attention_available()[исходный код] -
Проверяет, была ли PyTorch собрана с FlashAttention для scaled_dot_product_attention.
- Возвращает:
-
True, если FlashAttention собрана и доступна; в противном случае False.
- Тип возвращаемого значения:
Примечание
Эта функция зависит от сборки PyTorch с поддержкой CUDA. В средах без CUDA она возвращает False.
-
torch.backends.cuda.can_use_flash_attention(params, debug=False)[исходный код] -
Проверяет, можно ли использовать FlashAttention в scaled_dot_product_attention.
- Параметры:
-
- params (_SDPAParams) – экземпляр SDPAParams, содержащий тензоры запроса, ключа и значения, необязательную маску внимания, вероятность dropout и флаг, указывающий, является ли внимание причинным.
- debug (bool) – указывает, следует ли вызывать logging.warn с отладочной информацией о причинах невозможности запуска FlashAttention. По умолчанию False.
- Возвращает:
-
True, если FlashAttention можно использовать с заданными параметрами; в противном случае False.
- Тип возвращаемого значения:
Примечание
Эта функция зависит от сборки PyTorch с поддержкой CUDA. В средах без CUDA она возвращает False.
-
torch.backends.cuda.can_use_efficient_attention(params, debug=False)[исходный код] -
Проверяет, можно ли использовать efficient_attention в scaled_dot_product_attention.
- Параметры:
-
- params (_SDPAParams) – экземпляр SDPAParams, содержащий тензоры запроса, ключа и значения, необязательную маску внимания, вероятность dropout и флаг, указывающий, является ли внимание причинным.
- debug (bool) – указывает, следует ли вызывать logging.warn с информацией о причинах невозможности запуска efficient_attention. По умолчанию False.
- Возвращает:
-
True, если efficient_attention можно использовать с заданными параметрами; в противном случае False.
- Тип возвращаемого значения:
Примечание
Эта функция зависит от сборки PyTorch с поддержкой CUDA. В средах без CUDA она возвращает False.
-
torch.backends.cuda.can_use_cudnn_attention(params, debug=False)[исходный код] -
Проверяет, можно ли использовать cudnn_attention в scaled_dot_product_attention.
- Параметры:
-
- params (_SDPAParams) – Экземпляр SDPAParams, содержащий тензоры для query, key и value, необязательную маску внимания, частоту dropout и флаг, указывающий, является ли внимание каузальным.
- debug (bool) – Нужно ли вызывать logging.warn с информацией о том, почему не удалось запустить внимание cuDNN. По умолчанию False.
- Возвращает:
-
True, если cuDNN можно использовать с заданными параметрами; иначе False.
- Тип возвращаемого значения:
Примечание
Эта функция зависит от сборки PyTorch с поддержкой CUDA. В средах без CUDA она возвращает False.
-
torch.backends.cuda.sdp_kernel(enable_flash=True, enable_math=True, enable_mem_efficient=True, enable_cudnn=True)[исходный код] -
Предупреждение
Этот флаг находится в стадии бета-тестирования и может измениться.
Этот менеджер контекста можно использовать для временного включения или отключения любого из трёх бэкендов для scaled dot product attention. При выходе из менеджера контекста восстанавливается предыдущее состояние флагов.
torch.backends.cudnn
-
torch.backends.cudnn.version()[исходный код] -
Возвращает версию cuDNN.
-
torch.backends.cudnn.is_available()[исходный код] -
Возвращает логическое значение, указывающее, доступна ли в данный момент CUDNN.
-
torch.backends.cudnn.enabled -
Значение
bool, определяющее, включён ли cuDNN.
-
torch.backends.cudnn.allow_tf32 -
Значение
bool, определяющее, можно ли использовать тензорные ядра TensorFloat-32 в свёртках cuDNN на GPU Ampere и новее. allow_tf32 будет объявлен устаревшим. См. TensorFloat-32 (TF32) на устройствах Ampere (и более поздних).
-
torch.backends.cudnn.deterministic -
Значение
bool, которое при значении True заставляет cuDNN использовать только детерминированные алгоритмы свёртки. См. такжеtorch.are_deterministic_algorithms_enabled()иtorch.use_deterministic_algorithms().
-
torch.backends.cudnn.benchmark -
Значение
bool, которое при значении True заставляет cuDNN тестировать несколько алгоритмов свёртки и выбирать самый быстрый.
-
torch.backends.cudnn.benchmark_limit -
Значение
int, указывающее максимальное число алгоритмов свёртки cuDNN, которые следует попробовать, когдаtorch.backends.cudnn.benchmarkимеет значение True. Установитеbenchmark_limitв ноль, чтобы попробовать все доступные алгоритмы. Обратите внимание, что эта настройка влияет только на свёртки, выполняемые через API cuDNN v8.
torch.backends.cusparselt
-
torch.backends.cusparselt.version()[исходный код] -
Возвращает версию cuSPARSELt
- Тип возвращаемого значения:
-
int | None
-
torch.backends.cusparselt.is_available()[исходный код] -
Возвращает логическое значение, указывающее, доступна ли в данный момент cuSPARSELt.
- Тип возвращаемого значения:
-
torch.backends.cusparselt.get_max_alg_id()[исходный код] -
- Тип возвращаемого значения:
-
int | None
torch.backends.mha
-
torch.backends.mha.get_fastpath_enabled()[исходный код] -
Возвращает, включён ли быстрый путь для TransformerEncoder и MultiHeadAttention, или
True, если jit выполняет скриптование.Примечание
Быстрый путь может не запускаться, даже если
get_fastpath_enabledвозвращаетTrue, если не выполнены все условия для входных данных.- Тип возвращаемого значения:
-
torch.backends.mha.set_fastpath_enabled(value)[исходный код] -
Устанавливает, включён ли быстрый путь
torch.backends.miopen
-
torch.backends.miopen.immediate -
Значение
bool, которое при значении True заставляет MIOpen использовать Immediate Mode (https://rocm.docs.amd.com/projects/MIOpen/en/latest/how-to/find-and-immediate.html).
torch.backends.mps
-
torch.backends.mps.is_available()[исходный код] -
Возвращает логическое значение, указывающее, доступна ли в данный момент MPS.
- Тип возвращаемого значения:
-
torch.backends.mps.is_built()[исходный код] -
Возвращает, собран ли PyTorch с поддержкой MPS.
Обратите внимание, что это не обязательно означает, что MPS доступна; это лишь означает, что её можно было бы использовать, если бы этот двоичный файл PyTorch запустили на компьютере с работающими драйверами и устройствами MPS.
- Тип возвращаемого значения:
-
torch.backends.mps.get_core_count()[исходный код] -
Возвращает количество ядер GPU.
Согласно документации, одно ядро состоит из 16 исполнительных блоков. Один исполнительный блок содержит 8 ALU. Одна ALU может выполнять 24 потока, то есть одно ядро способно одновременно выполнять 3072 потока.
- Тип возвращаемого значения:
-
torch.backends.mps.get_name()[исходный код] -
Возвращает имя устройства Metal
- Тип возвращаемого значения:
-
torch.backends.mps.is_macos13_or_newer(minor=0)[исходный код] -
Возвращает логическое значение, указывающее, работает ли MPS на MacOS 13 или более новой версии.
- Тип возвращаемого значения:
-
torch.backends.mps.is_macos_or_newer(major, minor)[исходный код] -
Возвращает логическое значение, указывающее, работает ли MPS на указанной версии MacOS или более новой.
- Тип возвращаемого значения:
torch.backends.mkl
-
torch.backends.mkl.is_available()[исходный код] -
Возвращает, собран ли PyTorch с поддержкой MKL.
-
class torch.backends.mkl.verbose(enable)[исходный код] -
Функция подробного вывода oneMKL по запросу.
Чтобы упростить отладку проблем с производительностью, oneMKL может выводить подробные сообщения с информацией о выполнении, например о длительности выполнения ядра. Функцию подробного вывода можно вызвать с помощью переменной окружения с именем
MKL_VERBOSE. Однако при таком подходе сообщения выводятся на всех этапах, и их количество велико. Кроме того, для исследования проблем с производительностью обычно достаточно получить подробные сообщения для одной итерации. Эта функция подробного вывода по запросу позволяет ограничить область вывода сообщений. В следующем примере подробные сообщения будут выведены только для второго инференса.import torch model(data) with torch.backends.mkl.verbose(torch.backends.mkl.VERBOSE_ON): model(data)- Параметры:
-
level – Уровень подробности -
VERBOSE_OFF: отключить подробный вывод -VERBOSE_ON: включить подробный вывод
torch.backends.mkldnn
-
torch.backends.mkldnn.is_available()[исходный код]
-
class torch.backends.mkldnn.verbose(level)[исходный код] -
Функция подробного вывода oneDNN (ранее MKL-DNN) по запросу.
Чтобы упростить отладку проблем с производительностью, oneDNN может выводить подробные сообщения с такой информацией, как размер ядра, размер входных данных и длительность выполнения ядра. Функцию подробного вывода можно вызвать с помощью переменной окружения с именем
DNNL_VERBOSE. Однако при таком подходе сообщения выводятся на всех этапах, и их количество велико. Кроме того, для исследования проблем с производительностью обычно достаточно получить подробные сообщения для одной итерации. Эта функция подробного вывода по запросу позволяет ограничить область вывода сообщений. В следующем примере подробные сообщения будут выведены только для второго инференса.import torch model(data) with torch.backends.mkldnn.verbose(torch.backends.mkldnn.VERBOSE_ON): model(data)- Параметры:
-
level – Уровень подробности -
VERBOSE_OFF: отключить подробный вывод -VERBOSE_ON: включить подробный вывод -VERBOSE_ON_CREATION: включить подробный вывод, в том числе создание ядра oneDNN
torch.backends.nnpack
-
torch.backends.nnpack.is_available()[исходный код] -
Возвращает, собран ли PyTorch с поддержкой NNPACK.
-
torch.backends.nnpack.flags(enabled=False)[исходный код] -
Менеджер контекста для глобального включения или отключения nnpack
-
torch.backends.nnpack.set_flags(_enabled)[исходный код] -
Глобально включает или отключает nnpack
torch.backends.openmp
-
torch.backends.openmp.is_available()[исходный код] -
Возвращает, собран ли PyTorch с поддержкой OpenMP.
-
torch.backends.kleidiai.is_available()[исходный код] -
Возвращает, собран ли PyTorch с поддержкой KleidiAI.
torch.backends.opt_einsum
-
torch.backends.opt_einsum.is_available()[исходный код] -
Возвращает логическое значение, указывающее, доступен ли в данный момент opt_einsum.
Чтобы torch мог автоматически оптимизировать einsum, необходимо установить opt-einsum. Чтобы opt-einsum стал доступен, его можно установить вместе с torch:
pip install torch[opt-einsum]или отдельно:pip install opt-einsum. Если пакет установлен, torch автоматически импортирует и использует его. Используйте эту функцию, чтобы проверить, установлен ли opt-einsum и правильно ли он импортирован torch.- Тип возвращаемого значения:
-
torch.backends.opt_einsum.get_opt_einsum()[исходный код] -
Возвращает пакет opt_einsum, если он доступен в данный момент, иначе — None.
- Тип возвращаемого значения:
-
torch.backends.opt_einsum.enabled -
Значение
bool, определяющее, включён ли opt_einsum (по умолчанию —True). Если он включён, torch.einsum будет использовать opt_einsum (https://optimized-einsum.readthedocs.io/en/stable/path_finding.html), если тот доступен, чтобы рассчитать оптимальный путь свёртки для повышения производительности.Если opt_einsum недоступен, torch.einsum будет использовать стандартный путь свёртки слева направо.
-
torch.backends.opt_einsum.strategy -
Значение
str, указывающее, какие стратегии следует пробовать, когдаtorch.backends.opt_einsum.enabledимеет значениеTrue. По умолчанию torch.einsum использует стратегию “auto”, но также поддерживаются стратегии “greedy” и “optimal”. Обратите внимание, что стратегия “optimal” имеет факториальную сложность по числу входных данных, поскольку перебирает все возможные пути. Подробнее см. в документации opt_einsum (https://optimized-einsum.readthedocs.io/en/stable/path_finding.html).
torch.backends.python_native
Модуль torch.backends.python_native предоставляет пользователям возможность управлять нативными операторами, реализованными на Python с помощью DSL (предметно-ориентированных языков), определённых в torch._native. Это позволяет пользователям выборочно включать или отключать высокопроизводительные реализации из различных DSL, таких как Triton и CuteDSL.
Функции уровня модуля
-
torch.backends.python_native.get_dsl_operations(dsl_name)[исходный код] -
Получить список операций, зарегистрированных определённым DSL.
- Параметры:
-
dsl_name (str) – Имя DSL, для которого выполняется запрос (например, ‘triton’, ‘cutedsl’).
- Возвращает:
-
Отсортированный список имён операций, зарегистрированных DSL.
- Тип возвращаемого значения:
Пример:
ops = torch.backends.python_native.get_dsl_operations("triton") print(ops) # ['triton_to_mxfp8_dim0', ...]
-
torch.backends.python_native.disable_operations(*op_symbols)[исходный код] -
Отключить определённые операции во всех DSL.
- Параметры:
-
*op_symbols (str) – Имена операций, которые нужно отключить.
Пример:
# Disable scaled matrix multiply across all DSLs torch.backends.python_native.disable_operations("scaled_mm") # Disable multiple operations torch.backends.python_native.disable_operations( "scaled_mm", "flash_attention" )
-
torch.backends.python_native.enable_operations(*op_symbols)[исходный код] -
Повторно включить определённые операции во всех DSL.
- Параметры:
-
*op_symbols (str) – Имена операций, которые нужно повторно включить.
Пример:
# Re-enable previously disabled operations torch.backends.python_native.enable_operations( "scaled_mm", "flash_attention" )
-
torch.backends.python_native.disable_dispatch_keys(*dispatch_keys)[исходный код] -
Отключить операции для определённых ключей диспетчеризации.
- Параметры:
-
*dispatch_keys (str) – Ключи диспетчеризации, которые нужно отключить (например, ‘CUDA’, ‘CPU’).
Пример:
# Disable all native operations on CUDA torch.backends.python_native.disable_dispatch_keys("CUDA")
-
torch.backends.python_native.enable_dispatch_keys(*dispatch_keys)[исходный код] -
Повторно включить операции для определённых ключей диспетчеризации.
- Параметры:
-
*dispatch_keys (str) – Ключи диспетчеризации, для которых нужно повторно включить операции (например, ‘CUDA’, ‘CPU’).
Пример:
# Re-enable native operations on CUDA torch.backends.python_native.enable_dispatch_keys("CUDA")
-
torch.backends.python_native.operations_disabled(*op_symbols)[исходный код] -
Менеджер контекста для временного отключения операций.
- Параметры:
-
*op_symbols (str) – Имена операций, которые нужно временно отключить.
Пример:
with torch.backends.python_native.operations_disabled("scaled_mm"): # scaled_mm is disabled across all DSLs result = model(input) # scaled_mm is automatically re-enabled here
Свойства уровня модуля
Контроллеры DSL
Для каждого зарегистрированного DSL (например, triton, cutedsl) доступны автоматически заполняемые модули контроллеров:
Свойства DSL
Каждый контроллер DSL (например, torch.backends.python_native.triton) предоставляет следующие свойства:
Свойство | Тип | Описание |
|---|---|---|
|
| Имя DSL |
|
| Доступны ли зависимости времени выполнения DSL |
|
| Определяет, включены ли все операции этого DSL. Значение |
|
| Версия среды выполнения DSL, если она доступна. Возвращает |
Методы DSL
Каждый контроллер DSL предоставляет следующие методы:
disable() Отключить все операции этого DSL.
enable() Повторно включить все операции этого DSL.
disabled() Менеджер контекста, который временно отключает все операции этого DSL. При выходе из контекста операции автоматически включаются повторно.
Example::
with torch.backends.python_native.triton.disabled():
# Triton operations are disabled here
result = model(input)
# Triton operations restored here
Примеры использования
import torch.backends.python_native as pn
# Query available DSLs
print(pn.available_dsls) # ['triton', 'cutedsl']
# Disable all Triton operations
pn.triton.enabled = False
# Temporarily disable CuteDSL operations
with pn.cutedsl.disabled():
result = model(input) # CuteDSL ops disabled
# Disable specific operations across all DSLs
pn.disable_operations('scaled_mm', '_flash_attention_forward')
# Query operations for a specific DSL
triton_ops = pn.get_dsl_operations('triton')
torch.backends.xeon
-
torch.backends.xeon.run_cpu.create_args(parser=None)[исходный код] -
Разобрать параметры командной строки.
@retval ArgumentParser
© 2026, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://docs.pytorch.org/docs/2.14/backends.html