APP下载

重回显卡市场,还是另有所图?英特尔Xe CPU架构初探

2020-04-14张平

微型计算机 2020年4期
关键词:英特尔矢量架构

张平

当英特尔在2018年宣布自己将研发高性能独立GPU时,人们不禁纷纷猜测,在高性能独立GPU市场.上屡次折戟的英特尔,这一次是否会真的成功?除此之外,英特尔重新研发高性能独立GPU是否还瞄准了其他的市场?在经过了一年多的等待后,英特尔在2020年的CES上公布了全新的Xe GPU,并且开始瞄准目标市场进行研究和推广。那么英特尔的Xe GPU究竟带来了哪些改变和新特性,又有哪些不同?

在2018年的最后一天,英特尔宣布了自己即将在2020年回归高性能独立GPU市场。而在2019年年底和今年初的CES上,英特尔又先后发布了不少的消息。其中,大部分的消息来源于英特尔和美国能源部签订的合同,即在阿贡国家实验室建造百亿亿级别超级计算机Aurora。美国能源部和阿贡国家实验室希望开发人员能够尽早地了解目关硬件信息,以便能够在超级计算机搭建完成后在尽可能短的时间内开始工作,并尽可能高效率地利用算力。因此,在超级计算机尚未完成之前,英特尔就必须公开一部分研发资料和硬件信息。

现在,英特尔公布了很多有关XeGPU的信息,比如其研发代号,PonteVecchio-即维琪奥桥,这座桥梁始建于1345年,是意大利佛罗伦萨最古老的桥梁。采用这个代号的原因是英特尔Xe项目的首席架构师Raja Koduri喜欢吃这座桥附近一家冰淇淋店的冰淇淋,因此就这么简单粗暴了。

“老玩家”的新任务——英特尔GPU研发历史

英特尔实际上是GPU业界的“老玩家”,并且是全球GPU市场占有率第一的企业。不过,英特尔这样的业绩往往来自于嵌入式和集成式图形计算解决方案。比如目前我们所熟知的“核芯显卡”,将GPU计算部分和CPU集成在一起并一起销售,大幅度提高了自已产品的市场占有率。

回顾历史,英特尔首次开发独立GPU的尝试是在1998年2月12日。这一天英特尔发布了旗下首款独立GPU产品——英特尔i740 AGP显卡。这款产品最主要的贡献在于推广了AGP接口。其实际效能和功能设置则表现一般,在各项测试中都落后于市场上竞争对手的方案,比如Voodo0 2以及英伟达的RIVA TNT。1999年8月,英特尔宣布i740彻底退市。

在i740彻底下市之前,英特尔还研发了i752和i754,不过前者发布后没多久就宣布撤回,后者甚至没有正式发布,性能方面i752相比i740提高得很有限。随后,英特尔宣布这两款GPU的内核将被直接用在.810和i815的芯片组中,成为集成显卡的核心。在2000年9月,英特尔最后一款在研的GPU架构Ca pitola也被宣布取消,英特尔首次GPU研发计划彻底终止。

英特尔第二次计划研发高性能独立GPU则是在2009年,这一年,英特尔宣布了新的Larrabee计划。Larrabee的本质是基于x86架构的图形处理器,英特尔试图使用和英特尔CPU相同代码路径的宽矢量引擎来打造一款拥有高端图形性能的GPU产品,并且这款产品还可以在标准CPU代码中进行编程处理。在发布后不久,Larrabee就进行了一些图形演示。不过在2010年英特尔又宣布这款产品最终不会用于民用图形市场,而是进入了高性能计算市场。开发人员发现,英特尔Larrabee的产品可以很好地执行5组512位宽的矢量计算,这最终带来了AVX-512指令集,这个指令集目前存在并将持续存在于英特尔的至强可扩展系列高性能处理器、部分消费级处理器中。Larrabee随后被赋予了一个产品名,那就是“XeonPhi”。Xeon Phi在大量的超级计算机中出现,还拿下了不少大奖。不过XeonPhi只持续了几代,最后一代“KnightsHill”并未实际部署就结束了整个系列的寿命。

