目录

torch.backends

torch.backends 控制 PyTorch 支持的各种后端的行为。

这些后端包括:

  • 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.cuda

torch.backends.cuda 中。is_built[来源]

返回 PyTorch 是否使用 CUDA 支持构建。请注意,此 并不一定意味着 CUDA 可用;只是如果这个 PyTorch binary 运行一台具有正常工作 CUDA 驱动程序和设备的机器,我们 将能够使用它。

torch.backends.cuda.matmul 的allow_tf32

控制是否可以在矩阵中使用 TensorFloat-32 张量核心的 A Ampere 或更高版本的 GPU 上的乘法。请参阅 Ampere 设备上的 TensorFloat-32(TF32)。

torch.backends.cuda.matmul 的allow_fp16_reduced_precision_reduction

A 控制 fp16 GEMM 是否允许降低精度降低(例如,使用 fp16 累积类型)。

torch.backends.cuda.matmul 的allow_bf16_reduced_precision_reduction

A 控制 bf16 GEMM 是否允许降低精度。

torch.backends.cuda 中。cufft_plan_cache

cufft_plan_cache缓存 cuFFT 计划

大小

一个只读,显示当前在 cuFFT 计划缓存中的计划数量。

torch.backends.cuda 中。max_size

A 控制 cuFFT 计划的缓存容量。

torch.backends.cuda 中。清楚()

清除 cuFFT 计划缓存。

torch.backends.cuda 中。preferred_linalg_librarybackend=None[来源]

警告

此标志是实验性的,可能会发生变化。

当 PyTorch 运行 CUDA 线性代数运算时,它通常使用 cuSOLVER 或 MAGMA 库, 如果两者都可用,它会决定将哪个与 heuristic 一起使用。 此标志 (a ) 允许覆盖这些启发式方法。

  • 如果设置了 “cusolver” ,则将尽可能使用 cuSOLVER 。

  • 如果设置了 “magma”,则将尽可能使用 MAGMA。

  • 如果设置了 “default” (default),则将使用启发式方法在 cuSOLVER 和 MAGMA(如果两者都可用)。

  • 如果未给出 input,则此函数返回当前首选的库。

注意:当首选库时,如果首选库是首选库,则仍可使用其他库 不实现调用的操作。 如果 PyTorch 的启发式库选择不正确,此标志可能会获得更好的性能 以获取应用程序的输入。

当前支持的 linalg 运算符:

返回类型

_LinalgBackend

torch.backends.cuda 中。SDPBackend[来源]

Enum 类。

警告

本课程为 Beta 版,可能会发生变更。

此类需要与中定义的枚举保持一致: pytorch/aten/src/ATen/native/transformers/sdp_utils_cpp.h

torch.backends.cuda 中。flash_sdp_enabled[来源]

警告

此标志为 beta 版本,可能会发生更改。

返回是否启用 Flash 缩放的点积注意力。

torch.backends.cuda 中。enable_mem_efficient_sdp启用[来源]

警告

此标志为 beta 版本,可能会发生更改。

启用或禁用内存高效缩放点积关注。

torch.backends.cuda 中。mem_efficient_sdp_enabled)[来源]

警告

此标志为 beta 版本,可能会发生更改。

返回是否启用内存高效的缩放点积注意力。

torch.backends.cuda 中。enable_flash_sdp启用[来源]

警告

此标志为 beta 版本,可能会发生更改。

启用或禁用 Flash 缩放的点积注意。

torch.backends.cuda 中。math_sdp_enabled)[来源]

警告

此标志为 beta 版本,可能会发生更改。

返回是否启用数学缩放的点积注意力。

torch.backends.cuda 中。enable_math_sdp启用[来源]

警告

此标志为 beta 版本,可能会发生更改。

启用或禁用数学缩放点积注意力。

torch.backends.cuda 中。sdp_kernelenable_flash=enable_math=enable_mem_efficient=[来源]

警告

此标志为 beta 版本,可能会发生更改。

此上下文管理器可用于临时启用或禁用三个后端中的任何一个,以进行缩放点积注意力。 退出上下文管理器后,将恢复标志的先前状态。

torch.backends.cudnn

torch.backends.cudnn 中。version[来源]

返回 cuDNN 的版本

torch.backends.cudnn 中。is_available[来源]

返回一个布尔值,指示 CUDNN 当前是否可用。

torch.backends.cudnn 中。启用

A 控制是否启用 cuDNN。

torch.backends.cudnn 中。allow_tf32

A 控制 TensorFloat-32 张量核在 cuDNN 中的使用位置 Ampere 或更高版本 GPU 上的卷积。请参阅 Ampere 设备上的 TensorFloat-32(TF32)。

torch.backends.cudnn 中。确定性

