Spec-Zone.ru › PyTorch 2.14

torch.backends

Дата создания: Sep 16, 2020 | Дата последнего обновления: Jul 08, 2026

torch.backends управляет поведением различных бэкендов, поддерживаемых PyTorch.

К этим бэкендам относятся:

  • torch.backends.cpu
  • torch.backends.cuda
  • torch.backends.cudnn
  • torch.backends.cusparselt
  • torch.backends.mha
  • torch.backends.mps
  • torch.backends.mkl
  • torch.backends.mkldnn
  • torch.backends.nnpack
  • torch.backends.openmp
  • torch.backends.opt_einsum
  • torch.backends.python_native
  • torch.backends.xeon

torch.backends.cpu

torch.backends.cpu.get_cpu_capability() [исходный код]

Возвращает возможности CPU в виде строкового значения.

Возможные значения: - “DEFAULT” - “VSX” - “Z VECTOR” - “NO AVX” - “AVX2” - “AVX512” - “SVE256”

Тип возвращаемого значения:

str

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. Изменения вступают в силу отложенно: новые рабочие области получают только дескрипторы, используемые после изменения.

Параметры:

size (int, необязательно) – размер рабочей области в байтах. Должен быть неотрицательным.

Возвращает:

текущий (или только что заданный) размер рабочей области в байтах.

Тип возвращаемого значения:

int

torch.backends.cuda.cublaslt_workspace_size(size=None) [исходный код]

Запрашивает или задаёт размер рабочей области cuBLASLt в байтах.

При вызове без аргументов возвращает текущий размер рабочей области. При вызове с аргументом размера задаёт размер рабочей области и возвращает новое значение. Заданный размер рабочей области имеет приоритет над переменной окружения CUBLASLT_WORKSPACE_SIZE. Изменения вступают в силу отложенно: новые рабочие области получают только дескрипторы, используемые после изменения.

Параметры:

size (int, необязательно) – размер рабочей области в байтах. Должен быть неотрицательным.

Возвращает:

текущий (или только что заданный) размер рабочей области в байтах.

Тип возвращаемого значения:

int

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").
Возвращает:

текущий (или только что заданный) размер рабочей области в байтах.

Тип возвращаемого значения:

int

Вызывает исключение:

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 в качестве бэкенда для внимания с масштабированным скалярным произведением.

Тип возвращаемого значения:

bool

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.

Тип возвращаемого значения:

bool

Примечание

Эта функция зависит от сборки 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.

Тип возвращаемого значения:

bool

Примечание

Эта функция зависит от сборки 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.

Тип возвращаемого значения:

bool

Примечание

Эта функция зависит от сборки 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.

Тип возвращаемого значения:

bool

Примечание

Эта функция зависит от сборки 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.

Тип возвращаемого значения:

bool

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, если не выполнены все условия для входных данных.

Тип возвращаемого значения:

bool

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.

Тип возвращаемого значения:

bool

torch.backends.mps.is_built() [исходный код]

Возвращает, собран ли PyTorch с поддержкой MPS.

Обратите внимание, что это не обязательно означает, что MPS доступна; это лишь означает, что её можно было бы использовать, если бы этот двоичный файл PyTorch запустили на компьютере с работающими драйверами и устройствами MPS.

Тип возвращаемого значения:

bool

torch.backends.mps.get_core_count() [исходный код]

Возвращает количество ядер GPU.

Согласно документации, одно ядро состоит из 16 исполнительных блоков. Один исполнительный блок содержит 8 ALU. Одна ALU может выполнять 24 потока, то есть одно ядро способно одновременно выполнять 3072 потока.

Тип возвращаемого значения:

int

torch.backends.mps.get_name() [исходный код]

Возвращает имя устройства Metal

Тип возвращаемого значения:

str

torch.backends.mps.is_macos13_or_newer(minor=0) [исходный код]

Возвращает логическое значение, указывающее, работает ли MPS на MacOS 13 или более новой версии.

Тип возвращаемого значения:

bool

torch.backends.mps.is_macos_or_newer(major, minor) [исходный код]

Возвращает логическое значение, указывающее, работает ли MPS на указанной версии MacOS или более новой.

Тип возвращаемого значения:

bool

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.

Тип возвращаемого значения:

bool

torch.backends.opt_einsum.get_opt_einsum() [исходный код]

Возвращает пакет opt_einsum, если он доступен в данный момент, иначе — None.

Тип возвращаемого значения:

Any

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.

Тип возвращаемого значения:

list[str]

Пример:

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

Свойства уровня модуля

torch.backends.python_native.available_dsls

list из str, содержащий имена DSL, доступных во время выполнения. Это подмножество all_dsls, для которых доступны все зависимости времени выполнения.

torch.backends.python_native.all_dsls

list из str, содержащий имена всех зарегистрированных DSL, независимо от их доступности во время выполнения.

Контроллеры DSL

Для каждого зарегистрированного DSL (например, triton, cutedsl) доступны автоматически заполняемые модули контроллеров:

Свойства DSL

Каждый контроллер DSL (например, torch.backends.python_native.triton) предоставляет следующие свойства:

Свойство

Тип

Описание

name

str

Имя DSL

available

bool

Доступны ли зависимости времени выполнения DSL

enabled

bool

Определяет, включены ли все операции этого DSL. Значение False отключает все операции DSL, а значение True повторно включает их

version

Version или None

Версия среды выполнения DSL, если она доступна. Возвращает None, если 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

Spec-Zone.ru

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