英特尔创新大使 黄明明

英特尔开发者技术推广经理 李翊玮

背景

在以往的实践中,当我们针对 ultralytics 的 YOLO 模型开展训练工作时,可供选择的计算设备通常局限于 CPU、mps 以及 cuda 这几种。然而,自 PyTorch2.5 版本发布之后,情况有了新的变化,PyTorch2.5正式开始支持英特尔显卡,也就是说,此后我们能够借助 Intel Intel® Arc™ 显卡来进行模型训练了。

具体而言,PyTorch2.5 版本能够在不同的操作系统及对应的英特尔显卡系列上提供支持。在 Linux 系统下,它支持 Intel® 数据中心 GPU Max 系列;在 Windows 系统下,则支持 Intel®Arc™系列。倘若您想要尝试通过不同的方式来利用英特尔显卡进行相关操作,可以参考网址https://dgpu-docs.intel.com/driver/client/overview.html来安装 GPU 驱动。

接下来,本文将会选用基于 Intel®Core™ Ultra 7 185H 的AI PC在 Windows 平台展开具体的演示与应用,以便让大家更为直观地了解相关的操作流程与实际效果。

安装驱动

Linux

如果你正在使用 Linux 操作系统,并且希望充分发挥英特尔独立显卡的性能优势,那么安装正确的 GPU 驱动程序至关重要。在这个过程中,你可以参考网址Installing Client GPUs — Intel® software for general purpose GPU capabilities documentation,该网站提供了详细且全面的指导,能够帮助你顺利完成 GPU 驱动的安装。

Windows

在使用英特尔显卡的过程中,若你购买的是正版系统并且使用的是默认的 Windows 系统,通常情况下,系统会默认安装英特尔 ® 锐炫™控制面板。这一控制面板为用户提供了便捷的图形设置和管理功能,使用户能够根据自身需求对显卡进行个性化的调整。

然而,若你发现系统中并未安装英特尔 ® 锐炫™控制面板,也无需担忧,你可以前往英特尔官方支持网站进行下载。英特尔为用户提供了丰富的支持资源,其中包括针对显卡相关问题的详细解决方案和各类实用工具的下载链接。你可以访问网址https://www.intel.com/content/www/us/en/support/products/80939/graphics.htm,在该页面中,你能够找到与英特尔图形产品支持相关的各类信息,涵盖了众多英特尔处理器系列、显卡产品以及相关技术和解决方案。通过浏览该页面,你可以获取到更为全面的产品支持信息,有助于你深入了解英特尔图形产品的特性和功能。另外,对于如何在 Windows 10 和 Windows 11 系统中安装英特尔 ® 图形驱动程序,你可以参考网址https://www.intel.com/content/www/us/en/support/articles/000005629/graphics/processor-graphics.html。该页面详细介绍了两种安装方法,推荐的方法是使用英特尔 ® 驱动程序与支持助手(Intel® Driver & Support Assistant)自动检测并安装驱动程序。你只需下载该助手,它将为你智能识别系统所需的驱动程序并完成安装过程,更多信息可查看英特尔 ® 驱动程序与支持助手常见问题解答(FAQ)。

PyTorch安装

安装Pytorch就比较简单了,首先建立一个虚拟的Python环境然后。

​
$pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/xpu

​

注意:--index-url https://download.pytorch.org/whl/nightly/xpu 请务必加上,如不加上可能安装的是非XPU版本。

验证:

import torch

若提示 “******xpu.dll 找不到”,先检查安装是否完整,回顾有无遗漏、报错或中断情况,确认依赖组件是否安装到位。同时排查网络是否被劫持,可换网络环境或用检测工具查看。

若存在问题,要重新下载安装。在此之前,删除 pip 的缓存,清理旧文件与错误记录,保障后续下载完整无误,顺利完成安装,恢复程序正常运行。

​
$pip uninstall 
torch 
$pip uninstall 
torchaudio
$pip uninstall 
torchvision 
$pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/xpu
​