A 如果为 True,则会导致 cuDNN 仅使用确定性卷积算法。 另请参阅

torch.backends.cudnn 中。基准

A 如果为 True,则会导致 cuDNN 对多个卷积算法进行基准测试 并选择最快的。

torch.backends.cudnn 中。benchmark_limit

A 指定当 torch.backends.cudnn.benchmark 为 True 时要尝试的 cuDNN 卷积算法的最大数量。将 benchmark_limit 设置为 0 以尝试每个 可用的算法。请注意,此设置仅影响通过 cuDNN v8 API 的 API 中。

torch.backends.mps

torch.backends.mps 的is_available[来源]

返回一个布尔值,指示 MPS 当前是否可用。

返回类型

布尔

torch.backends.mps 的is_built[来源]

返回 PyTorch 是否使用 MPS 支持构建。请注意,此 并不一定意味着 MPS 可用;只是如果这个 PyTorch binary 运行一台带有工作 MPS 驱动程序和设备的机器,我们 将能够使用它。

返回类型

布尔

torch.backends.mkl 中

torch.backends.mkl 的is_available[来源]

返回 PyTorch 是否使用 MKL 支持构建。

torch.backends.mkl 中。verboseenable[来源]

按需 oneMKL 详细功能 为了更轻松地调试性能问题,oneMKL 可以转储 verbose 包含执行信息(如执行时的持续时间)的消息 内核。详细功能可以通过环境调用 变量 MKL_VERBOSE。但是,此方法将消息转储为 所有步骤。这些是大量冗长的消息。此外,对于 调查性能问题,通常采用详细消息 对于一次迭代就足够了。此按需详细功能 可以控制详细消息转储的范围。在 以下示例中,将转储第二个 仅推理。

import torch
model(data)
with torch.backends.mkl.verbose(torch.backends.mkl.VERBOSE_ON):
    model(data)
参数

level – 详细级别 - : 禁用详细 - : 启用详细VERBOSE_OFFVERBOSE_ON

torch.backends.mkldnn

torch.backends.mkldnn 中。is_available[来源]

返回 PyTorch 是否使用 MKL-DNN 支持构建。

torch.backends.mkldnn 中。verboselevel[来源]

按需 oneDNN(以前称为 MKL-DNN)详细功能 为了更轻松地调试性能问题,oneDNN 可以转储详细 包含内核大小、输入数据大小和 执行内核时的执行持续时间。详细功能 可以通过名为 DNNL_VERBOSE 的环境变量调用。然而 此方法在所有步骤中转储消息。这些是大量的 详细消息。此外,为了调查性能问题, 通常,对一次迭代获取详细消息就足够了。 这种按需详细功能使控制范围成为可能 进行详细消息转储。在以下示例中,详细消息 将仅针对第二次推理转储。

import torch
model(data)
with torch.backends.mkldnn.verbose(torch.backends.mkldnn.VERBOSE_ON):
    model(data)
参数

level – 详细级别 - : 禁用详细 - : 启用详细 - : 启用详细功能,包括 oneDNN 内核创建VERBOSE_OFFVERBOSE_ONVERBOSE_ON_CREATION

torch.backends.openmp

torch.backends.openmp 的is_available[来源]

返回 PyTorch 是否使用 OpenMP 支持构建。

torch.backends.opt_einsum

torch.backends.opt_einsum。is_available[来源]

返回一个布尔值,指示 opt_einsum 当前是否可用。

返回类型

布尔

torch.backends.opt_einsum。get_opt_einsum)[来源]

如果 opt_einsum 包当前可用opt_einsum则返回该包,否则返回 None。

返回类型

任何

torch.backends.opt_einsum。启用

一个 :class: 控制是否启用 opt_einsum ( 默认)。㞖 torch.einsum 将使用 opt_einsum (https://optimized-einsum.readthedocs.io/en/stable/path_finding.html) 如果可用,则计算最佳收缩路径以获得更快的性能。boolTrue

如果 opt_einsum 不可用,torch.einsum 将回退到默认的收缩路径 从左到右。

torch.backends.opt_einsum。策略

一个 :class: 指定在 is 时尝试哪些策略。默认情况下,torch.einsum 将尝试 “auto” 策略,但 “greedy” 和 “optimal” 还支持策略。请注意,“最佳”策略是阶乘的 inputs 进行 Inputs 操作,因为它会尝试所有可能的路径。在 opt_einsum 的文档中查看更多详细信息 (https://optimized-einsum.readthedocs.io/en/stable/path_finding.html)。strtorch.backends.opt_einsum.enabledTrue

torch.backends.xeon

文档

访问 PyTorch 的全面开发人员文档

查看文档

教程

获取面向初学者和高级开发人员的深入教程

查看教程

资源

查找开发资源并解答您的问题

查看资源