英特尔可能在很早之前就已经放弃了Larrabee或者类似的产品进入普通民用图形市场。在Larrabee之后,英特尔的研发层进行了一些调整,高管们又重新拾起了对传统类型GPU的兴趣,并再次决定进入高性能独立GPU市场。新的项目大约在三年前启动,但是英特尔的官方消息和正式宣布日期应该是始于英特尔在2017年12月聘请AMD首席图形设计师Raja Koduri以及著名的SoC专家Jim Keller。Raja Koduri本身的资历极其深厚,他先后在AMD和苹果拥有超过20年的图形解决方案经验,因此英特尔授予其首席架构师的职位,这也显示了英特尔对新的高性能独立GPU项目的重视程度。

从2017年12月开始到现在,英特尔都在努力加强自己在GPU研发上的实力。在此期间,英特尔也动用大量手段从竞争对手AMD以及其他厂商那里广泛挖人,仅仅AMD跳转英特尔的高级人才就包括AMD营销总监ChrisHook、AMD显卡技术市场总监DamienTriolet、AMD显卡高级市场总监DarrenMcPhee、AMD视觉技术副总裁/多伦多地区副总裁Ari Rauch等人,尤其是Ari Rauch還帮助英特尔建立了新的营销数据和分析师团队。

终于,英特尔在2018年12月的架构日上披露,全新的GPU家族即将到来。英特尔将提供一个全新的图形解决方案,从上到下覆盖所有市场,不论是低功耗还是高性能平台,甚至连集成显卡也不会遗漏。当时英特尔表示主要有2个GPU微架构,全部基于Xe体系结构建立。Xe的意思是“每个人的eXascale(百亿亿级)”,英特尔希望高效能和高效率的新架构能够满足任何市场。

现在,英特尔进一步披露了全新架构的消息,绝大部分内容来自于英特尔、美国能源部和阿贡国家实验室,大量的产品内容和技术消息是面向HPC也就是高性能计算的。虽然迄今为止还是不清楚英特尔在民用级别的GPU上打算如何做,但是我们可以根据现有的消息管中窥豹,对英特尔新的Xe架构和未来的GPU计划进行一个预览。

英特尔的百亿亿次计划

在介绍有关Xe产品的相关架构之前,有一个疑惑需要进一步阐述。阐述清楚这个问题,有助于更加深入地认识英特尔为什么执着于GPU这一类超大规模并行计算架构,而不是持续加强CPU或者其他什么产品。

英特尔在之前就表示,人们对更快、更节能的计算设备拥有“永不满足”的需求。不仅如此,现有计算规模还需要进一步扩大,下一个目标是达到百亿亿级别,也就是10的18次方级别,也被称作Exascale Flops或者E级超算。相比之下,目前人类掌握的最强大的超级计算机的计算能力大概是Petaflops,也就是10的15次方级别,千万亿次,被称为P级超算,和E级超算差了三个数量级。目前超算排行榜第一的IBM Summit,计算能力大概为148 Petaflops,离E级超算还有大约10倍的差距。英特尔将2020年以及以后定义为“百亿亿次”时代,并且宣称这个时代,没有任何计算能力可以满足前沿研究计算的需求。

更重要的是,英特尔指出,目前市场上已连接设备的数量还在快速增加。几年前,分析师预测2020年到2023年大概有500亿的IoT设备(50B),英特尔在演讲中表示,到2020年代中期以及以后,将有超过1000亿个设备需要某种形式的智能计算。无论是训练端还是推理端,实现AI计算都意味着性能和计算将无处不在,这种计算将超越网络、超越移动设备、超越云端。这种庞大的计算市场规模,是英特尔对未来的一种愿景和期望。

为了进一步实现这种远景,英特尔将计算分为四个特定的类别,分别是标量、矢量、矩阵和空间。标量计算是绝大部分系统运行的日常标准计算,向量计算正在转向并行指令计算。矩阵计算或者张量计算是当前的热门话题,张量内核和AI芯片之类的产品都可以优化矩阵吞吐量。空间计算则由FPGA完成,这也是FPGA'市场延伸出来、一种非常复杂的稀疏计算(一般是指针对稀疏矩阵的计算,所谓稀疏矩阵,是指矩阵中数值为O的元素数目远远多于非O元素的数目,并且非O元素分布没有规律的一种矩阵类型,与之相反还有周密矩阵。稀疏矩阵被广泛使用在诸如流体力学、统计物理、电路模拟以及图像处理、纳米材料等计算中)。对于这种计算,FPGA可以使用其非标计算引擎进行优化,然后加速解决。显然,英特尔的目标是覆盖所有的计算场合,包括标量CPU、矢量GPU、矩阵AI以及空间FPGA。

