torch.backends
torch.backends управляет поведением различных бэкендов, поддерживаемых PyTorch.
Эти бэкэнды включают:
torch.backends.cputorch.backends.cudatorch.backends.cudnntorch.backends.mpstorch.backends.mkltorch.backends.mkldnntorch.backends.openmptorch.backends.opt_einsumtorch.backends.xeon
torch.backends.cpu
-
torch.backends.cpu.get_cpu_capability()[source] -
Возвращает возможности процессора в виде строкового значения.
Возможные значения: - “DEFAULT” - “VSX” - “Z VECTOR” - “NO AVX” - “AVX2” - “AVX512”
- Тип возвращаемого значения
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 GEMMs.
-
torch.backends.cuda.matmul.allow_bf16_reduced_precision_reduction -
Значение
bool, которое управляет разрешением понижения точности для сокращений при использовании bf16 GEMMs.
-
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_linalg_library(backend=None)[source] -
Предупреждение
Этот флаг экспериментальный и может быть изменен.
При выполнении операции CUDA линейной алгебры в PyTorch часто используются библиотеки cuSOLVER или MAGMA, и если обе доступны, он выбирает, какую использовать, с помощью эвристики. Этот флаг (a
str) позволяет переопределить эти эвристики.- Если
“cusolver”установлен, cuSOLVER будет использоваться там, где это возможно. - Если
“magma”установлен, MAGMA будет использоваться там, где это возможно. - Если установлен
“default”(значение по умолчанию), будут использоваться эвристики для выбора между cuSOLVER и MAGMA, если обе доступны. - Когда входной параметр не указан, эта функция возвращает текущую предпочтительную библиотеку.
- Пользователь может использовать переменную среды TORCH_LINALG_PREFER_CUSOLVER=1 для глобальной установки предпочтительной библиотеки cuSOLVER. Этот флаг устанавливает только начальное значение предпочтительной библиотеки, и предпочтительная библиотека может быть переопределена последующим вызовом этой функции в вашем скрипте.
Примечание: когда предпочтительная библиотека используется, другие библиотеки могут всё ещё использоваться, если предпочтительная библиотека не реализует вызываемую(ые) операцию(ии). Этот флаг может улучшить производительность, если эвристика 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
- Если
-
class torch.backends.cuda.SDPBackend(value)[source] -
Перечисление для бэкендов scaled dot product attention.
Предупреждение
Этот класс находится в бета-версии и может быть изменён.
Этот класс должен оставаться согласованным с перечислением, определённым в: pytorch/aten/src/ATen/native/transformers/sdp_utils_cpp.h
-
torch.backends.cuda.flash_sdp_enabled()[source] -
Предупреждение
Этот флаг находится в бета-версии и может быть изменён.
Возвращает значение, указывающее, включена или нет flash scaled dot product attention.
-
torch.backends.cuda.enable_mem_efficient_sdp(enabled)[source] -
Предупреждение
Этот флаг находится в бета-версии и может быть изменён.
Включает или выключает экономичный по памяти scaled dot product attention.
-
torch.backends.cuda.mem_efficient_sdp_enabled()[source] -
Предупреждение
Этот флаг находится в бета-версии и может быть изменён.
Возвращает значение, указывающее, включён или нет экономичный по памяти scaled dot product attention.
-
torch.backends.cuda.enable_flash_sdp(enabled)[source] -
Предупреждение
Этот флаг находится в бета-версии и может быть изменён.
Включает или выключает flash scaled dot product attention.
-
torch.backends.cuda.math_sdp_enabled()[source] -
Предупреждение
Этот флаг находится в бета-версии и может быть изменён.
Возвращает значение, указывающее, включён или нет math scaled dot product attention.
-
torch.backends.cuda.enable_math_sdp(enabled)[source] -
Предупреждение
Этот флаг находится в стадии бета-тестирования и может быть изменён.
Включает или выключает математическое внимание к масштабированному скалярному произведению.
-
torch.backends.cuda.sdp_kernel(enable_flash=True, enable_math=True, enable_mem_efficient=True)[source] -
Предупреждение
Этот флаг находится в стадии бета-тестирования и может быть изменён.
Этот менеджер контекста может использоваться для временного включения или выключения любого из трёх бэкендов для внимания к масштабированному скалярному произведению. При выходе из менеджера контекста предыдущее состояние флагов будет восстановлено.
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 или новее. См. 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.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)- Параметры
-
уровень – Уровень отслеживания -
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)- Параметры
-
уровень – Уровень отслеживания -
VERBOSE_OFF: Выключить отслеживание -VERBOSE_ON: Включить отслеживание -VERBOSE_ON_CREATION: Включить отслеживание, включая создание ядер oneDNN
torch.backends.openmp
-
torch.backends.openmp.is_available()[source] -
Возвращает, скомпилирован ли PyTorch с поддержкой OpenMP.
torch.backends.opt_einsum
-
torch.backends.opt_einsum.is_available()[source] -
Возвращает булево значение, указывающее, доступен ли в данный момент opt_einsum.
- Тип возвращаемого значения
-
torch.backends.opt_einsum.get_opt_einsum()[source] -
Возвращает пакет opt_einsum, если он доступен, иначе None.
- Тип возвращаемого значения
-
torch.backends.opt_einsum.enabled -
Класс, управляющий включением 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 -
Класс, определяющий стратегии, которые будут использоваться, когда
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/2.1/backends.html