Spec-Zone.ru › PyTorch 2

torch.backends

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

Эти бэкэнды включают:

  • torch.backends.cpu
  • torch.backends.cuda
  • torch.backends.cudnn
  • torch.backends.mps
  • torch.backends.mkl
  • torch.backends.mkldnn
  • torch.backends.openmp
  • torch.backends.opt_einsum
  • torch.backends.xeon

torch.backends.cpu

torch.backends.cpu.get_cpu_capability() [source]

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

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

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

str

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.

END_OF_DOCUMENT_MARKER
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.

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

bool

torch.backends.mps.is_built() [source]

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

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

bool

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.

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

bool

torch.backends.opt_einsum.get_opt_einsum() [source]

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

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

Any

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.enabled True. По умолчанию 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

Spec-Zone.ru

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