CPU可以执行任何类型的计算,唯一的问题在于效率,无论是计算效率还是电源效率。比如CPU转移到FPGA时,硬件上越来越专业化,但是自由度大幅度降低。此外,诸如GPU、AI和FPGA这样的产品,其软硬件的专业化和更高的使用难度提高了用户的门槛。这意味着较高的使用成本和学习成本。鉴于此,英特尔对不同的计算推出了oneAPI计划,后文还有进一步的介绍。

聚焦到Xe上,英特尔宣称Xe架构将是所有GPU硬件的基础。Xe对当前图形架构进行了全新设计,并吸收了之前英特尔在Larrabee、Atom、酷睿甚至安腾系列产品中掌握的经验。英特尔之前已经宣布自己拿到了全新的Xe芯片硅片,并进行了诸如电源循环和基本功能测试。

有关Xe的性能,英特尔在一张幻灯片中展示了其雄心勃勃的计划:单个服务器计算节点的性能。2021年在Xe架构的辅助下,将是2019年传统节点的500倍。值得注意的是,英特尔在这里并没有指出相关的对比参数。考虑到英特尔在数据对比中,可能使用2019年单个6核心的Xeon Bronze,以标量模式运行矢量代码,并对比2021年具有六个Xe GPU优化的双路处理器系统,因此結果存在很大的不确定性。

Xe系列产品概述

在HPC DevCon公开Xe相关信息之前,英特尔曾表示,旗下Xe产品即Xe架构,将从集成显卡—直延伸至中端图形市场、企业级图形市场以及数据中心、AI加速、虚拟化等现在所有的主流应用场景和功能。在入门级市场也就是Xe-LP,其用户期望性能大约能够达到TeraFLOPS,在企业级市场也就是Xe-HP,这个性能会提升至PetaFLOPS,所有的用户所对应的产品都会分布在这个性能差距为1000倍的区间之内。

之前英特尔宣称在整个范围内会有两个版本的Xe产品,不过新的消息显示,Xe将有第三款产品出现,并且其名称似乎指出了相关的定位和差异性。

在入门级产品中,英特尔将使用Xe-LP核心,LP表示Low Power也就是低功耗。这个核心将覆盖所有的集成图形解决方案。英特尔宣称Xe-LP产品的功耗定位为20W,但是这个设计是可扩展的,最多可以扩展至50W,不过在这个功耗下能耗效率会有所降低,目前暂时没有推出50W Xe-LP产品的计划。通过这种方式,英特尔有可能在传统45W的高性能移动处理器中使用Xe-LP架构,并且可能出现在SoC形式的台式机处理器中。这样一来,Xe-LP的主要设计目标就是移动和集成核芯显卡,并且不太可能以独立显卡的方式提供。

对于中端用户、发烧友或者数据中心,英特尔拿出的是Xe-HP核心,HP是High Performance的意思。这个版本的核心将是英特尔独立显卡的基础,能够支持50W-250W或者更高功率的产品。考虑到独立显卡的重要性,英特尔不得不为这类产品提供全面的软硬件支持,包括Day-0驱动等产品。目前英特尔尚未公布有关Xe-HP核心的消息,但是据估计英特尔应该在2020年某个时候宣布这个产品线的具体信息。

第三个也就是之前未公开的一个全新的产品系列:Xe-HPC,HPC是高性能计算的意思。Xe-HPC将作为Xe-LP和Xe-HP的变体,将重点放在提高原始吞吐量上,这也是高性能计算最关注的点。Xe-HPC可以从Xe-LP的最高层—直扩展至整个Xe-HP,甚至超越Xe-HP。由于使用Xe-HPC的超级计算机部署会比普通的PC或者服务器拥有更好的适配,能容纳高功耗产品,因此Xe-HPC的相关功耗设定可能会高达400W甚至更高,实际上现在已经有TDP高达500W的PCle产品出现了因此这—点是完全可行的。

Ke系列架构概述

每一个GPU设计基本上都是建立在其矢量宽度上,GPU在本质上可以看作一个矢量处理机器,因此必须能够提供超宽矢量的高效率计算,同时也允许微小矢量并行处理。矢量宽度的一个重要决定性因素就是图形计算本身:处理器被要求在正确的时间内使用矢量计算一定数量的像素,处理来自内存中不同位置的数据,甚至处理不同内核提交的不同数据集。

