目录

torch.compiler

torch.compiler是一个命名空间,一些内部编译器通过该命名空间 方法供用户使用。main 函数和 此命名空间为 。torch.compile

torch.compile是 PyTorch 2.x 中引入的 PyTorch 函数,旨在 解决 PyTorch 中精确捕获图的问题,最终启用 软件工程师更快地运行他们的 PyTorch 程序。 是 用 Python 编写的,它标志着 PyTorch 从 C++ 到 Python 的过渡。torch.compile

torch.compile利用以下底层技术:

  • TorchDynamo (torch._dynamo) 是一个使用 CPython 的内部 API 功能调用了帧评估 API,以安全地捕获 PyTorch 图形。 将显示 PyTorch 用户可从外部使用的方法 通过命名空间。torch.compiler

  • TorchInductor 是默认的深度学习编译器 为多个加速器和后端生成快速代码。你 需要使用后端编译器来使加速成为可能。对于 NVIDIA、AMD 和 Intel GPU,它利用 OpenAI Triton 作为关键 积木。torch.compiletorch.compile

  • AOT Autograd 不仅捕获用户级代码,还捕获反向传播、 这会导致“提前”捕获向后传递。这使得 使用 TorchInductor 进行正向和向后传递的加速度。

注意

在某些情况下,术语 TorchDynamo 在本文档中可以互换使用。torch.compiletorch.compiler

如上所述,为了更快地运行工作流程,请通过 TorchDynamo 需要一个后端,用于将捕获的图形转换为快速的 机器代码。不同的后端可以带来不同的优化收益。 默认后端称为 TorchInductor,也称为 inductor, TorchDynamo 有一个由我们的合作伙伴开发的受支持后端列表, 可以通过运行每个 及其可选依赖项。torch.compiletorch.compiler.list_backends()

一些最常用的后端包括:

训练和推理后端

后端

描述

torch.compile(m, backend="inductor")

使用 TorchInductor 后端。阅读更多

torch.compile(m, backend="cudagraphs")

使用 AOT Autograd 的 CUDA 图形。阅读更多

torch.compile(m, backend="ipex")

在 CPU 上使用 IPEX。阅读更多

torch.compile(m, backend="onnxrt")

使用 ONNX 运行时在 CPU/GPU 上进行训练。阅读更多

仅推理后端

后端

描述

torch.compile(m, backend="tensorrt")

使用 Torch-TensorRT 进行推理优化。Requires 在调用脚本中注册 backend。阅读更多import torch_tensorrt

torch.compile(m, backend="ipex")

使用 IPEX 在 CPU 上进行推理。阅读更多

torch.compile(m, backend="tvm")

使用 Apache TVM 进行推理优化。阅读更多

torch.compile(m, backend="openvino")

使用 OpenVINO 进行推理优化。阅读更多

文档

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

查看文档

教程

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

查看教程

资源

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

查看资源