PyTorch* 2.6 现已发布,带来了一系列令人兴奋的新特性,包括 torch.compile 对 Python 3.13 的兼容性、全新的安全与性能增强,以及 torch.load 默认参数的变更。PyTorch 还宣布将弃用其官方 Anaconda 频道。
在性能特性中,有三项改进旨在提升开发者在 Intel 平台上的生产力:
- 提升 Intel GPU 的可用性
- 面向 LLM 的 x86 CPU 上 FlexAttention 优化
- x86 CPU 在 Eager 和 Inductor 模式下对 FP16 的支持
提升 Intel GPU 的可用性
为了向人工智能(AI)开发人员提供对 Intel GPU 的更好支持,我们在这些 GPU 上的 PyTorch 用户体验得到了增强。此次改进包括简化的安装步骤、Windows* 发行版二进制包,以及对更多 GPU 型号的支持,包括最新的 Intel® Arc™ B 系列独立显卡。
这些新特性有助于推动 PyTorch 生态系统内的加速机器学习工作流,提供一致的开发者体验和支持。寻求在 Intel® Core™ Ultra AI PC 和 Intel® Arc™ 独立显卡 上进行模型微调、推理和开发的应用程序开发人员和研究人员,现在可以直接安装适用于 Windows、Linux* 和 Windows Subsystem for Linux 2 (WSL 2) 的 PyTorch 二进制发布版本。
新特性包括:
- 简化了 Intel GPU 软件栈的设置,实现 torch-xpu PIP wheels 的一键安装,从而能够以即用方式运行深度学习工作负载,省去了安装和激活 Intel GPU 开发软件套件的复杂性。
- 为 Intel GPU 提供了适用于 Windows 的 torch core、torchvision 和 torchaudio 二进制发布版本,支持范围从 Intel® Core™ Ultra Series 2(配备 Intel® Arc™ Graphics)及 Intel® Arc™ A 系列显卡,扩展到了最新的 GPU 硬件 Intel® Arc™ B 系列显卡。
- 进一步增强了 Intel GPU 上 Aten 算子的覆盖范围,引入了用于流畅 Eager 模式执行的 SYCL* 内核,并对 Intel GPU 上的 torch.compile 进行了错误修复和性能优化。
请参阅入门指南,了解如何在 Intel® 客户端 GPU 和 Intel® 数据中心 GPU Max 系列上进行环境设置、PIP wheels 安装以及获取相关示例。
面向 X86 CPU 的 FlexAttention 优化 (针对 LLM)
FlexAttention 最初在 PyTorch 2.5 中引入,旨在满足对各种 Attention 及其组合的支持需求。该 PyTorch API 利用 torch.compile 生成融合的 FlashAttention 内核,消除了额外的内存分配,实现了与手写实现相当的性能。
此前,FlexAttention 是基于 Triton 后端为 CUDA* 设备实现的。自 PyTorch 2.6 起,通过 TorchInductor CPP 后端增加了对 X86 CPU 的 FlexAttention 支持。该新特性利用并扩展了现有的 CPP 模板能力,基于现有的 FlexAttention API 支持广泛的 Attention 变体(例如对 LLM 推理至关重要的 PageAttention),并在 x86 CPU 上带来了性能优化。通过此特性,用户可以轻松使用 FlexAttention API 在 CPU 平台上构建其 Attention 解决方案并获得良好的性能。
通常,FlexAttention 被流行的 LLM 生态项目(如 Hugging Face transformers 和 vLLM)用于其 LLM 相关建模(例如 PagedAttention),以实现更好的开箱即用性能。在正式采用之前,Hugging Face 中的这个使能 PR 可以帮助我们了解 FlexAttention 在 x86 CPU 平台上带来的性能提升。
下图展示了 PyTorch 2.6(包含此特性)与 PyTorch 2.5(不含此特性)在典型 Llama 模型上的性能对比。对于实时模式(Batch Size = 1),在不同的输入标记长度下,下一个标记的性能提升约 1.13 倍至 1.42 倍。至于在典型 SLA(P99 标记延迟 <= 50ms)下的最佳吞吐量,PyTorch 2.6 实现了比 PyTorch 2.5 高出 7.83 倍以上的性能。因为 PyTorch 2.6 可以同时运行 8 个输入(Batch Size = 8)并保持 SLA,而 PyTorch 2.5 只能运行 1 个输入,这是因为 PyTorch 2.6 中基于 FlexAttention 的 PagedAttention 在多 Batch Size 场景下提供了更高的效率。