矢量宽度还定义了很多软件和相应的优化。作为公开内容的一部分,英特尔称经过研究后发现,试图把一个较大矢量宽度构建的代码转换较小的矢量宽度,实际上极为困难。因此Xe架构在矢量宽度上选择了可变矢量宽度的模式。

Xe架构包含了两个基本单位,SIMT和SIMD。本质上SIMD也就是单指令多数据类似于CPU,可以在具有多个数据源的单个元素上执行。而SIMT也就是单指令多线程涉及到在数据块上使用相同的指令,并作为整个“矢量”处理的一部分。在实际操作中,可以按照正确的顺序使用多个SIMT和SIMD模块构建Xe架构,以精确处理不同细分市场的工作任务,也就是所谓的“乐高”风格——搭建符合需求的积木模块。

英特尔表示,和SIMT和SIMD-样,新架构中的每一个部分都可以协同工作以实现最高性能的模式。如果可能的话,这听起来似乎像是将潜在的SIMT命令扩展至SIMD单元上。英特尔同时也表示,每个单元的设计都是可扩展的(为了达到万亿级)。在这种情况下,英特尔非常热衷于在HPC市场推广Xe架构,因为这种架构的SIMT和SIMD单元可以轻松扩展至数干个以上,带来强大的并行计算能力。

英特尔展示了一个Xe的扩展网络。在这个扩展网络中,Xe被扩展至8x8网格,点扩展则为14xll网格。英特尔似乎想展示Xe的自由扩展特性,但是没有更多的说明。英特尔内部模拟显示,SIMD和SIMT的组合将在某些方面提供帮助:一些例子将只使用SIMT单位,因为这些标准的SIMT代码没有得到任何加速,比如双调排序、月光光线追踪以及矩阵乘法(一个巨大的矩阵乘法案例)。其他代码则可以使用SIMD和SIMT组合来提高性能,比如矩阵转置、Nbody、光线追踪以及提升最明显的FastWalsh等。

该图表明,英特尔Xe的架构对于完全针对SIMT优化的代码不需要额外的SIMD进行优化,并且后者将保持空闲状态。对于某些依赖串行工作的代码比如Nbody代码,或者对于以不同方式编程的光线追踪器,当内核需要执行某些串行工作时,可以将这些线程转移至硬件的SIM D/CPU部分进行继续执行,并且不需要返回CPU-这对很多代码加速非常重要。但是对于那些已经针对矢量计算进行充分优化的加速代码而言,SIMD单元的存在仅仅意味着浪费晶体管,这是非常重要的。

Xe-HPC的执行单元设计:惊鸿一瞥

英特尔展示了一部分Xe单元的内部设计,但是没有给出太多说明和解释。需要指出的是,英特尔给出的幻灯片是Xe-HPC的单元,这意味着Xe-LP和Xe-HP架构可能和其极为相似,但是功能权重完全不同。英特尔同样没有说明给出的信息是SIMD还是SIMT,但是根据幻灯片的情况来观察,可能是SIMT单元。

熟悉架构图的读者看到这样的图片,可能会觉得眼熟。实际上Xe-HPC展示的信息类似于之前英特尔Gen架构的升级版本。之前Gen架构基于7路管道方案,每个EU具有7个线程。在Xe上,英特尔将每个EU升级到了8个管道,每个周期能够并行处理8个线程,这一点在图中显示得很清楚,当然前提是英特尔给出的架构图是真实的。

对于Xe架构的EU单元内部结构,英特尔没有给出任何信息,因此目前還不清楚英特尔对EU内部做出了如何的改进,每个不同的区块都能执行怎样的计算。一些业内人士猜测,EU单元内部还是有一些特殊功能模块,比如为AES指令或者内存加载、存储端口、本地缓存等功能设计的独立模块等。

