CPU、GPU与算存互连的复杂比较与重要性分析之二
算力互连:由内及外,由小渐大
随着"东数西算"工程的推进,出现了细分场景如"东数西渲"和"东数西训"。视频渲染和人工智能(AI)/机器学习(ML)的训练任务本质上都是离线计算或批处理,可以在"东数西存"的基础上进行。即原始素材或历史数据传输到西部地区的数据中心后,在该地区独立完成计算过程,与东部地区的数据中心交互较少,因此不会受到跨地域时延的影响。换句话说,"东数西渲"和"东数西训"的业务逻辑成立是因为计算与存储仍然就近耦合,不需要面对跨地域的"存算分离"挑战。
在服务器内部,CPU和GPU之间存在类似但不同的关系。对于当前热门的大模型来说,对计算性能和内存容量都有很高的要求。然而,CPU和GPU之间存在一种"错配"现象:GPU的AI算力明显高于CPU,但直接的内存(显存)容量通常不超过100GB,与CPU的TB级内存容量相比相差一个数量级。幸运的是CPU和GPU之间的距离可以缩短,带宽可以提升。通过消除互连瓶颈,可以大大减少不必要的数据移动,提高GPU的利用率。
一、为GPU而生的CPU
NVIDIA Grace CPU的核心基于Arm Neoverse V2架构,其互连架构SCF(可扩展一致性结构)可以看作是定制版的Arm CMN-700网格。然而在外部I/O方面,NVIDIA Grace CPU与其他Arm和x86服务器有很大不同,这体现NVIDIA开发这款CPU的主要意图,即为需要高速访问大内存的GPU提供服务。
在内存方面,Grace CPU具有16个LPDDR5X内存控制器,这些内存控制器对应着封装在一起的8个LPDDR5X芯片,总容量为512GB。经过ECC开销后,可用容量为480GB。因此可以推断有一个内存控制器及其对应的LPDDR5X内存die用于ECC。根据NVIDIA官方资料,与512GB内存容量同时出现的内存带宽参数是546GB/s而与480GB(带ECC)同时出现的是约500GB/s,实际的内存带宽应该在512GB/s左右。
PCIe控制器是必不可少的Arm CPU的惯例是将部分PCIe通道与CCIX复用,但这样的CCIX互连带宽相对较弱,不如英特尔专用于CPU间互连的QPI/UPI。
NVIDIA Grace CPU提供68个PCIe 5.0通道,其中有2个x16通道可以用作12通道一致性NVLink(cNVLINK)。真正用于芯片(CPU/GPU)之间互连的是cNVLINK/PCIe隔"核"相望的NVLink-C2C接口,其带宽高达900GB/s。
NVLink-C2C中的C2C代表芯片到芯片之间的连接。根据NVIDIA在ISSCC 2023论文中的描述,NVLink-C2C由10组连接组成(每组9对信号和1对时钟),采用NRZ调制,工作频率为20GHz,总带宽为900GB/s。每个封装内的传输距离为30mm,PCB上的传输距离为60mm。对于NVIDIA Grace CPU超级芯片,使用NVLink-C2C连接两个CPU可以构成一个144核的模块;而对于NVIDIA Grace Hopper超级芯片,即将Grace CPU和Hopper GPU进行互联。
NVLink-C2C的900GB/s带宽是非常惊人的数据。作为参考,Intel代号为Sapphire Rapids的第四代至强可扩展处理器包含3或4组x24 UPI 2.0(@16GT/s)多个处理器之间的总带宽接近200GB/s;而AMD第四代EPYC处理器使用的GMI3接口用于CCD与IOD之间的互联带宽为36GB/s,而CPU之间的Infinity Fabric相当于16通道PCIe 5.0,带宽为32GB/s。在双路EPYC 9004之间可以选择使用3或4组Infinity Fabric互联,4组的总带宽为128GB/s。
通过巨大的带宽,两颗Grace CPU可以被紧密联系在一起,其"紧密"程度远超传统的多路处理器系统,已经足以与基于有机载板的大多数芯片封装方案(2D封装)相匹敌。要超越这个带宽,需要引入硅中介层(2.5D封装)的技术。例如,苹果M1 Ultra的Ultra Fusion架构利用硅中介层连接两颗M1 Max芯粒。苹果声称Ultra Fusion可以同时传输超过10,000个信号,实现高达2.5TB/s的低延迟处理器互联带宽。Intel的EMIB也是一种2.5D封装技术,其芯粒间的互联带宽也应当达到TB级别。
NVLink-C2C的另一个重要应用案例是GH200 Grace Hopper超级芯片,它将一颗Grace CPU与一颗Hopper GPU进行互联。Grace Hopper是世界上第一位著名的女性程序员,也是"bug"术语的发明者。因此,NVIDIA将这一代CPU和GPU分别命名为Grace和Hopper,这个命名实际上有着深刻的意义,充分说明在早期规划中,它们就是紧密结合的关系。
NVIDIA Grace Hopper 超级芯片主要规格
CPU和GPU之间的数据交换效率(带宽、延迟)在超大机器学习模型时代尤为重要。NVIDIA为Hopper GPU配备了大容量高速显存,全开启6组显存控制器,容量达到96GB,带宽达到3TB/s。
相比之下,独立的GPU卡H100的显存配置为80GB,而H100 NVL的双卡组合则为188GB。Grace CPU搭载了480GB的LPDDR5X内存,带宽略超过500GB/s。尽管Grace的内存带宽与使用DDR5内存的竞品相当,但CPU与GPU之间的互连才是决定性因素。典型的x86 CPU只能通过PCIe与GPU通信而NVLink-C2C的带宽远超PCIe并具有缓存一致性的优势。
通过NVLink-C2C Hopper GPU可以顺畅地访问CPU内存超过H100 PCIe和H100 SXM。此外,高带宽的直接寻址还可以转化为容量优势,使Hopper GPU能够寻址576GB的本地内存。
CPU拥有的内存容量是GPU无法比拟的,而GPU到CPU之间的互连(PCIe)是瓶颈。NVLink-C2C的带宽和能效比优势是GH200 Grace Hopper超级芯片相对于x86+GPU方案的核心优势之一。NVLink-C2C每传输1比特数据仅消耗1.3皮焦耳能量大约是PCIe 5.0的五分之一具有25倍的能效差异。需要注意的是这种比较并不完全公平,因为PCIe是板间通信,与NVLink-C2C的传输距离有本质区别。
NVLink最初是为了实现高速GPU之间的数据交换而设计的,通过NVSwitch的帮助,可以将服务器内部的多个GPU连接在一起,形成一个容量成倍增加的显存池。
二、NVLink 之 GPU 互连
NVLink的目标是突破PCIe接口的带宽瓶颈,提高GPU之间交换数据的效率。2016年发布的P100搭载了第一代NVLink,提供160GB/s的带宽,相当于当时PCIe 3.0 x16带宽的5倍。V100搭载的NVLink2将带宽提升到300GB/s 接近PCIe 4.0 x16的5倍。A100搭载了NVLink3带宽为600GB/s。
H100搭载的是NVLink4,相对于NVLink3,NVLink4不仅增加了链接数量,内涵也有比较重大的变化。NVLink3中,每个链接通道使用4个50Gb/s差分对,每通道单向25GB/s,双向50GB/s。A100使用12个NVLink3链接,总共构成了600GB/s的带宽。NVLink4则改为每链接通道使用2个100Gb/s差分对,每通道双向带宽依旧为50GB/s,但线路数量减少了。
在H100上可以提供18个NVLink4链接总共900GB/s带宽。NVIDIA的GPU大多提供NVLink接口,其中PCIe版本可以通过NVLink Bridge互联,但规模有限。更大规模的互联还是得通过主板/基板上的NVLink进行组织,与之对应的GPU有NVIDIA私有的规格SXM。
SXM规格的NVIDIA GPU主要应用于数据中心场景其基本形态为长方形,正面看不到金手指属于一种mezzanine卡,采用类似CPU插座的水平安装方式"扣"在主板上,通常是4-GPU或8-GPU一组。其中4-GPU的系统可以不通过NVSwitch即可彼此直连,而8-GPU系统需要使用NVSwitch。
NVIDIA HGX A100 4-GPU 系 统 的 组 织 结 构。 每 个 A100 的 12 条 NVLink 被均分为 3 组,分别与其他 3 个 A100 直联
经过多代发展,NVLink已经日趋成熟,并开始应用于GPU服务器之间的互连,进一步扩大GPU(以及其显存)集群的规模。
NVIDIA HGX H100 8-GPU 系 统 的 组 织 结 构。 每 个 H100 的 18 条 NVLink 被分为 4 组,分别与 4 个 NVSwitch 互联。
三、NVLink 组网超级集群
在2023年5月底召开的COMPUTEX上,英伟达宣布了由256个Grace Hopper超级芯片组成的集群,总共拥有144TB的GPU内存。大语言模型(LLM)如GPT对显存容量的需求非常迫切,巨大的显存容量符合大模型的发展趋势。那么,这个前所未见的容量是如何实现的呢?
其中一个重大创新是NVLink4 Networks,它使得NVLink可以扩展到节点之外。通过DGX A100和DGX H100构建的256-GPU SuperPOD的架构图,可以直观地感受到NVLink4 Networks的特点。在DGX A100 SuperPOD中,每个DGX节点的8个GPU通过NVLink3互联,而32个节点则需要通过HDR InfiniBand 200G网卡和Quantum QM8790交换机互联。在DGX H100 SuperPOD中,节点内部采用NVLink4互联8个GPU,节点之间通过NVLink4 Network互联,各节点接入了称为NVLink Switch的设备。
DGX A100 和 DGX H100 256 SuperPOD 架构
根据NVIDIA提供的架构信息NVLink Network支持OSFP(Octal Small Form Factor Pluggable)光口,这也符合NVIDIA声称的线缆长度从5米增加到20米的说法。DGX H100 SuperPOD使用的NVLink Switch规格为:端口数量为128个,有32个OSFP笼(cage),总带宽为6.4TB/s。
DGX H100 SuperPOD 节点内部的网络架构
每个8-GPU节点内部有4个NVSwitch,对于DGX H100 SuperPOD每个NVSwitch都通过4或5条NVLink对外连接。每条NVLink的带宽为50GB/s,对应一个OSFP口相当于400Gb/s,非常成熟。每个节点总共需要连接18个OSFP接口,32个节点共需要576个连接,对应18台NVLink Switch。
DGX H100也可以(仅)通过InfiniBand互联,参考DGX H100 BasePOD的配置,其中的DGX H100系统配置了8个H100、双路56核第四代英特尔至强可扩展处理器、2TB DDR5内存,搭配了4块ConnectX-7网卡——其中3块双端口卡用于管理和存储服务,还有一块4个OSFP口的用于计算网络。
回到Grace Hopper超级芯片,NVIDIA提供了一个简化的示意图其中的Hopper GPU上的18条NVLink4与NVLink Switch相连。NVLink Switch连接了"两组"Grace Hopper超级芯片。任何GPU都可以通过NVLink-C2C和NVLink Switch访问网络内其他CPU、GPU的内存。
NVLink4 Networks的规模是256个GPU,注意是GPU而不是超级芯片,因为NVLink4连接是通过H100 GPU提供的。对于Grace Hopper超级芯片,这个集群的内存上限就是:(480GB内存+96GB显存)×256节点=147456GB,即144TB的规模。假如NVIDIA推出了GTC2022中提到的Grace + 2Hopper,那么按照NVLink Switch的接入能力,那就是128个Grace和256个Hopper,整个集群的内存容量将下降至约80TB的量级。
Grace Hooper 超级芯片之间的互联
在COMPUTEX 2023期间,NVIDIA宣布Grace Hopper超级芯片已经量产,并发布了基于此的DGX GH200超级计算机。NVIDIA DGX GH200使用了256组Grace Hopper超级芯片,以及NVLink互联,整个集群提供高达144TB的可共享的"显存",以满足超大模型的需求。以下是一些数字,让我们感受一下NVIDIA打造的E级超算系统的规模:
算力:1 exa Flops (FP8)
光纤总长度:150英里
风扇数量:2112个(60mm)
风量:7万立方英尺/分钟(CFM)
重量:4万磅
显存:144TB NVLink
带宽:230TB/s
从150英里的光纤长度,我们可以感受到其网络的复杂性。这个集群的整体网络资源如下:
由于Grace Hopper芯片上只有一个CPU和一个GPU,与DGX H100相比GPU的数量要少得多。要达到256个GPU所需的节点数大大增加,这导致NVLink Network的架构变得更加复杂。
NVIDIA DGX GH200 集群内的 NVLink 网络架构
DGX GH200的每个节点有3组NVLink对外连接,每个NVLink Switch连接8个节点。256个节点总共分为32组,每组8个节点搭配3台L1 NVLink Switch,共需要使用96台交换机。这32组网络还要通过36台L2 NVLink Switch组织在一起。
与DGX H100 SuperPOD相比GH200的节点数量大幅增加,NVLink Network的复杂度明显提高了。以下是二者的对比:
三、InfiniBand 扩大规模
如果需要更大规模(超过256个GPU)的集群就需要引入InfiniBand交换机。对于Grace Hopper超级芯片的大规模集群NVIDIA建议采用Quantum-2交换机组网提供NDR 400 Gb/s端口。每个节点配置BlueField-3 DPU(已集成ConnectX-7),每个DPU提供2个400Gb/s端口,总带宽达到100GB/s。理论上使用以太网连接也可以达到类似的带宽水平,但考虑到NVIDIA收购Mellanox,倾向于使用InfiniBand是可以理解的。
NVIDIA BlueField-3 DPU
基于InfiniBand NDR400组织的Grace Hopper超级芯片集群有两种架构。一种是完全采用InfiniBand连接,另一种是混合配置NVLink Switch和InfiniBand连接。这两种架构的共同点是每个节点都通过双端口(总共800Gbps)连接InfiniBand交换机,DPU占用x32的PCIe 5.0并由Grace CPU提供PCIe连接。它们的区别在于后者每个节点还通过GPU接入NVLink Switch连接,形成若干NVLink子集群。
很显然混合配置InfiniBand和NVLink Switch的方案性能更好,因为部分GPU之间具有更大的带宽以及对内存的原子操作。例如,NVIDIA计划打造超级计算机Helios,它将由4个DGX GH200系统组成,并通过Quantum-2 InfiniBand 400 Gb/s网络组织起来。
四、从 H100 NVL 的角度再看 NVLink
在GTC 2023上,NVIDIA发布了专为大型语言模型部署的NVIDIA H100 NVL。与H100家族的其他两个版本(SXM和PCIe)相比,它具有两个特点:首先,H100 NVL相当于将两张H100 PCIe通过3块NVLink桥接连接在一起;其次,每张卡都具有接近完整的94GB显存,甚至比H100 SXM5还要多。
根据NVIDIA官方文档的介绍H100 PCIe的双插槽NVLink桥接延续了上一代的A100 PCIe,因此H100 NVL的NVLink互连带宽为600GB/s仍然比通过PCIe 5.0互连(128GB/s)高出4倍以上。H100 NVL由两张H100 PCIe卡组合而成,适用于推理应用高速NVLink连接使得显存容量高达188GB以满足大型语言模型的(推理)需求。如果将H100 NVL的NVLink互连视为缩水版的NVLink-C2C,这有助于理解NVLink通过算力单元加速内存访问的原理。
蓝海大脑高性能大模型训练平台利用工作流体作为中间热量传输的媒介,将热量由热区传递到远处再进行冷却。支持多种硬件加速器,包括CPU、GPU、FPGA和AI等,能够满足大规模数据处理和复杂计算任务的需求。采用分布式计算架构,高效地处理大规模数据和复杂计算任务,为深度学习、高性能计算、大模型训练、大型语言模型(LLM)算法的研究和开发提供强大的算力支持。具有高度的灵活性和可扩展性,能够根据不同的应用场景和需求进行定制化配置。可以快速部署和管理各种计算任务,提高了计算资源的利用率和效率。
总结
在计算领域,CPU和GPU是两个关键的组件其在处理数据和执行任务时具有不同的特点和复杂性。随着计算需求的增加,单一的CPU或GPU已经无法满足高性能计算的要求。因此,多元算力的结合和算存互连、算力互连的重要性日益凸显。
作为计算机系统的核心,CPU具有高度灵活性和通用性,适用于广泛的计算任务。它通过复杂的指令集和优化的单线程性能,执行各种指令和处理复杂的逻辑运算。然而随着计算需求的增加,单一的CPU在并行计算方面的能力有限,无法满足高性能计算的要求。
GPU最初设计用于图形渲染和图像处理,但随着时间的推移,其计算能力得到了极大的提升,成为了高性能计算的重要组成部分。GPU具有大规模的并行处理单元和高带宽的内存,能够同时执行大量的计算任务。然而,GPU的复杂性主要体现在其并行计算架构和专业化的指令集,这使得编程和优化GPU应用程序更具挑战性。
为了充分利用CPU和GPU的优势,多元算力的结合变得至关重要。通过将CPU和GPU结合在一起,可以实现任务的并行处理和分工协作。CPU负责处理串行任务和控制流,而GPU则专注于大规模的并行计算。这种多元算力的结合可以提高整体的计算性能和效率,并满足不同应用场景的需求。
算存互连是指计算单元和存储单元之间的高速互联,而算力互连是指计算单元之间的高速互联。在高性能计算中,数据的传输和访问速度对整体性能至关重要。通过优化算存互连和算力互连,可以减少数据传输的延迟和瓶颈,提高计算效率和吞吐量。高效的算存互连和算力互连可以确保数据的快速传输和协同计算,从而提高系统的整体性能。
CPU和GPU在计算领域扮演着重要的角色,但单一的CPU或GPU已经无法满足高性能计算的需求。多元算力的结合、算存互连和算力互连成为了提高计算性能和效率的关键。通过充分利用CPU和GPU的优势,并优化算存互连和算力互连,可以实现更高水平的计算能力和应用性能,推动计算技术的发展和创新。