从音视频、图像处理,到 AI 深度学习推理和训练,众多不同应用场景中,处理的数据量在以指数级别上升,数据形态愈加多元,对于计算处理芯片的要求也越来越多样化、越来越复杂。

针对如此艰巨的挑战,英特尔早在 2018 年就提出了 XPU 的概念:使用多种计算架构充分满足复杂计算需求。具体来说,是由标量 (Scalar)、矢量 (Vector)、矩阵 (Matrix)、空间 (Spatial) 组成的  SVMS  架构,分别对应 CPU、GPU、加速器和 FPGA,可以进行多种异构处理器组合,从而实现高性能处理多种负载。

有了这么多架构各异的芯片,软件上应该如何协调?开发人员怎样才能高效开发跨多种计算架构的应用?

针对这个热点话题,6 月 29 日的“至强研究所”思享会中,英特尔公司高性能计算解决方案架构师刘蕴深入解析了 XPU 的概念及其编程模型。

●          “X”种加速硬件,      ●

4 大类主流编程技术

演讲分享伊始,刘蕴老师在介绍 XPU 的具体概念时指出:XPU 是跨架构处理单元 (Cross-Architecture Processing Units) 的简称。而其中的“X”,则可以作为通配符理解,统称各种不同的加速和处理芯片,对应满足不同的应用负载和功耗需求。当然,不同架构的加速硬件会带来更高的复杂性,通常会需要不同的开发技术,在数据正确性方面也会为开发人员带来挑战。

VPX总线互联架构 什么是vpx架构_异构

针对异构编程,目前的主流编程技术包括:

  • OpenMP:使用#pragma directives (制导语句) 实现并行计算的开发库。主流的 C、C++ 和 Fortran 编译器都可以支持。它从 4.0 版本开始支持异构,但并行代码不够灵活,而且语法日渐复杂。
  • OpenCL:只需单一源码就能支持异构硬件,但 OpenCL 的学习难度较高,学习曲线更陡峭。
  • CUDA、HIP 等:只能在特定的 XPU 上运行。
  • SYCL 及 oneAPI 生态:基于标准 C++ 编程模板,有更多的库支持 (oneAPI)。无论目标设备如何,语言和编程模型都保持一致。

●          跨平台抽象 SYCL,      ●

异构编程新生代 

英特尔推出的 oneAPI 是一个开放、规范、跨架构和跨厂商的统一软件栈,其最大特点是:针对不同品牌、不同种类的硬件,抽象出各种硬件的差异,提供单一源码编程方案,方便开发人员跨多种计算架构开发应用。

oneAPI 不仅支持 PyTorch、TensorFlow、NumPy 等上层开发库,包含 Python、SYCL、Fortran、C++ 等多种开发语言库,提供性能监控、调优、调试等多种方便开发人员的工具,还拥有媒体处理、图像渲染、数学计算、深度神经网络、并行处理、网络通信等多种基础库。总的来说,它的优势在于:

一、可更充分、更高效地利用硬件的性能;

二、支持开发人员,让他们能更自由地使用编程模型。

作为异构平台编程大家族中的新生代,SYCL 就是 oneAPI 中的那个跨平台抽象层:它让开发人员可以使用标准 ISO C++ 开发用于并行数据处理的代码,并跨越不同 CPU、GPU、FPGA 和 AI 加速器提供统一的编程语言和 API 编程接口。开发人员只要学习一次,就能针对不同加速器进行编程。无论目标设备如何,语言和编程模型都保持一致。SYCL 2020 的最终规范版本对行业意义深远,因为 C++ 开发人员终于能使用高效的跨 XPU 架构统一编程模型,来构建高性能的异构应用。

多年来英特尔始终支持开源生态和社区,并遵循开源的 SYCL 规范,提供了基于 SYCL 语法的 oneMKL、oneDPL 等数学库和其他开发增强库,这些开源的程序库也都可在英特尔的 GPU 上运行。

●          开源、开放模型,      ●

以技术实力赋能数字经济 

值得一提的是,oneAPI 和 SYCL 目前已经用于支持高性能计算场景。美国阿贡国家实验室的“极光” (Aurora) 超级计算机,将使用下一代英特尔® 至强® 可扩展处理器 (代号为“Sapphire Rapids”) 和下一代面向 HPC 和 AI 应用的英特尔数据中心 GPU (代号为“Ponte Vecchio”),可提供每秒超过两百亿亿次的双精度峰值计算性能。为了摆脱单一架构、单一供应商编程模型的锁定,“极光”使用 oneAPI 支持高性能计算、人工智能/机器学习和大数据分析工作负载,减少了维护单独代码库和多种编程语言的需要,从而实现了可移植且高效的科学计算,满足不同工具和工作流程的需求。

除了这两款令人期待的 XPU 产品,英特尔还在今年 2 月 17 日的年度投资者会议上披露了 XPU 产品蓝图的下一步规划,其中最吸引人的概念就是“一颗芯片本身也可以是 XPU”。为此,英特尔利用下一代封装、内存和 I/O 技术,计划在 2024 年推出代号为 Falcon Shores 的全新处理器架构,其将英特尔 x86 CPU 和 Xe GPU 硬件集成至同一颗芯片中,预计可提供 5 倍以上的每瓦性能和 5 倍于当前平台的内存容量,为计算大型数据集和训练巨大 AI 模型的系统提供显著的性能和效率提升。

VPX总线互联架构 什么是vpx架构_开发人员_02

刘蕴老师最后分享了一个令人振奋的消息:最新发布的 TensorFlow 2.9 版本,已经内置了 oneAPI 中的 oneDNN 接口,可以充分使用英特尔® 至强® 可扩展处理器内置的向量化加速能力,用户无需修改应用代码,就能在英特尔® 至强® 可扩展平台上大幅提升 AI 应用,特别是深度神经网络的应用性能。

总的来说,英特尔所做的一切努力,都是为了从技术能力输出,到行业实践落地,来提供通用、开放且基于行业高标准的编程模型,释放底层硬件性能的同时降低软件开发和维护成本。

“至强研究所”思享会的活动,也正是要用具体的技术能力和各行业的实践经验为开发人员赋能,从而推进数字经济时代的创新。如果希望了解更多的技术和经验分享,欢迎关注“至强研究所”思享会。

“至强研究所”思享会

英特尔高性能计算精英群社群活动,每月邀请英特尔专家与合作伙伴专家举办线上的小型分享会,分享热点话题内容,并与群成员进行答疑互动。

6月,我们邀请到英特尔公司高性能计算解决方案架构师刘蕴老师,为我们分享《XPU编程模型初探》。