另外一个出现在Xe-HPC上非常重要的改进就是双精度计算了,尤其是在高性能计算领域。对高性能计算用户而言,双精度目前已经变得越来越重要。早期当GPU编程和CUDA到来的时候,科研人员开始大规模使用FP32,也就是单精度浮点。对当时的大部分应用来说,单精度浮点速度快且能够提供比较高的计算精度,是足够的。不过随着计算任务的变化,一些模拟类和科学计算类任务需要更高的精度才能更好地拟合或者实现结果时,单精度就不够用了,需要及时切换到双精度也就是FP64。不过,双精度带来了更大的计算负荷,包括寄存器、缓存方面都存在更大的压力。

英伟达对这个事情的解决方案是同时提供单精度和双精度计算能力,但是后者将由额外的双精度计算单元加强,两者的计算能力比值为1:1或者1:2,后期也有1:3,当然这样的比值—般只针对计算卡和专业用户。对民用用户而言,英伟达的产品往往会删除掉双精度计算单元,从而只提供1:32的双精度:单精度计算能力比值。一般而言,这样的做法是鼓励对成本比较敏感的学生使用高性能技术的市场策略。如果真的需要高成本的双精度进行生产力计算,那么这些用户终将会考虑购买更高端的产品。

长期以来,FP64-直在计算方面占据统治地位,带来了高精度计算市场的繁荣。不过随后AI计算的兴起,又使得低精度计算市场进一步发展壮大。AI计算更偏向于吞吐量,并且广泛使用INT8、FP16这样的低精度进行训练计算。因此,现在有两个方面的市场需要照顾:—方面是高精度、用于模拟器的FP64,使用场合是石油、天然气、地质学、天气动态、财务分析等;另一方面是低精度,AI训练主要使用BF16和FP16,AI推理则更为简单,INT8和FP16都能很好地完成任务。

对于双精度计算,英特尔宣称Xe-HPC相比之前的产品能够带来40倍的性能提升,不过,英特尔没有说明是和谁相比,如果和Gen架构相比的话,那么这可能只是宣传上的用语而已。

Xe-HP和Xe-LP规格概述:全面覆盖

在民用级别GPU,也就是Xe-HP和Xe-LP的搭建上,很大一部分内容和Xe-HPC的模块相同,但是面对民用和图形计算用户,又需要专门的优化。 和Xe-HPC-样,在Xe-HP和Xe-LP上,一个EU内部依旧有8个计算管道,也可以被称为8个计算单元。现有资料显示,英特尔将16个EU单元组成子片块(sub-slice),一个子片块内拥有128个计算单元。接下来,6个或者4个子片块将会进一步结合成一个片块( Slice)。片块是Xe GPU的最小可工作完整单位,根据子片块的个数不同,单个片块中拥有768个(6个子片块)或者512个(4个子片块)计算单元。一个Xe-LP核心可能只拥有一个容纳了6个子片块的片块,总计768个计算单元。对于Xe-HP核心而言,英特尔展示的样品拥有4个片块,每个片块包含4个子片块,256个EU单元和总计2048个计算单元。

同时英特尔意外泄露的消息也证实了以上的推测,定位入门级的GPU DG1拥有6个子片块,因此其大概拥有96个EU单元和768个计算单元。此外,前文所说到的Xe-HPC产品中的一个型号规格也被泄露了出来,它拥有2个较小的片块,每个片块内部有4个子片块,因此其总计有128个EU单元和1024个计算单元。

除了上述内容外,英特尔还给出了3款DG2产品的型号,分别是DG2H P128、DG2HP256和DG2HP512。女口果后三位数表示EU单元的数量的话,那么这三款GPU分别有1024、2560和4096个计算单元。这和英特尔之前宣称将挑战600美元以上的GPU市场,以及成为印度人设计的最大GPU言论相符合。

不过也有一些证据显示,英特尔还将推出具有3个片块的产品,计算单元数量为1536。考虑到良率和市场区分等原因,可以合理推测出英特尔可能通过屏蔽不同的片块来实现产品档次的划分或者良率的提升,这一点也正是英伟达和AMD在中高端GPU上常用的手段。因此英特尔通过屏蔽1个、2个或者3个片块,能够划分出拥有2个到8个不同片块的GPU产品。

另外在功能方面,英特尔之前的—篇公告宣布,英特尔Xe架构路线图将包含对英特尔渲染框架API和光线追踪硬件加速的支持。英特尔没有给出更多细节。但是硬件加速则说明英特尔可能会在Xe架构中加入光线追踪相关的单元。不过英特尔的另外—篇博文也指出,英特尔在光线追踪方面更倾向于“整体解决”,也就是同时使用CPU和GPU来完成计算。因此,虽然GPU有可能成为英特尔提高光线追踪效能的主要手段,但是英特尔也不放弃采用传统CPU来完成一部分光线追踪任务。考虑到英特尔依1日是GPU产业界的新手,因此这样的选择无疑是正确的。

