摘要:前段时间介绍超节点(最近很火的“超节点”,到底是干啥的?「链接」)的时候,有很多读者追问NVLINK的细节。
前段时间介绍超节点(最近很火的“超节点”,到底是干啥的?「链接」)的时候,有很多读者追问NVLINK的细节。
今天干脆单独开一篇,讲讲NVLink。
█NVLink的诞生背景
上世纪80-90年代,计算机技术高速发展,逐渐形成了英特尔和微软为代表的“Wintel”软硬件体系。
在硬件上,基本上都是围绕英特尔的x86 CPU进行构建。为了能让计算机内部能够更好地传输数据,英特尔牵头设计了PCIe总线。
懂电脑的同学,应该对PCIe非常熟悉。我们的显卡,还有早期的网卡和声卡等,都是插在计算机主板PCIe插槽上工作的。
后来,随着时间的推移,计算机CPU、内存、显卡的性能越来越强大,相互之间传输的数据量也越来越多,PCIe的能力开始出现瓶颈(尽管这个技术也在迭代),传输速率和时延逐渐无法满足需求。
表现最突出的,是显卡(GPU)的通信需求。
本世纪初,游戏产业发展迅速,显卡的升级迭代也很快。当时,为了让游戏体验更加流畅,甚至出现了同时安装2块显卡的情况。
AMD(2006年收购了ATI)那边,把这种多显卡技术叫做Crossfire(交火)。
而英伟达这边,则叫做SLI(Scalable Link Interface,可升级连接界面,也叫“速力”,2007年推出)。
除了个人消费领域之外,科研领域对显卡性能的需求也不断增加。
科学家们使用显卡,不是为了玩游戏,而是为了3D建模,以及执行一些超算任务。
英伟达在不断提升显卡性能的同时,发现PCIe协议严重限制了显卡的对外数据传输。于是,他们开始考虑自创一套体系,用于取代PCIe协议。
2014年,英伟达基于SLI技术,推出了用于GPU高速互连的新协议——NVLink(Nvidia Link)。
英伟达NVLink技术的早期合作对象,是IBM。
为什么不是英特尔或AMD呢?因为PCIe是英特尔牵头搞的,不太想搞NVLink。AMD算是英伟达竞争对手,也不合适。
当时,IBM是超算领域的巨头,而且在技术参数上和英伟达非常匹配,所以双方进行了合作。
英伟达在发布NVLink时指出:
GPU显存的速度快但容量小,CPU内存的速度慢但容量大。因为内存系统的差异,加速的计算应用一般先把数据从网络或磁盘移至CPU内存,然后再复制到GPU显存,数据才可以被GPU处理。
在NVLink技术出现之前,GPU需要通过PCIe接口连接至CPU,但PCIe接口太落后,限制了GPU存取CPU系统内存的能力,对比CPU内存系统要慢4-5倍。
有了NVLink之后,NVLink接口可以和一般CPU内存系统的带宽相匹配,让GPU以全带宽的速度存取CPU内存,解决了CPU和GPU之间的互联带宽问题,从而大幅提升系统性能。
IBM POWER CPU的带宽高于x86 CPU,PCIe瓶颈效应更为明显,所以,他们才非常积极想要和英伟达合作。
在GTC2014上,英伟达CEO黄仁勋对NVLink赞不绝口。他表示:“NVLink让 GPU与CPU之间共享数据的速度快了5-12倍。这不仅是全球首例高速GPU互联技术,也为百亿亿次级计算铺平了道路。”
GTC2014
2014年年底,美国能源部宣布将由IBM和英伟达共同建造两台新的旗舰超级计算机,分别是橡树岭国家实验室的Summit系统和劳伦斯利弗莫尔国家实验室的Sierra系统,引发行业的高度关注。
而NVLink,就是其中的关键技术,用于IBM POWER9 CPU与英伟达GPGPU(基于Volta架构)的连接。根据官方数据,建成的超级计算机算力高达100Pflops。
除了超算之外,在智算领域,NVLink也迎来了机遇。
2012年,AI大佬杰弗里·辛顿带着两个徒弟搞出了深度卷积神经网络AlexNet,赢得ImageNet图像识别大赛,彻底点爆了用GPU进行AI计算这个路线,从而打开了新世界的大门。
在超算和智算双重浪潮的助推下,英伟达的GPU、NVLink、CUDA等技术,开始走向了全面爆发。
█NVLink的技术演进
NVLink能够实现更高的速率、更低的时延,各方面性能都明显强于PCle。
接下来,我们看看它到底是个什么样的连接方式。
英伟达GTC2014发布的是NVLink的首个版本——NVLink 1.0。在2016年(GTC2016)发布的P100芯片上,就搭载了NVLink 1.0技术。
NVLink是一种基于高速差分信号线的串行通信技术。
每块P100 GPU集成了4条NVLink 1.0链路。每条NVLink 1.0链路由8对差分线(8个通道)组成。
NVLink链路和差分线
每对差分线(每个通道)的双向带宽是5GB/s。所以,每条NVLink 1.0链路的双向带宽是40GB/s。
因此,每块P100 GPU的总双向带宽可达160GB/s,是PCIe3 x16(总带宽大约32GB/s)的五倍。
NVLink还支持内存一致性和直接内存访问(DMA),进一步提高了数据传输效率和计算性能。
迄今为止,英伟达陆续推出了NVLink 1.0~5.0,参数我就不一一介绍了,可以看下面的表格:
NVLink1-4代际(图片来自英伟达官网)
再来看看拓扑结构。
最简单的两张卡直接互连,就是杠铃拓扑(barbell topology)。双PCIe GPU之间,可以通过NVLink Bridge设备实现。
杠铃拓扑
NVLink Bridge
四张GPU卡的话,可以使用十字交叉方形拓扑(crisscrossed square topology)。这是一种Full Mesh的网状交叉互联结构。
十字交叉方形拓扑
8张GPU卡,就稍微有点复杂了。
在HGX-1系统中实现了一种 “hybrid cube mesh” 8 GPU互联结构。如下图所示:
每一块GPU都巧妙利用了其6条NVLink,与其他4块GPU相连。8块GPU以有限的NVLink数量,实现了整体系统的最佳性能。
这个图看上去有点奇怪。实际上,如果把它以立体的方式呈现,就很清晰了:
就是串联的架构。
当时英伟达发布的超级计算机DGX-1,就是采用了上面这个架构。
2016年,英伟达CEO黄仁勋给刚刚成立的OpenAI公司赠送了世界上第一台DGX-1超级计算机,价值129000美元。
这台DGX-1拥有2颗Xeon处理器和8颗Tesla P100 GPU,整机拥有170TFLOPs的半精度(FP16)峰值性能,还配备了512GB系统内存和128GB GPU内存。
这台机器给OpenAI的早期起步提供了极大帮助,大幅缩短了他们的大模型训练周期。
Hybrid Cube Mesh架构实现了单机内的8卡互连,但也存在一些不足:它属于一种串行连接,8块GPU之间并非两两互联,每一块GPU只与其他4块GPU相连,且存在带宽不对等的情况。
于是,2018年,为了实现8颗GPU之间的all-to-all互连,英伟达发布了NVSwitch 1.0。
NVSwitch,说白了就是“交换芯片”。它拥有18个端口,每个端口的带宽是50GB/s,双向总带宽900GB/s。用6个NVSWitch,可以实现8颗V100的all-to-all连接。
引入NVSwitch的DGX-2,相比此前的DGX-1,提升了2.4倍的性能。
到NVLink 4.0的时候,DGX的内部拓扑结构增加了NVSwitch对所有GPU的全向直连,DGX内部的互联结构得到简化。
2022年,英伟达将原本位于计算机内部的NVSwitch芯片独立出来,变成了NVLink交换机。这意味着,一个计算节点已经不再仅限于1台服务器,而是可以由多台服务器和网络设备共同组成。
目前,NVLink Switch已经发展到4.0版本。
2022年,NVLink 4.0发布时,英伟达把既有的NVLink定义为NVLink-network,然后又专门推出了NVLink-C2C(Chip to Chip,芯片到芯片之间的连接)。
NVLink-C2C是板级互连技术。它能够在单个封装中,将两个处理器连接在一起,变成一块超级芯片(Superchip)。
例如,英伟达的GH200,就是基于NVLink-C2C,将Grace CPU和Hopper GPU连接成Grace Hopper超级芯片。
Grace Hopper平台的架构
目前最新的NVLink代际,是NVLink 5.0,由英伟达在2024年与Blackwell架构一同推出。单GPU可支持多达18个NVLink链接接,总带宽达到1800GB/s,是NVLink 4.0的2倍,是PCIe 5带宽的14倍以上。
具体参数前面表格有,小枣君就不多说了。
█NVL72的整体架构
接下来,我们重点看看基于NVLink 5.0打造的DGX GB200 NVL72超节点。这个超节点的架构非常有代表性。
DGX GB200 NVL72,包含了18个GB200 Compute Tray(计算托架),以及9个NVLink-network Switch Tray(网络交换托架)。如下图所示:
NVL72机柜
每个Compute Tray包括2颗GB200超级芯片。每颗GB200超级芯片包括1个Grace CPU、2个B200 GPU,基于NVLink-C2C技术。
所以,整个机架就包括了36个Grace CPU(18×2),72个B200 GPU(18×2×2)。
8个DGX GB200 NVL72,又可以组成一个576个GPU的SuperPod超节点,总带宽超过1PB/s,高速内存高达240TB。
NVL72机架的9个Switch Tray(网络交换托架),就是9台NVLink Switch交换机。
每台NVLink Switch交换机包括2颗NVLink Switch4芯片,交换带宽为28.8Tb/s × 2。
NVLink Switch
NVL72采用高速铜连接架构设计。
在机架的背框中,有4组NVLink卡盒(NVLink Cartridge),也就是安费诺Paladin HD 224G连接器(每个连接器有72个差分对),负责计算托架、网络托架之间的数据传输。
在这些连接器中,容纳了5000多根节能同轴铜缆(NVLink Cables,带有内置信号放大器),可以提供130TB/s的全对全总带宽和260TB/s的集合通信(AllReduce)带宽。
功耗方面,B200单颗芯片的功耗1000W,1颗Grace CPU和2颗B200组成的超级芯片GB200,功耗达到了2700W。整个DGX GB200 NVL72机架,功耗大约是120kW(重量大约是1.3吨)。
为了确保稳定的供电,NVL72采用了新的增强型大容量母线排设计。升级后的母线排宽度与现有Open Rack Version 3(ORV3)标准相同,但深度更大,显著提高了其电流承载能力。新设计支持高达1400安培的电流流动,是现行标准的2倍。
NVL72是液冷机架式系统,采用了增强型免工具安装(盲配)液冷分配管(歧管)设计,以及新型可自动对准的免工具安装(浮动盲配)托盘连接。不仅可以提供120kW冷却能力,还极大地简化了安装和运维。
对外连接方面,NVL72配置了CX7或CX8网卡,通过400G或800G的IB网络与外部进行Scale Out互联,对应每台compute tray(计算托架)拥有2个OSFP 800G或1.6T端口。
值得一提的是,NVL72还包括BlueField-3数据处理单元(DPU),可以实现云网络加速、可组合存储、零信任安全和GPU计算弹性。
总而言之,GB200 NVL72确实是一个性能猛兽,也是打造万卡、十万卡GPU集群的利器。
凭借自身强大的算力,NVL72在推出市场后,很快引发了抢购热潮。微软、Meta等科技巨头,都进行了疯狂采购。
据悉,GB200 NVL72服务器的平均单价约为300万美元(约合2139万元人民币),较NVL36机柜的平均售价高出66%。英伟达又又又赚得盆满钵满了。
█结语
好啦,以上就是关于英伟达NVLink的介绍。
目前,AI算力建设浪潮仍在持续。
除了英伟达之外,包括AMD、华为、腾讯、阿里等在内的很多公司都在研究和推进自己的节点内部互连(Scale Up)技术标准,也在打造更大规模的GPU集群。
如果大家感兴趣的话,小枣君会另行介绍。
来源:鲜枣课堂一点号