作者:英特尔 PyTorch 团队

PyTorch® 2.5 现在支持英特尔 GPU,为英特尔 GPU 提供了改进的功能和性能,包括 英特尔® Arc™ 独立显卡内置英特尔® Arc™ 显卡的英特尔® 酷睿™ Ultra 处理器英特尔® 数据中心 GPU Max 系列。此集成将英特尔 GPU 和 SYCL* 软件堆栈引入官方 PyTorch 堆栈,确保一致的用户体验,并实现更广泛的 AI 应用场景,尤其是在 AI PC 领域。

为英特尔 GPU 构建和使用英特尔 GPU 的开发者和客户将获得更好的用户体验,他们可以直接从原生 PyTorch、统一软件分发和一致的产品发布时间获得持续的软件支持。

此外,英特尔 GPU 支持为用户提供了更多选择。现在,PyTorch 在前端和后端都提供了一致的 GPU 编程范式。开发者现在只需最少的编码工作即可在英特尔 GPU 上运行和部署工作负载。

英特尔 GPU 支持概述

PyTorch 中的英特尔 GPU 支持在 PyTorch 内置前端中提供 eager 模式和图模式支持。Eager 模式现在使用 SYCL 编程语言实现了常用 Aten 运算符。图模式 (torch.compile) 现在启用了英特尔 GPU 后端,以实现英特尔 GPU 的优化并集成 Triton。 

英特尔 GPU 支持的基本组件已添加到 PyTorch 中,包括运行时、Aten 运算符、oneDNN、TorchInductor、Triton 和英特尔 GPU 工具链集成。同时,量化和分布式正在积极开发中,为 PyTorch 2.6 版本做准备。

功能

除了为英特尔® 客户端 GPU 和英特尔® 数据中心 GPU Max 系列提供推理和训练的关键功能外,PyTorch 还保持了与其他 PyTorch 支持的硬件相同的用户体验。如果您从 CUDA* 迁移代码,您只需对设备名称进行最少的代码更改(从 cuda 到 xpu),即可在英特尔 GPU 上运行现有的应用程序代码。例如

# CUDA 代码
tensor = torch.tensor([1.0, 2.0]).to(“cuda”)

# 英特尔 GPU 代码
tensor = torch.tensor([1.0, 2.0]).to(“xpu”)

PyTorch 2.5 的英特尔 GPU 功能包括: 

  • 推理和训练工作流程。
  • 增强 torch.compile 和 eager 模式的功能(更多 Ops),同时改进性能,并完全运行三个 Dynamo Hugging Face*、TIMM* 和 TorchBench* 基准测试,用于 eager 和 compile 模式。 
  • FP32、BF16、FP16 等数据类型和自动混合精度 (AMP)。
  • 在英特尔® 客户端 GPU 和英特尔® 数据中心 GPU Max 系列上运行。
  • 支持 Linux(Ubuntu、SUSE Linux 和 Red Hat Linux)和 Windows 10/11。

开始使用

入门指南了解环境设置、PIP wheels 安装以及英特尔® 客户端 GPU 和英特尔® 数据中心 GPU Max 系列上的示例。通过 nightly 和预览二进制版本安装 PyTorch PIP wheels 可以体验对英特尔 GPU 的支持。

  • 通过英特尔® Arc™ 显卡系列(代号 DG2)、内置英特尔® 显卡的英特尔® 酷睿™ Ultra 处理器系列(代号 Meteor Lake)和内置英特尔® 显卡的英特尔® 酷睿™ Ultra 移动处理器系列(代号 Lunar Lake)尝试英特尔® 客户端 GPU。

  • 通过 英特尔® Tiber™ AI 云 尝试英特尔数据中心 GPU Max 系列。

    1. 要了解如何创建免费的标准帐户,请参阅入门指南。然后执行以下操作

性能

PyTorch 上英特尔 GPU 的性能不断优化,在 Dynamo Hugging Face、TIMM 和 TorchBench 三个基准测试的 eager 和 compile 模式下均取得了不错的成绩。

最新的性能数据是在 PyTorch Dynamo Benchmarking Suite 之上使用英特尔® 数据中心 GPU Max 系列 1100 单卡测量的,图 1 展示了 FP16/BF16 在 eager 模式下相对于 FP32 的显著加速比,图 2 展示了 Torch.compile 模式相对于 eager 模式的加速比。推理和训练都达到了类似的显著改进。