Xe M F:全新具有RAMBO CACHE的可扩展存储结构

目前英特尔在Xe架构的计算规模扩充上显得特别卖力,甚至可以扩充至超过1000个EU单元。不过如果没有一个很好的方法将数据移出或者移入计算核心,那么英特尔这所有的设计就没有意义。在这一点上,英特尔宣布已经设计了全新的存储结构,被称为Xe MF。请注意,这里的存储结构描述的是Xe-HPC版本,和未来民用的GPU版本可能存在很大差异。

根据英特尔资料,Xe MF有下列特点:首先,Xe MF和每个Xe-HPC计算单元有三个连接,和HBM通道只有1个连接。带宽上形成了3:1的态势,这可能是硅片外部数据传输的限制所致。其次,每个Xe-HPC的计算模块可以直连且存在三个连接通道,不过,Xe-HPC的计算模块只能和最近的2个计算模块通讯。当然,在图中可能为了简化省去了不少信息。

第三:与此类似,每个HBM通道可以和相邻的两个HBM通道进行连接,无需经过中间交换设备,如果这一切可能的话,那么这将是一个全新的设计方案。除了上述三点外,英特尔在Xe MF中最为独特的一点是加入了一个名为RAMBO的缓存。RAMBO缓存的作用是为Xe的计算模块提供大量的缓存空间,以供调用和存储数据以备不时之需。英特尔还给出了一张图片展示RAMBO缓存的作用,图中数据显示,RAMBO到计算模块的带宽比缓存到HBM的缓存部分大約有3:1的改进,因此RAMBO缓存的重要用途在于为计算模块提供更高的数据存取速度。英特尔的资料暗示RAMBO缓存在Xe MF芯片内部,但是另—方面英特尔又说Foveros技术可以用于RAMBO缓存,因此可能这个缓存分布在整个GPU中,为所有部分都提供数据缓冲服务。

为了展示Xe MF的性能优势,英特尔还给出了一个FP64矩阵的例子,但是没有说明是数据传输还是计算。在没有RAMBO缓存的情况下,8x8的矩阵可以在峰值速度下计算,随后可能会在64x64或者256x256矩阵后性能开始下降,直到4096x4096矩阵计算,瓶颈全部转移至数据存取部分。英特尔宣称,RAMBO介入后,即使在4096x4096矩阵计算的强度下,峰值性能(不青楚是传输还是计算)和8x8是—样的,这有利于大量的仿真计算。

维琪奥桥:从架构到实现

经过上文对Xe-HPC架构的概述和解读,接下来本文将进入具体的产品实践部分。英特尔首个Xe-HPC架构下的产品代号为Ponte Vecchio(简称为“PVC”),前文已经有过介绍。

根据英特尔给出的展示图来看,PVC和之前我们看到过的任何一款GPU都是不同的。PVC实际上包含了2个部分,每个部分有8个小型计算芯片,多个Xe MF芯片和HBM显存。在进一步介绍PVC的相关技术之前,我们先了解—下英特尔在多芯片封装、堆叠技术方面的进展。

目前的消息显示,EMIB和Foveros技术都将使用在英特尔全新的GPU上,当然,这两个技术成本目前是比较高昂的。因此它可能会被最先使用在Xe-HPC这样面向高端市场的产品中,PVC是第一个同时使用这两个技术的产品。值得注意的是,EMIB技术和Foveros技术并不只是在GPU等产品上使用,英特尔计划将其扩展至CPU、FPGA、AI以及其他所有的设备之中。

在完整的PVC产品示意图上,它拥有16个Xe-HPC小芯片和8个Xe MF芯片,这些芯片被分为2组,每组8个Xe-HPC芯片和4和Xe MF芯片,每—组都可以访问4个HBM堆栈,每个HBM堆栈都通过EMIB和10芯片连接。

