ZKX's LAB

从 CPU 到 XPU 英特尔如何借助 oneAPI 破框?

2020-12-19新闻55

集微网报道,按照计算方式的不同,计算芯片类型可以分为SVMS四大板块,分别是标量(Scalar)、矢量(Vector)、矩阵(Matrix)、空间(Spatial)。四大类型计算芯片切割了整个计算芯片市场,标量计算由CPU负责,矢量计算由GPU负责,矩阵计算则依靠ASIC,空间计算使用的是FPGA,四个板块在很长一段时间中相互隔阂,能同时掌握两个板块以上的开发人员凤毛麟角,开发出一套具备人脸图像分析加深度学习的硬件平台,通常需要颇具规模的工程师团队协同工作。

类似物理学家们的终极目标是追求大一统定律,计算芯片的厂商们也在不断试探能够一家横跨四大计算芯片类型,提供完整的跨架构计算解决方案,实现异构多核处理器的梦想。这使得整个业界TOP10厂商会不断向下整合,收购其他芯片厂商弥补自缺失。近期最著名的例子包括NVIDIA意向收购ARM,AMD意向收购赛灵思。

但收购、融合的过程注定曲折,能够率先登顶,完成所有计算芯片类型整合的厂商才能算是业内的顶级玩家。在完成对FPGA厂商Altera收购之后,英特尔马不停蹄提出了奥德赛计划,在时隔二十多年后将真正意义上的独立显卡产品,重新提上议程,并催生了Xe系列架构。

如果说英特尔只是希望进入斗争早已进入白热化的NVIDIA、AMD独立GPU市场,未免有些肤浅。事实上,Xe架构填补了英特尔自己在矢量计算上的空缺,至此,英特尔拿下了异构计算最后一块重要拼图,即完成了标量(CPU)、矢量(GPU)、矩阵(ASIC)、空间(FPGA)四大计算类型的芯片全覆盖。

全覆盖不意味着大一统,英特尔的理想是一位开发者,通过一个入口,在一个平台上,解决CPU、GPU、ASIC、FPGA的全方位问题。如果放在三年前,人们会认为这样的想法十分大胆且异想天开。但随着2019年11月oneAPI软件行业计划推出,oneAPIbeta产品落地,包括编译器、编程库、分析器在内的全套开发工具统一打包,横跨四大类型计算芯片的梦想变成了现实。

至此,英特尔完成了CPU转向XPU的第一步,一家公司横跨CPU、GPU、AICS、FPGA,并通过一个平台调配和掌控,即XPUoneAPI超异构计算概念成型,再次划定了业界新的标杆。

而就在最近,英特尔再次召开了XPU和软件发布会,将XPUoneAPI概念落地的产品往前推进一步,不仅宣布今年12月份正式交付oneAPIGold版本,还推出了英特尔服务器GPU。如此高速的产品迭代让人有些应接不暇,新软件和产品会带来什么样的变化?

oneAPIGold:平台统一再进一步

oneAPIGold是oneAPIBeta产品的升级版本,也就是oneAPI1.0,可以看成连接英特尔旗下CPU、GPU、ASIC、FPGA真正的软件平台钥匙。响应了oneAPI软件行业计划发布之初那句响亮的口号,"Notransistorleftbehind(不落下任何一个晶体管)"。

oneAPIGold实现软件平台统一的主要形式在于统一的软件堆栈。简单的说,擅长高级语言的程序员可以在不考虑硬件是什么状态的情况下,完成他们的工作。同时,负责底层硬件优化的开发者,也可以在oneAPIGold中找到自己的工具。同时,英特尔还表示会将IntelParallelStudioXE和intelSystemStudio工具套件迁移到oneAPIGold产品中。

这意味着oneAPIGold所有内容都将围绕堆栈实现,位于堆栈底部的是硬件,不断往上是不同的功能区域划分,包括调度程序管理、通讯、设备和内存管理、跟踪、调试工具等等。

在编程语言上,oneAPI的核心是直接编程工具C(DataParallelC,即DPC)编程语言来表达。关于直接编程工具C编程语言的概述是:DPC是一种其允许开发者使用一个源代码文档CPU、GPU、FPGA和其他硬件加速器进行编码。它是一种开放的,跨行业的编程语言。事实上DPC是C扩展,并增加了SYCL的支持,从而可以支持跨CPU和加速器上的数据并行和异构编程,简化编程以及提高代码在不同硬件上的可重用性,同时能根据不同的加速器进行调优。