Figure 2: FP16/BF16 Performance Gains Over FP32 Eager

图 2:FP16/BF16 相对于 FP32 Eager 的性能提升

Figure 3: Torch.compile Performance Gains Over Eager Mode

图 3:Torch.compile 相对于 Eager 模式的性能提升

总结

PyTorch 2.5 上的英特尔 GPU 将英特尔® 客户端 GPU(内置英特尔® Arc™ 显卡的英特尔® 酷睿™ Ultra 处理器和用于 dGPU 部件的英特尔® Arc™ 显卡)和英特尔® 数据中心 GPU Max 系列引入 PyTorch 生态系统,用于 AI 工作负载加速。特别是,客户端 GPU 已添加到支持 GPU 的列表中,用于 Windows 和 Linux 环境下的 AI PC 使用场景。

我们热烈欢迎社区评估这些增强功能并提供反馈,请访问 PyTorch 上的英特尔 GPU 支持。 

资源

致谢

我们要感谢 PyTorch 开源社区的技术讨论和见解:Andrey TalmanAlban DesmaisonNikita ShulgaEli UriegasJason AnselBin Bao

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

性能配置

表中的配置通过 svr-info 收集。英特尔于 2024 年 9 月 12 日测试。

表 1

组件 详细信息
名称 英特尔® Tiber™ 开发者云中的英特尔® Max 系列 GPU 1100
时间 2024 年 9 月 12 日星期四 08:21:27 UTC
系统 Supermicro SYS-521GE-TNRT
主板 Supermicro X13DEG-OA
机箱 Supermicro Other
CPU 型号 Intel(R) Xeon(R) Platinum 8468V
微架构 SPR_XCC
插槽数 2
每个插槽的内核数 48
超线程 已启用
CPU 192
英特尔睿频加速 已启用
基本频率 2.4GHz
全核最大频率 2.4GHz
最大频率 2.9GHz
NUMA 节点 2
预取器 L2 HW:已启用,L2 Adj.:已启用,DCU HW:已启用,DCU IP:已启用,AMP:已禁用,Homeless:已禁用,LLC:已禁用
PPIN 5e3f862ef7ba9d50, 6c85812edfcc84b1
加速器 DLB 2、DSA 2、IAA 2、QAT(在 CPU 上)2、QAT(在芯片组上)0
已安装内存 1024GB (16x64GB DDR5 4800 MT/s [4800 MT/s])
Hugepagesize 2048 kB
透明大页 madvise
自动 NUMA 平衡 已启用
网卡 2 个以太网控制器 X710 用于 10GBASE-T,4 个 MT2892 系列 [ConnectX-6 Dx]
磁盘 1 个 894.3G Micron_7450_MTFDKBG960TFR
BIOS 1.4a
微码 0x2b0004b1
操作系统 Ubuntu 22.04.2 LTS
内核 5.15.0-73-generic
TDP 330W
电源和性能策略 正常 (6)
频率调速器 performance
频率驱动程序 acpi-cpufreq
最大 C 状态 9

表 2

组件 详细信息
单卡 英特尔® Max 系列 GPU 1100 系列,基于英特尔 Tiber 开发者云的第四代英特尔® 至强® 处理器
工作负载和版本 Timm ac34701、TorchBench 03cde49、Torchvision d23a6e1、Torchaudio b3f6f51、Transformers 243e186
软件堆栈 intel-for-pytorch-gpu-dev 0.5.3、intel-pti-dev 0.9.0、Intel xpu backend for Triton cc981fe
框架 Pytorch 4a3dabd67f8ce63f2fc45f278421cca3cc532cfe
GPU 驱动程序 agama-ci-devel-803.61
GFX FW 版本 PVC2_1.23374

声明与免责声明

性能因用途、配置和其他因素而异。在 Performance Index 网站上了解更多信息。性能结果基于截至配置中所示日期的测试,可能无法反映所有公开可用的更新。有关配置详细信息,请参阅备份。没有任何产品或组件可以是绝对安全的。您的成本和结果可能会有所不同。英特尔技术可能需要启用硬件、软件或服务激活。

英特尔公司。英特尔、英特尔徽标和其他英特尔标志是英特尔公司或其子公司的商标。其他名称和品牌可能是其他公司的财产。

AI 免责声明
AI 功能可能需要软件购买、订阅或由软件或平台提供商启用,或者可能具有特定的配置或兼容性要求。详细信息请访问  www.intel.com/AIPC。结果可能会有所不同。