我们很高兴地宣布 PyTorch® 2.7 版本已发布(发布说明)!此版本包含以下特性:
- 支持 NVIDIA Blackwell GPU 架构,并为 Linux x86 和 arm64 架构提供了适用于 CUDA 12.8 的预构建 wheel 文件。
- 支持 torch.compile 的 Torch Function Modes,允许用户重写任何 *torch.** 操作,以实现自定义的用户行为。
- Mega Cache,允许用户对 torch 进行端到端的可移植缓存;
- FlexAttention 的新功能——LLM 首个 token 处理、LLM 吞吐量模式优化以及用于推理的 Flex Attention。
自 PyTorch 2.6 发布以来,此版本包含来自 457 位贡献者的 3262 次提交。我们衷心感谢我们敬业的社区所做的贡献。一如既往,我们鼓励您尝试这些新功能,并在我们改进 2.7 版本时报告任何问题。有关如何开始使用 PyTorch 2.x 系列的更多信息,请访问我们的入门页面。
Beta | 原型 |
支持 Torch.Compile 的 Torch Function Modes | 支持 NVIDIA Blackwell 架构 |
Mega Cache | PyTorch 原生上下文并行 |
增强 Intel GPU 加速 | |
在 x86 CPU 上进行 FlexAttention LLM 首个 token 处理 | |
在 x86 CPU 上进行 FlexAttention LLM 吞吐量模式优化 | |
Foreach Map | |
用于推理的 Flex Attention | |
Inductor 中的 Prologue Fusion 支持 |
*查看公共特性提交的完整列表,请点击此处。
BETA 特性
[Beta] 支持 Torch.Compile 的 Torch Function Modes
此特性允许用户重写任何 *torch.** 操作,以实现自定义的用户行为。例如,可以重写操作以适应特定的后端。FlexAttention 中就使用此特性来重写索引操作。
更多信息请参阅教程。
[Beta] Mega Cache
Mega Cache 允许用户对 torch 进行端到端的可移植缓存。预期用例是,在编译和执行模型后,用户调用 torch.compiler.save_cache_artifacts(),它将以可移植的形式返回编译器 artifact。随后,可能在另一台机器上,用户可以使用这些 artifact 调用 torch.compiler.load_cache_artifacts() 来预填充 torch.compile 缓存,从而快速启动缓存。
更多信息请参阅教程。
原型特性
[原型] 支持 NVIDIA Blackwell 架构
PyTorch 2.7 引入了对 NVIDIA 全新 Blackwell GPU 架构的支持,并提供了适用于 CUDA 12.8 的预构建 wheel 文件。有关 CUDA 12.8 的更多详细信息,请参阅 CUDA Toolkit Release。
- 核心组件和库,包括 cuDNN、NCCL 和 CUTLASS,均已升级,以确保与 Blackwell 平台的兼容性。
- PyTorch 2.7 包含 Triton 3.3,该版本增加了对 Blackwell 架构的支持,并与 torch.compile 兼容。
- 要利用这些新特性,请使用 CUDA 12.8 安装 PyTorch:pip install torch==2.7.0 –index-url https://download.pytorch.org/whl/cu128
更多上下文信息也可在此处找到:此处。
[原型] PyTorch 原生上下文并行
PyTorch Context Parallel API 允许用户创建一个 Python 上下文,以便其中的每个 *torch.nn.functional.scaled_dot_product_attention()* 调用都将以上下文并行方式运行。目前,PyTorch Context Parallel 支持 3 种注意力后端:1. Flash attention;2. Efficient attention;和 3. cuDNN attention。
例如,此特性已在 TorchTitan 中用作 LLM 训练的上下文并行解决方案。
请参阅此处教程。
[原型] 增强 Intel GPU 加速
最新版本引入了针对 Intel GPU 架构的增强性能优化。这些改进通过以下关键增强功能加速了各种 Intel GPU 上的工作负载
- 在 Windows 11 上为 Intel GPU 启用 torch.compile,提供了与 Linux 上相同的优于 eager 模式的性能优势。
- 优化 Intel GPU 上 PyTorch 2 Export 训练后量化 (PT2E) 的性能,提供具有增强计算效率的完整图模式量化流水线。
- 通过 bfloat16 和 float16 提高 Scaled Dot-Product Attention (SDPA) 推理性能,加速 Intel GPU 上的注意力模型。
- 在 Linux 上启用 AOTInuctor 和 torch.export,简化部署工作流程。
- 实现更多 Aten 算子,以增强 Intel GPU 上算子执行的连续性,并提高 Intel GPU 在 eager 模式下的性能。
- 在 Windows 和 Linux 上启用性能分析器,以促进模型性能分析。
- 将 Intel GPU 支持扩展到 Windows 和 Linux 上的 Intel® Core™ Ultra 系列 2 并搭载 Intel® Arc™ 显卡,以及 Intel® Arc™ B 系列显卡。
有关 Intel GPU 支持的更多信息,请参阅入门指南。
[原型] 在 x86 CPU 上进行 FlexAttention LLM 首个 token 处理
PyTorch 2.6 中首次引入了 FlexAttention x86 CPU 支持,通过 TorchInductor C++ 后端提供了优化的实现,例如对 LLM 推理至关重要的 PageAttention。在 PyTorch 2.7 中,支持了更多用于 LLM 首个 token 处理的注意力变体。通过此特性,用户可以在 x86 CPU 上更流畅地运行 FlexAttention,用统一的 FlexAttention API 替换特定的 scaled_dot_product_attention 算子,并在使用 torch.compile 时受益于通用支持和良好的性能。
[原型] FlexAttention LLM 吞吐量模式优化
通过采用新的 C++ micro-GEMM 模板能力,进一步提高了 FlexAttention 在 x86 CPU 上用于 LLM 推理吞吐量场景的性能。这解决了 PyTorch 2.6 中存在的大批量大小场景的性能瓶颈。通过此增强功能,用户在使用 FlexAttention API 和 torch.compile 在 x86 CPU 上进行 LLM 吞吐量服务时,可以透明地受益于更好的性能和更流畅的体验。
[原型] Foreach Map
此特性使用 torch.compile 允许用户将任何逐点函数或用户定义函数(例如 torch.add)应用于张量列表,类似于现有的 *torch.foreach** 算子。与现有 *torch.foreach** 算子的主要优势在于,可以将标量或张量列表的任意组合作为参数提供,甚至可以将用户定义的 Python 函数提升以应用于张量列表。Torch.compile 将自动生成水平融合的内核以获得最佳性能。
请参阅此处教程。
[原型] 用于推理的 Flex Attention
在 2.5.0 版本中,引入了 FlexAttention* torch.nn.attention.flex_attention*,供希望自定义注意力内核而无需编写内核代码的 ML 研究人员使用。本次更新引入了针对推理优化的解码后端,支持 GQA 和 PagedAttention,以及特性更新,包括嵌套锯齿张量支持、性能调优指南和可训练偏置支持。
[原型] Inductor 中的 Prologue Fusion 支持
Prologue fusion 通过将矩阵乘法 (matmul) 操作之前的操作融合到 matmul 内核本身来优化 matmul 操作,通过减少全局内存带宽来提高性能。