站点图标 Linux-技术共享

IBM Power尚能饭否?

这几年在The Next Platform上,我们在一直思考以后IBM在 Power10处理器方面会做什么的同时,我们也一直在进行相应的分析,试图明确已经采用独特内存架构十多年的Big Blue能做什么。
现在我们知道了。Power10不仅是一个设计精美的芯片,更是一个由其主要内存紧密链接在一起的系统集群(在涉及到系统时可能会非常紧密)。自从公司参与美国国防高级项目研究机构的超级计算体系结构探索以来,这种体系结构就一直在不断发展,这项探索推动Power7处理器的两个超级计算机变体于2010年诞生。这两种机器都是PERCS项目的成果, 并且于2006年11月,DARPA投入2.44亿美元用于IBM未来硬件和软件的开发。借助Power10,IBM可以扩展和商业化多年以前PERCS项目奠定的技术基础。
这种新架构是无法一次性介绍清楚的。因此,我们将分为两部分,首先讨论Power10处理器,然后再讨论这种新的内存体系结构。此外,我们将讨论一个简单的问题:IBM是如何在橡树岭国家实验室和劳伦斯·利弗莫尔国家实验室输掉了两次百亿亿级超级计算交易的。有了IBM的支持,这本来就可以达成协议,而且这还可能意味着未来的AMD Epyc处理器将具有类似的基于SerDes的内存和I / O控制器以及基于硬件的内存和全局寻址。
话不多说,让我们深入研究探讨Power10处理器。

任何其他名字的云端

