作者:英特尔 PyTorch 团队

我们有好消息宣布!PyTorch 2.4 现已支持英特尔® 数据中心 GPU Max 系列和 SYCL 软件栈,这使得加速训练和推理的 AI 工作流程变得更加容易。此更新使你能够以最小的编码工作量获得一致的编程体验,并扩展了 PyTorch 的设备和运行时能力,包括设备、流、事件、生成器、分配器和守护器,以无缝支持流式设备。这一增强简化了在各种通用硬件上部署 PyTorch,让你更容易集成不同的硬件后端。

英特尔 GPU 对 PyTorch 上游的支持提供了对 eager 模式和 graph 模式的支持,并完全运行了 Dynamo Hugging Face 基准测试。eager 模式现在包含使用 SYCL 实现的常见 Aten 操作符。最关键性能的图和操作符通过使用 oneAPI 深度神经网络库 (oneDNN) 和 oneAPI 数学核心库 (oneMKL) 得到了高度优化。Graph 模式 (torch.compile) 现在已启用英特尔 GPU 后端,以实现针对英特尔 GPU 的优化并集成 Triton。此外,支持 FP32, BF16, FP16 等数据类型以及自动混合精度 (AMP)。基于 Kineto 和 oneMKL 的 PyTorch Profiler 正在开发中,计划在即将发布的 PyTorch 2.5 中提供。

看看当前和计划中的英特尔 GPU 对 PyTorch 上游的前端和后端改进。

the current and planned front-end and back-end improvements for Intel GPU upstreamed into PyTorch

PyTorch 2.4 在 Linux 上支持英特尔数据中心 GPU Max 系列进行训练和推理,同时保持与其他硬件相同的用户体验。如果你正在从 CUDA 迁移代码,只需将设备名称从 cuda 更新为 xpu,即可在英特尔 GPU 上运行现有应用程序,只需做很少的改动。例如

# CUDA Code 
tensor = torch.tensor([1.0, 2.0]).to("cuda") 
 
# Code for Intel GPU 
tensor = torch.tensor([1.0, 2.0]).to("xpu")

开始

通过英特尔® Tiber™ 开发者云,在英特尔数据中心 GPU Max 系列上试用 PyTorch 2.4。了解环境设置、源码构建和示例。要了解如何创建免费的标准账户,请参阅开始,然后执行以下步骤:

  1. 登录云控制台

  2. 训练 部分,打开 面向英特尔 GPU 的 PyTorch 2.4 笔记本。

  3. 确保为笔记本选择了 PyTorch 2.4 内核。

总结

PyTorch 2.4 引入了对英特尔数据中心 GPU Max 系列的初步支持,以加速你的 AI 工作负载。通过英特尔 GPU,你将获得持续的软件支持、统一的分发和同步的发布计划,从而获得更顺畅的开发体验。我们正在增强此功能,使其在 PyTorch 2.5 中达到 Beta 质量。2.5 中计划的功能包括:

  • eager 模式支持更多 Aten 操作符以及完整的 Dynamo Torchbench 和 TIMM。

  • torch.compile 支持完整的 Dynamo Torchbench 和 TIMM 基准测试。

  • torch.profile 支持英特尔 GPU。

  • PyPI wheels 分发。

  • 支持 Windows 和英特尔客户端 GPU 系列。

我们欢迎社区评估这些针对 PyTorch 英特尔 GPU 支持的新贡献。

资源

致谢

我们要感谢 PyTorch 开源社区提供的技术讨论和见解:Nikita Shulga, Jason Ansel, Andrey Talman, Alban Desmaison, 和 Bin Bao

我们还要感谢来自 PyTorch 的合作者提供的专业支持和指导。

1 为了启用 GPU 支持并提高性能,我们建议安装 英特尔® Extension for PyTorch