我们很高兴地宣布 PyTorch® 2.7 (发布说明) 正式发布!此版本包含以下特性:
- 支持 NVIDIA Blackwell GPU 架构,并提供适用于 Linux x86 和 arm64 架构的 CUDA 12.8 预构建安装包(wheels)。
- torch.compile 支持 Torch Function Modes,使用户能够重写任何 *torch.** 操作,以实现自定义的用户定义行为。
- Mega Cache,允许用户实现 torch 的端到端可移植缓存;
- FlexAttention 的新特性——大模型(LLM)首个 Token 处理、LLM 吞吐量模式优化以及用于推理的 Flex Attention。
自 PyTorch 2.6 发布以来,此版本共包含来自 457 位贡献者的 3262 次提交。我们衷心感谢社区成员的无私奉献。一如既往,我们鼓励您尝试这些新功能,并在我们持续改进 2.7 版本的过程中反馈任何问题。关于如何开始使用 PyTorch 2 系列的更多信息,请访问我们的 入门 页面。
| Beta | 原型 |
| Torch.Compile 支持 Torch Function Modes | 支持 NVIDIA Blackwell 架构 |
| Mega Cache | PyTorch 原生上下文并行(Native Context Parallel) |
| 增强 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(),该函数将以可移植格式返回编译器构件。随后,用户可以在其他机器上调用 torch.compiler.load_cache_artifacts() 并加载这些构件,从而预填充 torch.compile 缓存,实现缓存的快速启动。
更多信息请参阅 教程。
原型(PROTOTYPE)特性
[Prototype] 支持 NVIDIA Blackwell 架构
PyTorch 2.7 引入了对 NVIDIA 全新 Blackwell GPU 架构的支持,并提供适用于 CUDA 12.8 的预构建安装包。有关 CUDA 12.8 的更多详细信息,请参阅 CUDA 工具包发布说明。
- 包括 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
更多背景信息也可以在 此处 找到。
[Prototype] PyTorch 原生上下文并行
PyTorch 上下文并行(Context Parallel)API 允许用户创建一个 Python 上下文,使得其中的每个 *torch.nn.functional.scaled_dot_product_attention()* 调用都以上下文并行方式运行。目前,PyTorch 上下文并行支持 3 种 Attention 后端:1. Flash attention;2. Efficient attention;3. cuDNN attention。
例如,这已在 TorchTitan 中用作 LLM 训练的上下文并行解决方案。
请参阅此处的 教程。
[Prototype] 增强 Intel GPU 加速
最新版本针对 Intel GPU 架构引入了增强的性能优化。通过以下关键改进,加速了各类 Intel GPU 上的工作负载:
- 在 Windows 11 上为 Intel GPU 启用 torch.compile,提供与 Linux 上相同的优于 eager 模式的性能优势。
- 优化 PyTorch 2 导出后训练量化(PT2E)在 Intel GPU 上的性能,提供具有更高计算效率的全图模式量化流水线。
- 改进 bfloat16 和 float16 的缩放点积注意力(SDPA)推理性能,以加速 Intel GPU 上基于注意力的模型。
- 在 Linux 上启用 AOTInductor 和 torch.export,以简化部署工作流。
- 实现更多 Aten 算子,增强 Intel GPU 上算子执行的连续性,并提高 eager 模式下的性能。
- 在 Windows 和 Linux 上启用性能分析器(Profiler),以促进模型性能分析。
- 将 Intel GPU 支持扩展至 Intel® Core™ Ultra Series 2 处理器 (含 Intel® Arc™ 显卡),以及 Windows 和 Linux 上的 Intel® Arc™ B 系列显卡。
关于 Intel GPU 支持的更多信息,请参考 入门指南。
[Prototype] x86 CPU 上 FlexAttention 的 LLM 首个 Token 处理
FlexAttention x86 CPU 支持首次引入于 PyTorch 2.6,通过 TorchInductor C++ 后端提供优化的实现(如对 LLM 推理至关重要的 PageAttention)。在 PyTorch 2.7 中,支持了更多用于 LLM 首个 Token 处理的注意力变体。通过此功能,用户可以在 x86 CPU 上更流畅地运行 FlexAttention,用统一的 FlexAttention API 替代特定的 scaled_dot_product_attention 算子,并在使用 torch.compile 时获得通用支持和良好的性能。
[Prototype] FlexAttention LLM 吞吐量模式优化
通过采用全新的 C++ micro-GEMM 模板功能,FlexAttention 在 x86 CPU 上针对 LLM 推理吞吐量场景的性能得到了进一步提升。这解决了 PyTorch 2.6 中在大批量(batch size)场景下的性能瓶颈。通过此增强,用户在 x86 CPU 上进行 LLM 吞吐量服务时,使用 FlexAttention API 和 torch.compile 可以透明地获得更好的性能和更流畅的体验。
[Prototype] Foreach Map
此功能利用 torch.compile,允许用户将任何逐点(pointwise)或用户定义的函数(例如 torch.add)应用于张量列表,类似于现有的 *torch.foreach** 算子。相较于现有算子的主要优势在于:参数可以混合提供标量或张量列表,甚至用户定义的 Python 函数也可以被提升(lifted)以应用于张量列表。Torch.compile 将自动生成水平融合内核以实现最优性能。
请参阅此处的 教程。
[Prototype] 用于推理的 Flex Attention
在 2.5.0 版本中,我们为那些希望自定义注意力内核却不想编写内核代码的机器学习研究人员引入了 FlexAttention (torch.nn.attention.flex_attention)。此次更新引入了一个针对推理优化的解码后端,支持 GQA 和 PagedAttention,并更新了特性,包括嵌套 jagged 张量支持、性能调优指南和可训练偏置支持。
[Prototype] Inductor 中的序言融合(Prologue Fusion)支持
序言融合通过将矩阵乘法(matmul)之前的操作直接融合到 matmul 内核中,从而减少了全局内存带宽消耗,进而优化了矩阵乘法操作并提升了性能。