首先,据我们所知,IBM并没有给Power10芯片起代号。即使这是事实,但这还是也难以让人相信,而且要是真的没有命名,那就太愚蠢了。有了多种语言版本的代号,在进行相关交流时会非常方便。此外,名字要酷,这一点很重要。毕竟我们是人类,标签不仅具有意义,还要具有魔力。因此,我们将在Power10芯片上赋予一个代号,这是对IBM工程师所做工作的一种洗礼,也是为出于某些原因而无法解决这类问题的销售人员提供帮助。
在IBM内部,低端Power9芯片被称为“ Nimbus”,而针对大型NUMA铁的高端Power9芯片被称为“ Cumulus”,这两者都与当今服务器基础架构日趋多云的性质保持一致。这些是大的“暴风云”,有时会合并为“积雨云”,从地面一直延伸到地面以上12公里。对于Power10,鉴于其更具空灵的本性,我们正式将其称为“卷云”,即高耸在对流层外缘9至12公里间稀疏的龙凤祥云。
既然第一个问题已经解决了,那就来谈谈IBM有望在一年后上市的Cirrus处理器。
William Starke和Brian Thompto于本周在Hot Chips上发表了有关Power10的演讲。Starke是Power10处理器的首席架构师,并参与了IBM几代Power芯片的设计。Starke在2019年8月与我们谈论了Power10会对带宽方面给予多少关注,然后我们还讨论了Power9的“ Axone”处理器问题。该处理器是实现Power10内存子系统原型Power9芯片的推动者,该消息本该于去年宣布,但至今还没有任何动静。(我们的猜测是,该原型旨在为购买IBM级计算机的HPC中心提供一个软件开发平台,但前提是IBM能拿下美国能源部的合同。)Thompto是Power10的核心架构师,专门负责对Cirrus核心进行重新设计,重点是提高核心各个方面的能源效率
Power10内核遵循新的Power指令集版本3.1,该版本于去年8月在OpenPower Foundation下开工。根据Thompto的说法,Power10内核已添加了200多个新指令,这些指令旨在使微体系结构在某些功能上更高效,此外还增加了新功能。以下是Power10内核支持的重要新指令和数据格式的细分:
对于商业和HPC工作负载而言, Power10芯片在其矢量和矩阵数学单元中支持混合精度浮点数和整数格式非常重要,这使其能够在本地处理器上支持机器学习训练和推理工作负载。我们非常怀疑是否能在Power10芯片方面经行有效的机器学习培训,但我们确信,推理将在主机处理器而不是在加速器上进行,因为推理将需要嵌入到应用程序中,并且与应用程序中的其他处理过程非常紧密地结合在一起。如果推理将成为商业应用程序中相对较少和稀疏的部分,那么这才有意义。
以下是Power10芯片上SIMD向量引擎和矩阵数学辅助(MMA)单元的提要和速度,表明Power10内存所粘贴的DDR4内存缓冲区上的OpenCAPI内存接口(OMI)的路径一直使用到矩阵数学单元的路径。
上面显示的数据是针对胖Power10内核的,该内核具有同时设置的线程,每个内核具有八个线程(在IBM中称为SMT8模式)。对于IBM锁定为SMT4模式的Power10芯片,将每个内核的SIMD和MMA单元数量减少一半,然后将芯片上的内核总数乘以2。同样,它只是为了性能和每个内核软件许可调整硬件。
如您所见,向量单元支持标准的32位单精度浮点数和64位双精度浮点数,这些浮点数是HPC工作负载的主体,并且也经常被AI工作负载使用。但是Power10上的数学单元还支持两种16位半精度浮点格式– IEEE float-16格式和Google更好的Bfloat-16替代方案,其动态范围比FP16大,并且实际上与FP32相同。在不牺牲数字动态范围的情况下,牺牲一些精度对于AI来说是一个折衷方案,这对机器学习训练和推理结果的影响很小,并且允许在任何给定时间内通过数学单元运行更多数据。而这对机器学习结果有巨大的影响。英特尔于6月宣布的“ Cooper Lake” Xeon SP处理器在其矢量引擎中支持Bfloat16处理,Nvidia的“ Ampere” A100 GPU加速器也支持。显然,谷歌的TPU AI引擎也支持它发明的Bfloat16格式,Tachyum的未来Prodigy处理器和Arm Holdings的Neoverse Arm服务器芯片设计也将支持这种格式。Ampere Computing和Marvell都为未来的Arm服务器芯片设计提供了Bfloat16支持。
Power10芯片还支持4位,8位和16位整数运算,这对于机器学习推理工作负载最为重要。数学单元根据具体情况累积为64位或32位,并提供Power9芯片SIMD处理能力的两倍和矩阵数学能力的4倍至32倍。这对于处理器而言是一个巨大的提速障碍,并且许多客户将能够使用Power10芯片进行推理而无需使用加速器-就像他们在数据中心中使用Intel CPU一样。
让我们把Power10内核放大,然后逐步研究微体系结构,再研究片上系统。让我们看一看power10的核心部分:
同样,这是Power10内核的SMT8版本,您可以在内核上看到2 MB的L2缓存段,它是Power9内核上的L2缓存的四倍。加载和存储单元的数量是存储单元的两倍,而内存管理单元的数量则是存储管理单元的四倍,它们分别装入SIMD和矩阵数学单元,分别是Power9的2倍和4倍。基于双插槽Power10服务器的硅前仿真,与标准的4 GHz时钟周期的双插槽Power9服务器相比,此设置可产生比双插槽Power9服务器高约20%的单线程性能,并且平均核心性能提高了30%( 大概包括来自那些SIMD和MMA单元的少量数学运算)。
深入研究微体系结构,下图是Power10内核的工作流程:
这张图只显示了SMT8设置的一半,这一半很难绘制出来,但是其等效于SMT4内核。您可以在系统的核心看到四个128位执行片,它们的前端是48 KB L1指令高速缓存,后端是32 KB L1数据高速缓存。如您所见,此Power10内核的许多功能是Power9内核的2倍或4倍,尽管其中一些功能仅作了适度的改进。加起来,SMT8内核平均可多完成30%的工作,而且由于设计的原因,该过程从与Power9一起使用的GlobalFoundries的14纳米工艺缩减到了三星的7纳米工艺(其中还有一些额外的IBM产品)不仅是三星的V1流程),每个内核的功耗也减少了一半。这是每瓦性能提高2.6倍的一个因素,听起来不同系列之间相差很多,但您必须记住,Power9和Power10系列之间也差不多有四年的时间。
这是令人印象深刻的改进,但是IBM是否能用两年时间完成这项工作?
IBM相对于Power Systems机器中的Nimbus和Cumulus接口,使接口的功率或多或少保持恒定,但并未透露这些接口的功率是多少。Starke所说的是,再次针对4 GHz性能进行了标准化的Power10插槽,其整数性提升至约3.25倍,浮点或Java性能约3倍,以及Power9插槽的内存带宽性能约2.25倍。
该内存带宽数据是基于STREAM Triad基准测试的,这一点很有趣,因为这使Power9上的直接连接的DDR4内存与OMI内存相对,在OMI内存上有由Power10芯片上的Serdes驱动的DDR4记忆棒上的缓冲区。SerDes和缓冲区设置增加了大约10纳秒的内存访问时间,因此它不是免费的,而是正常的。但是有趣的一点是,因为OMI SerDes并非是针对DDR4进行硬编码的(但缓冲芯片是)。 当DDR5内存出现时,它会位于相同的缓冲区后面,并且可以直接交换到Power10机器中,此时内存性能会在无需更改处理器或系统时即可突然再次翻倍。
干得漂亮。
在讨论了上述的Power10通用接口性能提升之后,我们可能应该看看该个接口。因此,这里是已硬化为SMT8模式的Power10芯片,其功能标记为:
如您所见,Power10裸片上有16个内核,但是IBM仅为其中的应用激活15个(如果是SMT4模式则为30个)内核。因为考虑到三星7纳米工艺的良率,第16个内核并不是多余的(尽管IBM从统计学上来考虑的话的确如此),三星正在使用IBM Power10来制造其首个服务器芯片。Power10的存在使得用于客户端设备和智能手机的Samsung Exynos处理器看起来像个玩具。相比之下,确实如此。无论如何,在某个时候,当收益提高时,IBM将能够出售该第16核,并且我们肯定他们会这么做。
Power10芯片有180亿个晶体管,目前还很轻,它的面积为602平方毫米,堆叠了18层金属。该芯片具有128 MB的L3缓存,我觉得很有趣的是IBM没有像Power7,Power8和Power9那样使用嵌入式DRAM设计,而是使用了三星蚀刻的常规SRAM。Starke表示,由于流程缩减,IBM可以做到这一点。
这是一点很有趣。多年来,我们在Power10幕后看到的所有路线图都将其固定在48个核心上。如今,由于上面提到的良率问题,我们非常怀疑IBM是否会将48个内核塞入甚至7纳米的单片芯片中,我们只是认为IBM会基本上缩小Power9芯片,增加改进的I / O和内存SerDes。并将其中两个以SMT4模式放入单个插槽中,以达到48核。当然这只是一个计划,而不是IBM实际所做的。
确切来讲,IBM一直向整个计划靠近,创建了具有16个SMT8内核或32个SMT4内核的芯片,并且还配备了双芯片模块选件,以使内核数量增加一倍,同时时钟频率适度减少在铁心上保持最高速度,并且仍保持在为自己的电源系统设置的散热范围内。因此,它可以在一个接口中提供30个较大或60个较小Power10内核,每个接口总共240个线程。
为了让其正常运行,有16个x8(八通道)OMI内存接口,总带宽为1 TB /秒(车道以32 GT / sec的速度运行),还有16个PowerAXON x8接口也以32的速度运行GT /秒,并提供1 TB /秒的带宽。这些PowerAXON接口可以运行NUMA或OpenCAPI接口,并且没有充分的理由说明它们不能运行与Nvidia A100 GPU加速器一起使用的NVLink 3.0协议,但事实是它们却没有。(嗯……)Power10处理器还具有两个PCI-Express 5.0控制器,每个控制器有16条通道,在您意识到IBM希望通过PowerAXON链接将很多东西加入Power10芯片之前,这听起来并不多。我们将看看IBM是否在这些PCI-Express 5.0控制器上支持Intel的CXL协议。这使其没有理由不正常运行,并且从理论上讲,IBM不能通过PCI-Express链接支持AMD Radeon Instinct和Intel Xe GPU加速器。但是,除非使用PCI-Express开关,否则这将限制每个CPU,使只能连接两个GPU设备。目前尚不清楚是否可以通过PCI-Express协议在CPU和GPU内存之间提供一致性,但是从理论上讲,如果IBM仍想出售混合CPU-GPU系统,则没有理由不起作用。至少在我们看来是如此。
这是IBM最初考虑在服务器中安装Power10的方式:
我们认为这些主题会有所变化,并且Power10的SMT4变体也可以根据需要提供。但是,正如您所看到的,IBM将把其NUMA大部件集中在单芯片模块上,像在Power8和Power9机器中所做的那样扩展到16个插槽,但在具有以下功能的机器中使用的Power10双芯片模块最多达到四个接口。为了使每个插槽的内核数量增加一倍,IBM只需将时钟速度降低大约12.5%(从大约4 GHz降低到大约3.5 GHz),但这仍然可以将性能提高1.9倍,并且使该系统拥有更多的I / O和同样多的内存容量。所以说这是一场公平交易。
顺便说一句,这并不是IBM首次采用双芯片模块。无论客户是否知道,具有Power5 +,Power6 +,Power7 +和Power8处理器的系统都具有DCM的一些变体。

HotChips 2020:采用三星7nm工艺的IBM POWER10 处理器

在日前举办的Hot Chips 2020会议上,IBM 介绍了公司最新一代的处理器——POWER10的一些进展。Power10对Power9进行一些重大改进。IBM声称在相同的功率范围内,其容量和处理器能效比上一代芯片提高了3倍。
 
Power10处理器具有动态执行寄存器控制功能,这意味着用户可以设计出更能抵抗攻击且性能损失可忽略不计的应用程序。除此之外,它还附带有IBM所谓的“内存启动”功能,该功能使集群中任何基于Power10的系统都可以与其他系统共享内存。同时,在等式的AI方面,IBM表示,与Power9相比,Power10处理器在企业AI推理任务方面的性能将提高10到20倍。
 
以下是PPT详细内容:

退出移动版