IBM Power10核心的内存区网络

2020-09-05 21:20:36

当我们分析IBM第二季度的财务状况时,考虑到蓝色巨人将在大约一年后推出的“Cirrus”Power10系统所拥有的选择,我们做了一个思考实验,如果IBM再次开始相信大型钢铁机器,那将意味着什么,除了需要用一些有趣的东西填充空白页之外,什么都不是,只是需要用一些有趣的东西来填充一张空白的页面,当我们分析IBM第二季度的财务状况时,考虑到蓝色巨人拥有的“Cirrus”Power10系统的选择。准确地说,我们建议IBM在其System z大型机上采用并行Syplex内存集群中证明的一些想法,并对其进行调整,以创建基于Power10节点的大型共享内存集群。

事实证明,这正是IBM正在做的事情--有一些有趣的转折。

Power10芯片的首席架构师比尔·斯塔克(Bill Starke)在6月份读到我们关于将并行系统综合体(Parallel Syplex)之类的东西引入Power10的建议时,笑得很开心,也有轻微的心脏骤停--我们入侵了他的笔记本电脑吗?特别是当我们建议IBM可以在一个使用当前Power9芯片的巨大、奇妙的共享内存NUMA系统中跨越6144个内核和高达2PB的内存时。事实证明,Power10实际上有51位物理寻址,其处理器集群确实可以看到2PB大小的地址空间-如果以正确的方式将足够多的节点与足够的DDR内存插槽捆绑在一起。

据我们所知,没有其他CPU可以做到这一点。目前的“Cascade Lake”和“Cooper Lake”Xeon SP处理器有46位物理寻址(64 TB)和48位虚拟寻址(256 TB)-后者的价值值得怀疑。英特尔至强SP不仅有一个内存瓶颈,而且有三个:内存控制器太少,这限制了插槽级别的内存容量和内存带宽;内存寻址能力限制了使用对称多处理(SMP)或非一致内存访问(NUMA)群集的共享内存系统中多个插槽的容量(因此也限制了带宽)。

几周前,在回顾Power10在HotChip 32活动上的演示时,我们在最初的报道中暗示了Power10体系结构的核心内存集群技术-IBM所称的“内存初始阶段”和我们称之为“内存区域网络”的技术。我们承诺返回并深入了解Power10内存体系结构及其可大规模扩展的共享内存功能的细节,并单独和作为一个组讨论它可能对企业计算、云计算、超级缩放器、HPC和AI计算产生的影响。这可能会改变IBM的游戏规则,如果不是在超级缩放器中,那么对于它自己的IBM Cloud来说,如果它真的像应该的那样相信自己的技术的话。

我们将循序渐进,因为如果您喜欢系统架构,这将非常有趣。(我们在下一个站台也是这样做的。)。

早在2019年10月,我们在谈到仍未见识的Power9试验性Power9“Axone”处理器时就指出了这一点,早在2019年8月,我们通过深入采访Starke获得了关于Power10处理器设计的提示,早在2019年8月,从专用DDR4内存控制器转变为基于Serdes的高速差分信令,并在内存模块上混合了缓冲芯片,可以学习使用DDR4、DDR5、GDDR6、3D XPoint或其他语言,这是系统设计中的一个重要转变。蓝色巨人将在Power10系统上展示的灵活性和可组合性优势实在太大了,无法否认或忽视。

让我们来看看OpenCAPI内存接口(OMI)和PowerAXON I/O接口,它们以前在Power8和Power9处理器上的代号为“BlueLink”。请检查以下内容:

从我们最近几年看到的旧路线图来看,IBM似乎计划在Power10芯片的下一代BlueLink端口上支持32 GB/秒和50 GB/秒的速度,而Power8和Power9上的速度为25 GB/秒。我们猜测,这主要是通过在16 GHz和25 GHz的SerDe上添加PAM-4脉冲幅度调制编码来实现的。PAM-4编码正在交换机ASIC上进行,以使这些ASIC上的每时钟带宽增加一倍。(用于各种网络传输的非零返回(NRZ)编码可以在信号中放入一位,但PAM-4可以在每个信号中放入两位。)。

