跳转到主要内容
博客

加速您的 AI:PyTorch 2.4 现已支持英特尔 GPU,实现更快的工作负载

作者: 2024年8月29日2024年11月11日暂无评论

我们有个激动人心的消息!PyTorch 2.4 现已支持英特尔® 数据中心 GPU Max 系列和 SYCL 软件栈,让您更轻松地加速训练和推理的AI工作流程。此更新让您能够以最少的编码工作获得一致的编程体验,并扩展了 PyTorch 的设备和运行时功能,包括设备、流、事件、生成器、分配器和防护,以无缝支持流式设备。此增强功能简化了 PyTorch 在普及硬件上的部署,让您更轻松地集成不同的硬件后端。

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

请查看上游集成到 PyTorch 中的英特尔 GPU 的当前和计划的前端和后端改进。

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

Linux 上的 PyTorch 2.4 支持英特尔数据中心 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™ Developer Cloud 试用英特尔数据中心 GPU Max 系列上的 PyTorch 2.4。了解 环境设置、源代码构建和示例。要了解如何创建免费的标准帐户,请参阅 入门,然后执行以下操作:

  1. 登录 云控制台
  2. 培训 部分中,打开 PyTorch 2.4 on Intel GPUs 笔记本。
  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 ShulgaJason AnselAndrey TalmanAlban DesmaisonBin Bao

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

1 为启用 GPU 支持并提高性能,我们建议安装 适用于 PyTorch 的英特尔® 扩展