确认xpu是否可以使用:

torch.xpu.is_available()
True

使用XPU进行模型训练

之前在 Intel 主机上展开模型训练,执行相应代码就能开启流程,可因未引入CUDA,仅靠 CPU 运算,训练耗时长得令人咋舌。就拿笔者实操来说,以往用 CPU 训练,满满六个小时才跑完一轮,效率极低。

好在如今情况大变样,同样的训练任务,用AI PC内置的Intel® Arc™ graphics耗时锐减,现在只需一个半小时即可完成,效率提升显著。

model = YOLO("yolo11s.pt")  # load a pretrained model (recommended for training)
# Train the model
results = model.train(data="yolo.yaml", epochs=100, imgsz=640)

依据官方文档指引,在利用相关工具开展训练工作时,倘若要启用除默认设备之外的其他设备,操作流程原本十分便捷,仅需在 train 方法里精准传入对应的 device 参数,便能轻松达成设备切换,适配多样化的硬件资源,实现训练效能的优化提升。

然而,就当前情况而言,ultralytics 官方框架尚未提供对 XPU 的原生支持,这无疑给我们借助 XPU 强大算力来加速训练进程设置了一道障碍。若执意要在训练流程中启用 XPU,那就不得不对源代码进行深度剖析与针对性修改,这一过程既考验技术功底,又伴随着代码稳定性、兼容性等诸多潜在风险。

但值得庆幸的是,即便受限于Ultralytics官方对 XPU 支持的暂缺现状,我们仍有变通之法。可以绕开复杂的源代码改动,转而在外层通过合理设置训练设备的方式,巧妙引导训练任务适配期望的硬件设备,以此确保训练工作能够在符合自身硬件条件与算力诉求的环境下高效、平稳开展。

if __name__ == '__main__':

    freeze_support()

    # Load a model

    model = YOLO("yolo11s.pt")  # load a pretrained model (recommended for training) and transfer weights

    device_str = "xpu:0"

    device = torch.device(device_str)

    model = model.to(device)

    # Train the model

    results = model.train(data="switch.yaml", epochs=100, imgsz=640)

总结

本文围绕深度学习模型训练效率提升与硬件资源优化利用这一核心主题,聚焦于英特尔AI PC系列平台,深入阐述了从传统 CPU 训练模式向 XPU 赋能训练模式的转型历程,尤其以 YOLO 模型训练作为典型范例展开剖析。

过往依赖 CPU 开展 YOLO模型训练时,受限于 CPU 单核处理能力与串行运算机制,训练周期冗长,硬件资源利用率也处于较低水平,极大制约了模型迭代优化的速度。而随着 英特尔AI PC系列平台搭载的 XPU 技术登场,局面得以彻底扭转。文中详述了如何借助这一先进平台,将训练算力基石从 CPU 平稳迁移至 XPU,充分释放 XPU 兼具的多元处理单元协同优势与高效并行计算效能。在这一转变过程中,训练时间得到了大幅度压缩,原本漫长的训练时长锐减,效率实现数倍乃至数十倍的跃升,让模型训练从耗时 “长跑” 变为高效 “冲刺”。

更为关键的是,这种基于 XPU 的训练革新绝非仅惠及 YOLO 模型。立足长远,凭借 XPU 卓越的架构设计与强劲算力支撑,后续众多依托 torch 框架构建的模型及前沿技术,均可无缝接入并深度运用其强大能力。无论是复杂的图像识别、语义分割,还是自然语言处理领域的深度神经网络模型,XPU 都将成为它们加速迭代、突破性能瓶颈的 “强效催化剂”,真正达成对深度学习技术全方位的加速赋能,推动整个领域朝着更高效、更智能的方向阔步迈进。

Logo

为开发者提供丰富的英特尔开发套件资源、创新技术、解决方案与行业活动。欢迎关注!

更多推荐