从上面的图表可以看出,IBM刚刚全面采用了32 Gb/秒的信令,可能只是将Power8、Power9和Power9芯片中已有的16 GHz本机信令用于NUMA互连,并添加了PAM-4编码。显然,预期中的BlueLink升级到运行在50 GHz并提供50 GB/秒(25 GHz加PAM-4编码)的没有发生,我们认为在IBM重新开始之后,很可能是在很明显NVIDIA和IBM不会在美国赢得两笔大型艾级超级计算机交易之后,它只是用PAM-4将所有信号降回了16 GHz。正如我们最近在“Ampere”A100 GPU架构概述中所谈到的,NVLink3.0以25 GHz的速度运行,采用PAM-4编码,在四个端口上产生50 GB/秒的带宽。

正如我们几周前所说的,我们认为IBM计划在一块芯片上支持这两种BlueLink速度(32GT/秒和50GT/秒),芯片上有24个瘦SMT4核或12个胖SMT8核,非常像Power9的机器,Power10本质上是一个新的内核,它将在这种设计中插入,然后它将创建双芯片模块(DCM),将每个插槽的内核数量增加到48个。在某种程度上,当IBM决定真正推动核心设计并将32个瘦SMT4或16个胖SMT8内核放在一个芯片上时,看起来IBM也决定取消一些BlueLink端口(用于套接字之间或套接字内的NUMA链路以及OpenCAPI端口)使用的更快的50 Gb/秒速度,而只使其所有差分信令SerDe以32 Gb/秒的速度运行。

使所有I/O Serde相同或尽可能相同是有意义的,并且在连接到Power10处理器复合体的内容以及可以用来连接它的协议方面给了IBM极大的灵活性。IBM将这些不同的信令块命名为不同的名称-OMI和PowerAXON-但我们认为唯一的区别是在它们之上启用的协议。

IBM所做的,至少对于在HotChip 32上展示的Power10的16核Power10实施来说,是采用8个BlueLink SerDe,每个POP有8个通道,并将其转换为两个OMI内存控制器,您可以在上面芯片上Power10芯片的左右两边看到,聚合带宽为1 TB/秒。PowerAXON接口位于角落,它们有四个SerDe,每个SerDe有八个通道,在每个通道32 GT/秒的情况下,聚合带宽总计为1 TB/秒。以32 Gb/秒运行的BlueLink信号每平方毫米的带宽是IBM为Power9处理器创建的DDR4内存控制器的6倍,否则在Power10一代中将从14纳米缩小到7纳米。Power9的测试芯片被刻蚀了14纳米,这就是这种比较的真正来源,就像我们在这里展示的那样。IBM仍有可能在Power Systems Advanced I/O机(简称Power AIO)中推出Power9‘,从现在到明年夏末或明年秋初Power10发货时。缓冲DDR4或DDR5内存的可用性可能是阻碍这款Power AIO机器推出的原因,因为它需要由MicroChip制作缓冲区,并要求DIMM制造商使用它制作记忆棒。(这只是个猜测。)。

这些差分信号SerDe非常有用,我们认为,随着时间的推移,所有的I/O都将在处理器上完成,因为蓝色巨人已经用Power9做了什么,也将用Power10做什么。我们在两年前讨论过这一点,当时我们在HotChip 30演示文稿后写道,IBM用其BlueLink体系结构模糊了内存和加速器之间的界限,并详细介绍了这些SerDe。

考虑这一点时要记住的要点-我们已经向我们知道的每一家CPU制造商阅读了暴动法案-是没有理由提前在芯片上硬编码内存和I/O。这应该是动态完成的,使用通用信令,允许客户(或者至少是服务器供应商)确定附加到其处理复合体的内存和各种I/O的比率。不再有很好的理由来解决这些问题。如果我想要一个主要是内存怪物的CPU,那么我会让大多数SerDe与内存对话