从英特尔的官方幻灯片中可以看到,似乎8个Xe-HPC小芯片和4个Xe MF芯片被作为一个独立完整的封装进行工作,并且下方实现了完整的BGA连接。实际上下方的中间层上还有一些芯片存在,并且也获得了EMIB技术连接。此外,HBM和10芯片都被放置在底层进行封装。这意味着,英特尔在GPU部分就拥有三层封装,如果每个Xe-HPC小芯片也是堆叠的话,那么总计会有四层封装。

在本文中,我们认为每个Xe-HPC小芯片都是堆叠的,采用了Foveros技术。现在的问题在于英特尔将什么芯片堆叠在了一起?一种猜测是10和计算芯片,另一种猜测是将像Lakefield那样的多个计算芯片进行了堆叠。有一种不太合理的结论是,计算芯片和缓存堆叠在一起。但是需要特别注意的是,GPU倾向于在计算芯片边上放置本地缓存,鉴于此也有人估计是两个计算芯片进行堆叠,一种可能是SIMD,另一种是SIMT,当然,如果两者相同并且采用模块化设计的话,那么制造起来就容易很多。

此外,英特尔还在Xe-HPC的基板上放置了不少金属垫片,这种垫片可以帮助不同的芯片矫正高度,这也是堆叠和多封装所需要的必要技术。在芯片尺寸方面,目前看起来Xe-HPC小芯片f以乎比Xe MF芯片要小一些,可能后者包含了高速缓存,或者说这两款芯片的制造工艺节点完全不同。在功能方面,PVC支持所有内存和缓存的ECC和奇偶校验,还纳入了Xeon级别的RAS功能和被称为“现场修复(in-field repair)”的功能。

OneAPl:英特尔的软件解决方案

在硬件设计完成后,软件环境就显得特别重要了。英特尔指出,在新的oneAPI计划实施之前,英特尔整个公司内部拥有200多个软件开发项目。oneAPI的用处在于能够将这200多个不同角度、不同用途的软件开发项目放在一个API中,并为开发人员提供一个单一的入口点,使得开发人员可以自由访问CPU、GPU、FPGA和AI计算。

oneAPI有一個口号,叫做“notransistor left behind”,直译是“没有晶体管被忽视”,也就是“每个晶体管都有用”。实际上,oneAPI仅仅对英特尔的硬件有效,对其他厂商的产品没有太多用处,因此此处应该改为“no inteltransistor left behind”。

对英特尔这样庞大的公司来说,单个入口点无法面对所有开发人员的工作。英特尔也知道这一点。因此oneAPI的意义在于统一软件堆栈,这样使用高级语言的程序员就可以在不考虑硬件的情况下做自己喜欢做的事情,而想要在最低级别对特定硬件进行微优化,使用低级语言的程序员也可以做到这一点。

oneAPI给出了新的架构介绍。oneAPI所有的内容都将通过oneAPI堆栈进行驱动,堆栈的底层是硬件,顶部是工作负载。英特尔将在这五个领域内解决软件开发的问题。在系统编程部分,英特尔展示了调度程序管理、对等通信、设备和内存管理、跟踪和调试工具等内容。

对于编程语言而言,英特尔依赖于分布式并行C++标准或者DPC++,后者是C++和SYCL的组合,由英特尔负责维护。英特尔还计划构建具有OpenMP编译器的Fortran和具有OpenMP编译器的C++,以及也可以和oneAPI其余部分一起使用的Python分发网络。在库文件方面,英特尔也准备好让那些非常受欢迎的工作负载加入库,类似的还有英特尔Math Kernel Library(MKL)库或MPI库。

另外,英特尔要面对的一大问题就是迁移工具。英特尔希望有工具能够将支持CUDA的程序转为支持英特尔硬件,之前Raja Koduri在AMD的HIP产品上已经尝试可以做到这一点。HIP工具在某些情况下表现很出色,但是在绝大部分情况下还需要手动调整代码使得部分CUDA代码能够在AMD硬件上运行。Raja表示,在CUDA向AMD转移时,问题在于遇到的是在宽矢量机制下编写的代码转移至窄矢量机制,但是在Xe上并不存在这一点,因为英特尔采用了可变矢量宽度,因此oneAPI遇到的问题可能比较少。

首个Xe-HPC架构的超算——Aurora

前文我们也提到了美国能源部和阿贡国家实验室的Aurora超算,这台超算预计2021年交付。不过之前这台超算预计是2020年交付,围绕英特尔的Xeon Phi平台构建。虽然后来英特尔停止了Xeon Phi产品线,但是又带来了Xe,因此目前英特尔宣称Aurora将由Xeon和Xe-HPC联合组建。