虽然有着很低的入门门槛,但仍然不是每个人都希望根据新规范重新编写代码。为此英特尔还准备了支持OpenMP编译器,可以与标准的C、Python、mxnet、sklearn、NumPy、XGBoost相兼容,与现有代码保持连续性,这也是众多公司和机构能够第一时间支持DPC的原因之一。

同时oneAPIGold还拥有一套很强的迁移工具,英特尔希望通过强大的兼容性包容更多的XPU,甚至包括NVIDIACUDA。听起来是不是很熟悉?早在2015年,AMD曾经就尝试打造一套异构计算可移植界面HIP,让AMDGPU能够从盛行的CUDA编译环境中移植代码,并且开发了一套工具集HIPifyTools,可以自动将CUDA代码转换成HIP代码。

对于英特尔oneAPIGold而言,CUDA代码移植只不过是oneAPIGold中GPU移植的一小部分。早年从NVIDIACUDA编译环境向AMD移植代码,意味着需要解决宽向量机编代码转移到窄向量机上的问题。由于英特尔Xe架构的优越性,支持可变矢量宽度,CUDA代码可以更顺利的移植到Xe系列GPU中。

换而言之,oneAPIGold平台事实上是由软件和硬件互补相成。Xe架构的优越性为软件移植带来了便利,软件层面的大统一,则可以让英特尔实现异构多核处理器的统筹。特别对于Xe架构这样的新晋GPU而言,如果希望在HPC中占有一席之地,从CUDA高效进行代码移植就是一条很不错的捷径。

oneAPIGold更厉害的地方在于,它并非限于本地。在发布之初就获得了英特尔DevCloud云端平台的加持。特别对于单一开发人员而言,他可能不需要准备任何本地配置以及软件安装,通过云端,就能获得尽可能多的硬件支持,方便开发者从中找到自己感兴趣的解决方案。

重点是,oneAPIGold版在12月份会同时提供本地安装包和DevCloud平台提供的免费线上版本,当然,也可以花钱购买提供英特尔技术咨询工程师全球支持的商业版本。

在DevCloud扩展后,开发者还能透过平台实现对XeGPU硬件的测试、工作负载。同样,已经在部分产品中开卖的英特尔锐炬XeMAX图形显卡也在可调式范围内,Xe-LP可供特定的开发者使用。

我们也能看到,oneAPIGold从定位上就有着很高的目标。它是一个统一且简化的编程模型,不仅要简化跨多架构的开发过程,生产没有或可忽略性能损失的直接目标代码。同时,oneAPI计划又是基于行业标准和开放规范,支持广泛的行业生态系统采纳该技术来推动应用开发领域的新演进。

目前为止,微软Azure、谷歌TensorFlow,以及众多机构、公司和大学均已宣布支持oneAPI。例如,伊利诺伊大学贝克曼高级科学技术研究所宣布,将建立一个新的oneAPI卓越中心(CoE)。他们正在通过oneAPI的编程模型将生命科学应用程序NAMD扩展到其他计算环境。而NAMD不仅能够模拟大型生物分子系统,还被投入到尝试解决COVID-19的挑战中。

用显卡给服务器加速

GPU的大规模并行处理能力的优越表现,使得其更容易处理多线程并发任务。英特尔首次推出了基于Linux的英特尔服务器GPU。在一套典型双卡系统中,英特尔服务器GPU支持超过100个安卓云游戏并发用户,并且最高可以扩展至160个并发用户。

这意味着云端服务供应商可以在不改变服务器数量的前提下,通过单独扩展显卡容量,让每个系统支持更多更多流和订阅用户,并且同时实现较低的总体拥有成本(TCO)。

而对于玩家而言,获得的体验也更为明显。强悍的云端处理能力不会消耗过多手机的本地性能,通过游戏画面串流的形式就能让手机玩家从本地的30FPS游戏刷新率体验一下子升级到120FPS,获得质的飞跃,形成服务商和玩家双赢的效果。

开发人员可利用目前MediaSDK中的通用API,这一API也将于明年迁移到oneAPI视频处理库(oneVPL)当中。目前,英特尔正在与诸多软件和服务合作伙伴合作,共同将英特尔服务器GPU推向市场,其中包括Gamestream、腾讯和Ubitus。其中腾讯已经开始尝试利用双卡服务器生成包括《王者荣耀》在内的100个游戏实例。