在这个图表中有很多事情需要考虑,所以让我们一步一步地来看一下。从右边出来的是主层DDR4 DRAM内存,它可以跨Power10芯片上左右的那对OMI SerDe扩展到每个插槽高达4 TB,并且使用MicroChip的DDR4缓冲芯片可以提供410 GB/秒的带宽(假设在3.2 GHz的DDR4-3200速度下),并且只增加了10纳秒的内存延迟。当DDR5内存耗尽时,客户仍然可以使用OMI SerDes来驱动它,MicroChip将推出一个新的缓冲器,将差分信号转换为DDR5协议。

从理论上讲,这些OMI接口还将允许连接存储类存储器-考虑像DRAM一样可字节寻址的3D XPoint或PCM-这就是在许多情况下2PB可寻址空间将派上用场的地方。美光科技和其他公司何时以及是否能获得持久存储器。目前,英特尔已经锁定了DIMM外形规格的3DXPoint(实际上是ReRAM的一个调整)内存,但这不会永远持续下去。在上面图表右侧看到的另一个有趣的场景是一个假设的GDDR6内存模块,它可以提供高达800 GB/秒的持续内存带宽,几乎填满了OMI SerDes管道中1 TB/秒的聚合带宽,并提供了安培A100 GPU加速器所提供的HBM2堆叠内存带宽(1.55 TB/秒)的一半多一点-而不需要内存堆叠和插入器和封装基板来将HBM2内存链接到CPU。

在图表的左侧,我们看到使用PowerAXON端口实施的速度更快的NUMA互连-IBM称它们为SMP链路,但它们不是SMP,因为所有内存访问在空间上绝对不是相同的距离,因此在计算群集中的时间和内存也不会像SMP设计的那样全部捆绑在一起并通过总线或交叉开关进行访问。内存不仅对插座是本地的,而且对于芯片上的OMI SerDe的每个部分都具有某种局部性。即使具有240个胖内核(可能还有480个瘦内核)的复合体中的每个Power10内核都可以访问具有多达256个OMI SerDes组和高达2 PB内存的系统中的任何主内存,并且即使本地和远程NUMA链路现在以相同的速度(32 GHz)运行,距离也不相同,因此等待时间不会与机器扩展其CPU和/或插槽计数完全相同。但可以肯定的是,这是一个比Power8或Power9更平衡的设计。

这些PowerAXON链接还支持使用OpenCAPI接口在“设备外形规格”(IBM称之为“device form factor”)中附加存储类内存。(有趣的是,IBM不支持Intel的CXL协议,而不支持PCI-Express 5.0控制器,因为它说OpenCAPI更优越,因为它提供真正的一致性和数据加密来引导。)。这些OpenCAPI链接还可用于将FPGA连接到Power10复合体以及其他ASIC-前提是它们支持OpenCAPI。如果没有,IBM和合作伙伴可以在设备卡上放置一个小型FPGA,以可编程逻辑实现OpenCAPI接口,并使其看起来像本地的。

这就把我们带到了这个图表左上角的“记忆开始”功能。IBM说,通过内存启动,它“使一个系统能够将另一个系统的内存映射为自己的内存”,并且“多个系统可以集群在一起,共享彼此的内存”。

根据Starke的说法,这种能力起源于与美国国防高级研究计划局(US Defense Advanced Research Projects Agency)合作的Percs项目中的全局内存寻址,该项目为IBM为许多国家HPC实验室使用的Power 775超级计算机节点开发Power7提供了资金,以及IBM从未安装的“Blue Waters”实施,后者有非常密集的此类机器,但IBM取消了该计划,因为建造机器的成本太高。伊利诺伊大学(University Of Illinois)采用了克雷(Cray)的CPU-GPU混合机器,获得了1.88亿美元。在创建Power10内存区域网络时,System z团队和并行系统综合体设计也带来了一定的见解。

