torch.backends
torch.backends управляет поведением различных бэкэндов, которые поддерживает PyTorch.
Эти бэкэнды включают:
torch.backends.cudatorch.backends.cudnntorch.backends.mpstorch.backends.mkltorch.backends.mkldnntorch.backends.openmptorch.backends.opt_einsumtorch.backends.xeon
torch.backends.cuda
-
torch.backends.cuda.is_built()[source] -
Возвращает, построена ли PyTorch с поддержкой CUDA. Обратите внимание, что это не обязательно означает, что CUDA доступна; это просто означает, что если этот двоичный файл PyTorch был запущен на машине с работающими драйверами и устройствами CUDA, мы могли бы его использовать.
-
torch.backends.cuda.matmul.allow_tf32 -
Переменная типа
bool, которая управляет тем, можно ли использовать тензорные ядра TensorFloat-32 в матричных умножениях на GPU Ampere и новее. См. TensorFloat-32(TF32) на устройствах Ampere.
-
torch.backends.cuda.matmul.allow_fp16_reduced_precision_reduction -
Переменная типа
bool, которая управляет разрешением уменьшения точности с плавающей запятой (например, с типом накопления fp16) при использовании fp16 GEMM.
-
torch.backends.cuda.cufft_plan_cache -
cufft_plan_cacheкэширует планы cuFFT-
size -
Только для чтения
int, показывающий количество планов в кэше планов cuFFT.
-
torch.backends.cuda.max_size -
int, который управляет емкостью кэша планов cuFFT.
-
torch.backends.cuda.clear() -
Очищает кэш планов cuFFT.
-
-
torch.backends.cuda.preferred_linalg_library(backend=None)[source] -
Предупреждение
Этот флаг экспериментальный и может измениться.
При выполнении PyTorch операции линейной алгебры CUDA часто использует библиотеки cuSOLVER или MAGMA, и если обе доступны, она выбирает, какую использовать, с помощью эвристики. Этот флаг (тип
str) позволяет переопределить эти эвристики.- Если
“cusolver”установлен, то cuSOLVER будет использоваться по возможности. - Если
“magma”установлен, то MAGMA будет использоваться по возможности. - Если
“default”(по умолчанию) установлен, то будут использоваться эвристики для выбора между cuSOLVER и MAGMA, если обе доступны. - При отсутствии входных данных эта функция возвращает текущую предпочитаемую библиотеку.
Примечание: когда предпочитается одна библиотека, другие библиотеки могут все еще использоваться, если предпочитаемая библиотека не реализует вызываемую(ые) операцию(и). Этот флаг может обеспечить лучшую производительность, если эвристическое определение библиотеки 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.eighvals()torch.linalg.svd()torch.linalg.svdvals()
- Тип возвращаемого значения:
-
_LinalgBackend
- Если
-
torch.backends.cuda.flash_sdp_enabled()[source] -
Предупреждение
Этот флаг экспериментальный и может измениться.
Возвращает, включен ли flash sdp или нет.
-
torch.backends.cuda.enable_flash_sdp(enabled)[source] -
Предупреждение
Этот флаг экспериментальный и может измениться.
Включает или отключает flash sdp.
-
torch.backends.cuda.math_sdp_enabled()[source] -
Предупреждение
Этот флаг экспериментальный и может измениться.
Возвращает, включен ли math sdp или нет.
-
torch.backends.cuda.enable_math_sdp(enabled)[source] -
Предупреждение
Этот флаг экспериментальный и может измениться.
Включает или отключает math sdp.
-
torch.backends.cuda.sdp_kernel(enable_flash=True, enable_math=True)[source] -
Предупреждение
Этот флаг экспериментальный и может измениться.
Этот менеджер контекста может быть использован для временного включения или отключения flash sdp и math sdp. При выходе из менеджера контекста предыдущее состояние флагов будет восстановлено.
torch.backends.cudnn
-
torch.backends.cudnn.version()[source] -
Возвращает версию cuDNN
-
torch.backends.cudnn.is_available()[source] -
Возвращает булево значение, указывающее, доступен ли в данный момент CUDNN.
-
torch.backends.cudnn.enabled -
Переменная
bool, управляющая включением cuDNN.
-
torch.backends.cudnn.allow_tf32 -
Переменная
bool, управляющая тем, могут ли использоваться тензорные ядра TensorFloat-32 в операциях свёртки cuDNN на GPU 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.mps
-
torch.backends.mps.is_available()[source] -
Возвращает булево значение, указывающее, доступен ли в данный момент MPS.
- Тип возвращаемого значения:
-
torch.backends.mps.is_built()[source] -
Возвращает значение, указывающее, поддерживает ли PyTorch MPS. Обратите внимание, что это не обязательно означает, что MPS доступен; это просто означает, что если бы этот бинарник PyTorch был запущен на машине с рабочими драйверами и устройствами MPS, мы могли бы использовать его.
- Тип возвращаемого значения:
torch.backends.mkl
-
torch.backends.mkl.is_available()[source] -
Возвращает значение, указывающее, поддерживает ли PyTorch MKL.
-
class torch.backends.mkl.verbose(enable)[source] -
Функциональность отладочной печати 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()[source] -
Возвращает значение, указывающее, поддерживает ли PyTorch MKL-DNN.
-
class torch.backends.mkldnn.verbose(level)[source] -
Функциональность отладочной печати 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: Включить отладочную печать, включая создание одногоDNN ядра
torch.backends.openmp
-
torch.backends.openmp.is_available()[source] -
Возвращает значение, указывающее, поддерживает ли PyTorch OpenMP.
torch.backends.opt_einsum
-
torch.backends.opt_einsum.is_available()[source] -
Возвращает значение bool, указывающее, доступен ли в данный момент opt_einsum.
- Тип возвращаемого значения:
-
torch.backends.opt_einsum.get_opt_einsum()[source] -
Возвращает пакет opt_einsum, если он доступен в данный момент, иначе None.
- Тип возвращаемого значения:
-
torch.backends.opt_einsum.enabled -
Объект :class:
bool, который управляет тем, включён ли opt_einsum (включён по умолчанию). В таком случае torch.einsum будет использовать opt_einsum (https://optimized-einsum.readthedocs.io/en/stable/path_finding.html), если он доступен, для вычисления оптимального пути сокращения для повышения производительности.Если opt_einsum недоступен, torch.einsum вернётся к стандартному пути сокращения слева направо.
-
torch.backends.opt_einsum.strategy -
Объект :class:
str, который определяет, какие стратегии следует попробовать, когдаtorch.backends.opt_einsum.enabledTrue. По умолчанию torch.einsum попробует стратегию «auto», но также поддерживаются стратегии «greedy» и «optimal». Обратите внимание, что стратегия «optimal» имеет факториальную зависимость от количества входных данных, так как она перебирает все возможные пути. Дополнительные сведения см. в документации opt_einsum (https://optimized-einsum.readthedocs.io/en/stable/path_finding.html).
torch.backends.xeon
© 2024, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://pytorch.org/docs/1.13/backends.html