我们有好消息宣布!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 上游的前端和后端改进。
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。了解环境设置、源码构建和示例。要了解如何创建免费的标准账户,请参阅开始,然后执行以下步骤:
总结
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