图 1. PyTorch 2.6 与 PyTorch 2.5 在典型 Llama 模型上的性能对比
x86 CPU 在 Eager 和 Inductor 模式下对 FP16 的支持
Float16 是一种常用的缩减精度浮点类型,可提高神经网络推理和训练的性能。诸如最近推出的 Intel® Xeon® 6 with P-Cores 等 CPU 通过原生加速器 AMX 支持 Float16 数据类型,从而大幅提升了 Float16 的性能。x86 CPU 对 Float16 的支持最初作为原型功能在 PyTorch 2.5 中引入。现在,针对 Eager 模式和 Torch.compile + Inductor 模式都进行了进一步改进,并提升至 Beta 级别以供更广泛采用。这有助于在 CPU 端进行部署,无需在模型预训练采用 Float16/Float32 混合精度时修改模型权重。在支持 AMX Float16 的平台上(即配备 P-cores 的 Intel® Xeon® 6 处理器),Float16 在典型的 PyTorch 基准测试套件(TorchBench、Hugging Face 和 Timms)中的通过率与 Bfloat16 相同。它还表现出了与 16 位数据类型 Bfloat16 相当的良好性能。
总结
在本篇博客中,我们讨论了 PyTorch 2.6 中提升 Intel 平台上开发者生产力的三项功能。这三项功能旨在提高 Intel GPU 的可用性,针对大型语言模型(LLMs)优化 x86 CPU 的 FlexAttention,并在 Eager 和 Inductor 模式下支持 x86 CPU 的 FP16。您可以获取 PyTorch 2.6 并亲自尝试,或者通过 Intel® Tiber™ AI Cloud 访问 PyTorch 2.6,以利用为 Intel 软硬件优化的托管笔记本。
致谢
PyTorch 2.6 的发布是 Intel 平台的一个激动人心的里程碑,如果没有社区的深入协作和贡献,这一切都不可能实现。我们衷心感谢 Alban、Andrey、Bin、Jason、Jerry 和 Nikita 分享宝贵想法、细致审查 PR 并对 RFC 提供深刻反馈。他们的奉献精神推动了持续改进,并促进了 Intel 平台生态系统的发展。
参考文献
产品和性能信息
AWS EC2 m7i.metal-48xl 测试数据,配置:2x Intel® Xeon® Platinum 8488C,启用超线程 (HT),启用睿频 (Turbo),NUMA 2,可用集成加速器 [已使用]:DLB [8],DSA [8],IAA[8],QAT[CPU 上,8],总内存 512GB (16x32GB DDR5 4800 MT/s [4400 MT/s]),BIOS Amazon EC2 1.0,微代码 0x2b000603,1x 弹性网络适配器 (ENA),1x Amazon Elastic Block Store 800G,Ubuntu 24.04.1 LTS 6.8.0-1018-aws。测试由 Intel 于 2025 年 1 月 15 日完成。
注意事项和免责声明
性能因使用、配置和其他因素而异。请访问性能指数网站了解更多信息。性能结果基于所示配置下的测试日期,可能无法反映所有公开发布的更新。 请参阅备份以获取配置详情。 没有任何产品或组件是绝对安全的。您的成本和结果可能有所不同。英特尔技术可能需要启用硬件、软件或服务激活。
英特尔公司。英特尔、英特尔徽标和其他英特尔标志是英特尔公司或其子公司的商标。其他名称和品牌可能属于他人所有。
AI 免责声明
AI 功能可能需要购买软件、订阅或由软件/平台提供商启用,或者具有特定的配置或兼容性要求。详情请参阅 www.intel.com/AIPC。结果可能因情况而异。