Aurora超算的每个节点将由2个Xeon处理器和6个Xe-HPC GPU组成。由于发布时间还比较早,因此Aurora超算的处理器采用的是代号为SapphireRapids的全新Xeon处理器。SapphireRapids处理器将使用lOnm工艺制造,具有8个内存通道,可能支持DDR5和PCle 5.0,是英特尔首款支持全新CXL标准的企业级CPU。

在GPU上,英特尔拿出的是PVC,从产品图上来看,这些专门为超算定制的GPU显然不会使用PCle接口,可能是OAM或者SXM2,或者当时更新的标准。每个GPU都可以通过CXL直接相互通讯。英特尔给出了一颗命名为XeLink的全新芯片,这颗芯片将管理6个GPU之间的通讯,另外还可以实现统一的内存管理,Xe Link也基于CXL技术实现。英特尔在预告超算的架构的同时,也顺便宣布PVC将采用全新的7nm工艺制造。

Aurora的每个节点将包括8个结构端点,大概有200个机架,总计10PB的内存和230PB的存储空间。从这些数据推测的话,整个Aurora大概只使用5000个新的Xeon处理器和15000个PVC GPU产品。如果Aurora确实是百亿亿级别的产品,考虑到CPU提供的计算性能很有限,因此假设忽视CPU的算力,只利用GPU进行计算的话,百亿亿次计算能力除以15000个GPU,这样每个GPU的平均计算性能将在66.6TFLOPS左右。相比之下,英伟达目前最接近的图灵架构大概最多能提供14TFLOPS的FP32计算能力,因此英特尔要做的是在2021年到2022年将GPU的计算能力提高至现有产品的5倍。当然对超算来说,功耗暂时可以被放在一边。更悲观一些的算法是,由于采用了4U机架,因此只能放置7500个GPU,所以单个GPU的计算能力需要达到135TFLOPS,大约是现在处理器的10倍,难度就更大了。

目标:覆盖所有计算市场

从性能来看,合理的推测是英特尔在2021年底到2022年初将获得现有顶级GPU 5倍计算性能的产品,其余的一些细节包括总线、扩展性、单个芯片实现方式以及软件等方面,本文都做出了一定的解释。不过目前Xe尚未发布,大量资料尚未解密,因此本文的内容可能和实际产品存在较大差异甚至错误,建议大家以实际产品和本刊后续介绍的内容为主。

回顾了英特尔的过去、了解了英特尔在计算上的野心和具体的产品情况,目前英特尔在Xe和相关产品上想做什么就很明确了。英特尔希望能扩大产品覆盖的计算市场的范围,简单来说,标量、矢量、矩阵和空间四大计算中,英特尔在其他三个方面都做得很好,唯独缺少了矢量加速,或者说没有强有力的竞争对手。当然,英特尔本身在CPU上足够出色,依靠财务手段和市场操作收购了FPGA和AI计算厂商,形成了自己计算产业的三条支柱,现在最后一个支柱也就是矢量计算也将被英特尔补上,这样一个覆盖了几乎所有计算场合的英特尔,才是一个计算产业领军人物的完全体。利用四个计算产业的互相配合和支持,英特尔有望进一步打造一个统一的产业链,在计算产业上实现“赢者通吃”。至于GPU和显卡,目前看起来只是英特尔在计算产业发展路线执行上的自然产物。对四大计算产业来说,任何一个做好,都将面对万亿级别的市场,但是英特尔希望自己在四个领域都占有一席之地,这样庞大的格局和野心,也只有英特尔才能如此豪气又理所当然地展示出来,并有能力向着目标前进。

猜你喜欢

英特尔矢量架构
基于FPGA的RNN硬件加速架构
功能架构在电子电气架构开发中的应用和实践
英特尔携手一汽集团,引领汽车行业全新变革
英特尔扩充FPGA可编程加速卡产品组合
LSN DCI EVPN VxLAN组网架构研究及实现
基于矢量最优估计的稳健测向方法
一种基于FPGA+ARM架构的μPMU实现
英特尔开源帮霍金“说话”软件
好平板有强芯 英特尔Bay Trail芯片解析
色料减色混合色矢量计算