从Power9互连技术看Intel与IBM的生存之道

简介: - 由16路互连拓扑图引发的疑问; - Power9的Scale Out和Scale Up两个版本; - CAPI和NVLink对PCIe Gen4物理连接的复用; - Intel Xeon抱定QPI+PCIe?与Power不同的生存之道

一周没更新微信公众号,有点快要长草的感觉,正好周末赶上点想写的东西。

 

下面这张图,来自一篇国外的报道《IBM Preps Power9 For AI And HPC Launch, Forges BigNUMA Iron》,简单说就是16插槽Power9系统的互连设计。

 

16路互连拓扑图引发的疑问

 

0?wx_fmt=jpeg


首先,每个“横排”的4CPU应该在一个CEC机箱内,每个CPU都有3条蓝色连接通往另外3CPU

 

CEC之间,每个CPU又通过3条绿色的SMP线缆“纵向”连接同一列上的3CPU,这样所有16个插槽之间最多只需要“2跳”。

 

这里有朋友提出疑问:“CEC内部连接的16 Gb/s带宽还不如跨机箱的25 Gb/s?”另外如果这些连接只是单bit宽度,换算成GB/s也太低了点吧?

 

显然上图交待的还不够全面,或者说应该写成GT/s更准确。那么,实际带宽到底是多少?

 

0?wx_fmt=jpeg


在同一篇报道中,我还看到Power9 SU”最大只到12核心。最小内存1TB也就是每颗CPU都要配64GBDDR4内存的频率只有1.6GHz,在这些背后又有哪些玄机呢?

 

为此我翻出自己一年前写的《初探OpenPOWER9服务器设计:x86不再寂寞》,找到其中一部分答案。

 

0?wx_fmt=jpeg


-         “每颗POWER9 LaGrange CPU拥有8DDR4内存通道,每通道支持2DIMM插槽(每CPU 16DIMM,总共32 DIMM);

-         CPU之间通信经过230-bit X-bus,工作在16Gbps的一致性互连;

-         POWER9 LaGrange整合PCI Gen4控制器,两颗CPU一共引出84 lane

-         每个CPU支持2x8 laneNVLink/OpenCAPI@ 25Gbps

 

不难计算出,POWER 9每条X-bus的带宽为60GB/s,两条就是120GB/s;每个x8 lane NVLink/OpenCAPI的带宽为25GB/s。”

 

可以看到,在一块主板/CEC机箱内部CPU之间的16Gbps互连是30-bit X-bus,而跨CECSMP线缆应该走的就是25Gbps8信道CAPI

 

紧接着问题又来了:上图中OCP项目的设计,每颗CPUX-busNVLink/OpenCAPI都只有2Power9要互连16路至少需要3组才对啊?

 

Power9Scale OutScale Up两个版本

 

然后我又翻出了另一篇新闻:

 

0?wx_fmt=jpeg

Power92个版本——SO(横向扩展)和SU(纵向堆叠)

 

首先Power9应该有2CoreSMT8(同步8线程)的“大核”和SMT4(同步4线程)的“小核”。左边Scale Out系列SMT4的最大24,对应就是OCP使用的OpenPOWER;而只有最大12SMT8Scale Up系列,才能支持到16插槽互连

 

这个原因在CPU四周围就可以看出来,Power9 SU4B SMP(严格说32bit X-bus,估计含2位校验码)增加到3组,25G I/O增加到4组。代价是的8通道内存控制器没有完全内置,而是像以前Intel Xeon E7那样通过DMI连接外面的控制/缓冲芯片。(Power8以前也这么设计过)

 

0?wx_fmt=jpeg

Dell PowerEdge R910服务器的内存板,当年它支持4Intel Xeon 7500和第一代Xeon E7处理器。散热片下有2SMB内存缓冲芯片。

 

在《四路Xeon SP服务器内存减半:Intel葫芦里卖的什么药?》一文中我就提到,Intel最新一代Xeon Scalble平台全部采用CPU直连内存的设计,包括支持四路的型号也不再需要SMB内存缓冲芯片。这样做除了成本之外,降低了内存插槽数量和最大容量支持,但也保证了内存频率和性能(特别是延时)。

 

