本文内容非商业用途可无需授权转载,请务必注明作者及本微信公众号、微博 @唐僧_huangliang,以便更好地与读者互动。
一周没更新微信公众号,有点快要长草的感觉,正好周末赶上点想写的东西。
下面这张图,来自一篇国外的报道《
IBM Preps Power9 For AI And HPC Launch, Forges BigNUMA Iron
》,简单说就是
16
插槽
Power9
系统的互连设计。
由
16
路互连拓扑图引发的疑问
首先,每个“横排”的
4
颗
CPU
应该在
一个
CEC
机箱内
,每个
CPU
都有
3
条蓝色连接通往另外
3
个
CPU
。
在
CEC
之间,每个
CPU
又通过
3
条绿色的
SMP
线缆
“纵向”连接同一列上的
3
个
CPU
,这样所有
16
个插槽之间最多只需要“
2
跳”。
这里有朋友提出疑问:“
CEC
内部连接的
16 Gb/s
带宽还不如跨机箱的
25 Gb/s
?”另外如果这些连接只是单
bit
宽度,换算成
GB/s
也太低了点吧?
显然上图交待的还不够全面,或者说
应该写成
GT/s
更准确
。那么,实际带宽到底是多少?
在同一篇报道中,我还看到
“
Power9 SU
”最大只到
12
核心
。最小内存
1TB
也就是每颗
CPU
都要配
64GB
。
DDR4
内存的频率只有
1.6GHz
,在这些背后又有哪些玄机呢?
为此我翻出自己一年前写的《
初探
OpenPOWER9
服务器设计:
x86
不再寂寞
》,找到其中一部分答案。
-
“每颗
POWER9 LaGrange CPU
拥有
8
个
DDR4
内存通道,每通道支持
2
个
DIMM
插槽(每
CPU 16
个
DIMM
,总共
32 DIMM
);
-
CPU
之间通信经过
2
条
30-bit X-bus
,工作在
16Gbps
的一致性互连;
-
POWER9 LaGrange
整合
PCI Gen4
控制器,两颗
CPU
一共引出
84 lane
;
-
每个
CPU
支持
2
个
x8 lane
的
NVLink/OpenCAPI@ 25Gbps
。
不难计算出,
POWER 9
每条
X-bus
的带宽为
60GB/s
,两条就是
120GB/s
;每个
x8 lane NVLink/OpenCAPI
的带宽为
25GB/s
。”
可以看到,在一块主板
/CEC
机箱内部
CPU
之间的
16Gbps
互连是
30-bit X-bus
,而跨
CEC
的
SMP
线缆应该走的就是
25Gbps8
信道
CAPI
。
紧接着问题又来了:上图中
OCP
项目
的设计,每颗
CPU
的
X-bus
和
NVLink/OpenCAPI
都只有
2
组
,
Power9
要互连
16
路至少需要
3
组才对啊?
Power9
的
Scale Out
和
Scale Up
两个版本
然后我又翻出了另一篇新闻:
Power9
的
2
个版本——
SO
(横向扩展)和
SU
(纵向堆叠)
首先
Power9
应该有
2
种
Core
,
SMT8
(同步
8
线程)的“大核”和
SMT4
(同步
4
线程)的“小核”。左边
Scale Out
系列
SMT4
的最大
24
核
,对应就是
OCP
使用的
OpenPOWER
;而只有最大
12
核
SMT8
的
Scale Up
系列,才能支持到
16
插槽互连
。
这个原因在
CPU
四周围就可以看出来,
Power9 SU
将
4B SMP
(严格说
32bit X-bus
,估计含
2
位校验码)增加到
3
组,
25G I/O
增加到
4
组。
代价是的
8
通道内存控制器没有完全内置
,而是像以前
Intel Xeon E7
那样通过
DMI
连接外面的控制
/
缓冲芯片。(
Power8
以前也这么设计过)
Dell PowerEdge R910
服务器的内存板,当年它支持
4
路
Intel Xeon 7500
和第一代
Xeon E7
处理器。散热片下有
2
颗
SMB
内存缓冲芯片。
在《
四路
Xeon SP
服务器内存减半:
Intel
葫芦里卖的什么药?
》一文中我就提到,
Intel
最新一代
Xeon Scalble
平台全部采用
CPU
直连内存的设计,包括支持四路的型号也
不再需要
SMB
内存缓冲芯片。这样做除了成本之外,降低了内存插槽数量和最大容量支持,但也保证了内存频率和性能(特别是延时)。
所以,这大概就是我们看到通过
DMI
桥接内存的
Power9 SU
,
DDR4
内存频率只支持到
1.6GHz
的原因吧。
CAPI
和
NVLink
对
PCIe Gen4
物理连接的复用
这张图反映的是
Power9
的
25G I/O
用于连接
NVIDIA GPU
(也就是
NVLink
工作模式)。前面我们提到每一组
x8 lane
的单向带宽是
25GB/s
,全双工就是
50GB/s
,那么
300GB/s
应该对应
6
组
NVLink
。这与上文中
Power9 SU
示意图的
4
组
25G
似乎有些不符,后面我会讲可能的原因。
在
CAPI
支持模式下,
4
组
25G I/O
被定义为
OpenCAPI 3.0
(蓝色箭头),提供总共
200GB/s
的双向带宽。而共用部分
PCIeGen4
物理层资源的
CAPI 2.0
(红色箭头,也可以被定义为
NVLink
?),由于速率限制在
16GT/s
,所以
2
组
x16 lane
或者
4
组
x8 lane
的最大双向带宽就是
128GB/s
。
扩展阅读
《
PCI Express 4.0
规范全文下载,
SSD
和网卡何时能受益?
》
上图中列出
CAPI
连接的设备是
ASIC
或者
FPGA
,而看下面这张图我们就能理解它们也能用于互连
Power9 CPU
。
首先,刚才我们就提到
3
组
x16 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
。
上图我在《
AMD EPYC
官方资料乌龙?谈服务器
CPU
互连效率
》一文中曾经列出,不过
AMD
目前的“胶水封装”只是将“重定义的
PCIe
”用于
2
路
CPU
互连。
话题似乎总要回到目前占据主流市场优势的
Intel
。我们知道
Intel
支持
PCIe Gen4
的进度比
Power9
要晚,而
之前
PCIe
基本一直是
Intel
在主导
而
IBM
等跟随。对于
NVLink/OpenCAPI
和
GenZ
似乎
Intel
也无动于衷?
扩展阅读
《
Gen-Z
互连
(
上
)
:
Intel
缺席的内存中心架构
》
《
Gen-Z
互连
(
下
)
:第一步
25-100GB/s
、
PCI-SIG
的反应
》
显然,我认为
Intel
选择这样的策略不是因为技术门槛,只用
3
条
QPI
互连
CPU
是他们觉得
4
路以上服务器的市场太小
。而
IBM Power
的目标则不同——用户群则较小且针对性强一些(同时保持较高的利润率来支撑研发),
部分高端关键业务和
HPC
用户更需要在单机上实现
Scale Up
的高性能“胖节点”
。
同时,
Intel
也不是自己一个人在战斗,还有些服务器厂商提供了第三方
Node Controller
芯片来支持更大规模(
8
路及以上)的
Xeon
服务器。比如下图就是我在《
Bull 8-16
路服务器:为何基于双
CPU
模块互连?
》一文中介绍过的架构。
至于
协处理器的连接
/
互连
,大家可能知道当前
Xeon Phi
的命运,
Intel
未来重点在
FPGA
还是“
GPU
”我也不确定,所以现在不太好评论和推测。
距离
Power9
正式发布的日子应该越来越近了,到时候我哪里写的不对请大家在下面留言:)
注
:本文只代表作者个人观点,与任何组织机构无关,如有错误和不足之处欢迎在留言中批评指正。
进一步交流
技术
,
可以
加我的
QQ/
微信:
490834312
。如果您想在这个公众号上分享自己的技术干货,也欢迎联系我:)
尊重知识,转载时请保留全文,并包括本行及如下二维码。感谢您的阅读和支持!《企业存储技术》微信公众号:
HL_Storage
长按二维码可直接识别关注
历史文章汇总
:
http://www.10tiao.com/author/index?authorId=691