“这比任何内存集群都要好,”斯塔克告诉下一个平台。“这是真正的内存分解,您可以从字面上为群集另一端的另一台服务器借用内存,所有协议都会流向那里,就像内存直接位于您的系统中一样。由于NUMA方面的原因,有一个很小的延迟,大约在50纳秒到100纳秒之间,对于不需要客户重写一点软件的东西来说,这是合理的。“。

我们开始明白为什么谷歌在很早以前就对加入OpenPower联盟感兴趣了。也许谷歌可能会在这一点上留下来。也许所有的CPU制造商都在做这件事。我们等着瞧吧。我们认为现在他们必须这么做。

以下是如何在Power10 Pod中使用内存区域网络的一个简单示例:

这是一个仅显示跨节点借用内存的示例,其中不同的工作负载配置了跨不同服务器的内存,使得一些节点实际上成为其他节点的内存服务器-并且假设是以动态方式。

但是你可以把它带到非常不同的方向。以下是将其推向两个不同极端的两种不同的内存区域网络拓扑:

在顶部设置中,八个大型Power10大铁盒与它们的PowerAXON缆线捆绑在一起,使它们可以拥有PB级的分布式共享存储池。目前还不清楚操作系统是否可以将所有计算和所有内存视为一台NUMA计算机,但这就是隐含的含义,如果你仔细想想就会发现这是令人震惊的。顺便说一句,在每个大机箱16个插槽的情况下,在每个插槽4 TB的情况下,达到并行Syplex的32个服务器限制才能达到2 PB。(看吧,早告诉过你了。)。因此,这张图片只显示了IBM能做的事情的四分之一。

上面图表的底部很有趣,但原因不同。在这种情况下,具有64 TB内存的超大Power10 NUMA盒实质上是32个条目的Power10服务器的内存服务器,这些服务器没有自己的物理内存,但可以根据工作负载的需要单独访问高达64 TB的任何位置。这就是惠普企业的Z一代人一直在说的未来,IBM正在通过CPU上的内存互连来实现这一点。

现在,这就是它变得非常酷的地方,也是为什么我们称它为内存区网络的原因。(不客气,IBM。)。

斯塔克说:“一旦你可以在邻居之间分享记忆,你就可以把它带到下一个阶段,而且你可以进行多跳。”“我只需从一个节点的内存中读取,然后写入另一个节点的内存,就可以构建一个集成的集群。硬件会自动在整个数据中心内路由,最多可扩展到数千个节点,在这里,您基本上是在构建一个道德上相当于InfiniBand网络的网络,具有极低的延迟和极高的带宽,其规模实际上只受2 PB的内存上限的限制。“。

现在,IBM没有这样想,但想象一下,如果你拿出一半的Power10 GPU,在Power10 CPU和安培A100 GPU甚至安培GPU本身的Kicker之间有NVLink Coherence。Power10 CPU上的内存区域网络可以为CPU和GPU提供巨大的内存空间,这要归功于IBM已经在NVLink上拥有的连贯性(这实际上是运行稍微不同的协议的BlueLink,这会让GPU认为DRAM非常慢,但实际上是非常胖的HBM2,并且还会让CPU认为GPU上的HBM2非常瘦,但实际上是非常快的DRAM)。IBM本可以通过使用GDDR6存储卡,推出容量更大、成本更低的内存层。或者,成本问题,NVIDIA和IBM可能已经能够制造一台更简单、成本更低的亿级机器,它使用共享的GDDR6内存,在CPU和GPU上使用OMI接口,并具有大容量的DRAM,所得到的机器可能比橡树岭国家实验室的“Summit”机器或劳伦斯·利弗莫尔国家实验室的“Sierra”机器更具延展性-而且可能根本不需要NVIDIA的NVSwitch。IBM只需要添加运行NVLink协议的大约50 Gb/秒的BlueLink来链接到Ampere,或者NVIDIA提供一个可以降低到32 Gb/秒的Ampere版本,如果IBM对OMI和PowerAXON链路只能做到这一点的话。