所以,这大概就是我们看到通过DMI桥接内存的Power9 SUDDR4内存频率只支持到1.6GHz的原因吧。

 

CAPINVLinkPCIe Gen4物理连接的复用

 

0?wx_fmt=jpeg


这张图反映的是Power925G I/O用于连接NVIDIA GPU(也就是NVLink工作模式)。前面我们提到每一组x8 lane的单向带宽是25GB/s,全双工就是50GB/s,那么300GB/s应该对应6NVLink。这与上文中Power9 SU示意图的425G似乎有些不符,后面我会讲可能的原因。

 

0?wx_fmt=jpeg


CAPI支持模式下,425G I/O被定义为OpenCAPI 3.0(蓝色箭头),提供总共200GB/s的双向带宽。而共用部分PCIeGen4物理层资源的CAPI 2.0(红色箭头,也可以被定义为NVLink?),由于速率限制在16GT/s,所以2x16 lane或者4x8 lane的最大双向带宽就是128GB/s

 

扩展阅读

PCI Express 4.0规范全文下载,SSD和网卡何时能受益?

 

上图中列出CAPI连接的设备是ASIC或者FPGA,而看下面这张图我们就能理解它们也能用于互连Power9 CPU

 

0?wx_fmt=jpeg


首先,刚才我们就提到3x16 PCIe Gen4中的2组可以重定义为CAPI 2.0。另一方面,我还认为如果NVLink的最大带宽要想达到300GB/s,很可能也会复用这部分PCIe资源。

 

Intel Xeon抱定QPI+PCIe?与Power不同的生存之道

 

相比传统PCIe连接,CAPI的一大好处是设备(FPGA/ASIC)可以与CPU共享内存地址,这样也就为用于CPU之间的NUMA对等连接建立了基础。当然PCIe也支持DMA,像EMC VMAX高端存储的Scale-out架构应该说也相当于实现了NUMA,而真正将PCIe重定义为CPU互连的还有AMD

 

0?wx_fmt=png


上图我在《AMD EPYC官方资料乌龙?谈服务器CPU互连效率》一文中曾经列出,不过AMD目前的“胶水封装”只是将“重定义的PCIe”用于2CPU互连。

 

话题似乎总要回到目前占据主流市场优势的Intel。我们知道Intel支持PCIe Gen4的进度比Power9要晚,而之前PCIe基本一直是Intel在主导IBM等跟随。对于NVLink/OpenCAPIGenZ似乎Intel也无动于衷?

 

扩展阅读

Gen-Z互连()Intel缺席的内存中心架构

Gen-Z互连():第一步25-100GB/sPCI-SIG的反应

 

显然,我认为Intel选择这样的策略不是因为技术门槛,只用3QPI互连CPU是他们觉得4路以上服务器的市场太小。而IBM Power的目标则不同——用户群则较小且针对性强一些(同时保持较高的利润率来支撑研发),部分高端关键业务和HPC用户更需要在单机上实现Scale Up的高性能“胖节点”

 

同时,Intel也不是自己一个人在战斗,还有些服务器厂商提供了第三方Node Controller芯片来支持更大规模(8路及以上)的Xeon服务器。比如下图就是我在《Bull 8-16路服务器:为何基于双CPU模块互连?》一文中介绍过的架构。

 

0?wx_fmt=jpeg


至于协处理器的连接/互连,大家可能知道当前Xeon Phi的命运,Intel未来重点在FPGA还是“GPU”我也不确定,所以现在不太好评论和推测。

 

距离Power9正式发布的日子应该越来越近了,到时候我哪里写的不对请大家在下面留言:)

目录
相关文章
|
机器学习/深度学习 数据可视化
Nat. Mach. Intel. | IBM RXN: 深度学习在化学反应分类上大放异彩
Nat. Mach. Intel. | IBM RXN: 深度学习在化学反应分类上大放异彩
265 0
Nat. Mach. Intel. | IBM RXN: 深度学习在化学反应分类上大放异彩