有意思的是,英特尔服务器GPU与锐炬XeMAX独显一样基于Xe-LP架构,均会在今年内推出。在消费平台上,基于Xe-LP架构的锐炬XeMAX能够媲美MX350方案,并且已经与宏碁、华硕、戴尔等OEM厂商建立合作关系,开始向笔记本市场铺货。

在规格上,锐炬XeMAX可以看成TigerLake集成GPU的延伸,拥有96个EU,768个ALU,频率提升到了1650MHz。底层的DG1GPU包含两个相同的Xe-LP媒体编码块,提供128bit显存控制器,显存容量则由定位决定。例如英特尔服务器GPU的板载显存为8GBLPDDR4X-4266,消费版本板载显存则为4GB。

此外,XeMAX紧跟流行支持H.264、H.265以及最新的AV1编码。在10nmSuperFin工艺下芯片面积非常小,是目前其他厂商独立显卡芯片所无法比拟的,也因为如此,英特尔才能做到在新华三H3C3/4长、全高的x16PCIe3.0扩展卡内封装4个XeMAX。

Xe-LP架构的通用适配性使得无论是TigerLake的集成GPU,还是DG1独立GPU,亦或者由4个DG1聚合的SG1都采用同一套代码库支持。甚至扩展代码库还会支持诸如Linux等更为普遍的数据中心产品,英特尔对Linux驱动程序进行了优化,将重点放在操作系统之间的代码重用,并进一步关注Linux3D性能,目前提供了三个经过充分验证和集成的发行版堆栈。

与此同时,英特尔还宣布隐式SPMD程序编译器(ISPC)将在oneAPI的零级接口(LevelZero)上运行,LevelZero为XPU提供硬件抽象层的API的集合,由英特尔创建,提供了底层的直接到金属的接口,以供客户跨多种硬件平台进行编程。

结语:通过oneAPIXPU"化茧成蝶"

无论oneAPIGold,还是独立服务器GPU中的Xe系列架构,我们都可以从中看到英特尔为其定下了非常高的目标。仅仅在2019年第四季度推出的oneAPIBeta版本,就包含了针对高性能计算(HPC)、深度学习、IoT、以及视觉和视频等四种领域专用的开发工具包,并在一年时间内升级到oneAPIGold,加入商业服务支持,加入英特尔ParallelStudioXE和英特尔SystemStudio工具套件,在软件层面执行着自己的"摩尔定律"。

事实上,这家芯片大厂早已深耕开发者生态超过20年,全球雇佣软件工程师超过15000名,提供10000多项重要客户的软件部署,同时还是Linuxkernel最大的贡献者,每年处理的代码超过50万行,为100多个操作系统进行过优化,并且拥有超过两千万活跃开发者的生态,而这些都只是冰山一角。

Xe系列架构也并非高性能独立显卡那么简单,起手的产品定位一下子横跨四个领域,用于消费和低功耗的Xe-LP,数据中心的Xe-HP,针对游戏优化的Xe-HPG,乃至针对高性能计算集群、超级计算机的Xe-HPC。

不要忘了,Xe系列架构也仅仅是实现英特尔超异构计算概念的一块重要拼图,它并非全部。英特尔的真正目的是通过oneAPIXPU组成一套硬件、软件相互结合,同时也是包容开放的体系。oneAPI不仅提供一个通用、开放的编程环境,它也与多个标准制定组织以及行业、学术组织合作,寻求可实现互操作性与互换性的产品规范。

相比起一些自我圈地、自产自销软硬件的厂商,英特尔走的是完全不同的道路,他们在不断尝试利用自己的领导力和影响力,推动整个行业共同进步。因此oneAPI规范的DPC语言和库等都向公众开放,同时也鼓励其他硬件厂商加入其中,通过oneAPI实现硬件优化。

在利用oneAPI软件平台提升号召力的同时,XPU提供了强有力的硬件支持,来自于英特尔的CPU、GPU、AICS、FPGA亲自构建了完整软硬件生态体系的范本,相信这也是未来数十年其他芯片厂商标榜的方向。

毫无疑问,英特尔依然遵循技术理想驱动变革,利用技术、领导力和影响力持续推进oneAPIXPU超异构计算概念成型,实现软件和硬件的大统一。(校对/Andrew)

#英特尔#AI人工智能#amd

随机阅读

qrcode
访问手机版