通信网络
计算机硬件的通信方式大体分为两种类型:机器内通信、机器间通信。
其中:NVLink技术属于机器内通信的一种,通常是GPU与GPU之间的通信,也可以用于CPU与GPU之间的通信。
01 技术背景
算力的提升不仅依靠单张 GPU 卡的性能提升,往往还需要多 GPU 卡组合。在多 GPU 系统内部,GPU 间通信的带宽通常在数百GB/s以上,PCIe总线的数据传输速率容易成为瓶颈,且PCIe链路接口的串并转换会产生较大延时,影响GPU并行计算的效率和性能。 GPU发出的信号需要先传递到PCIe Switch, PCIe Switch中涉及到数据的处理,CPU会对数据进行分发调度,这些都会引入额外的网络延迟,限制了系统性能。
image.png 为此,NVIDIA推出了能够提升GPU通信性能的技术——GPUDirect P2P技术,使GPU可以通过 PCI Express 直接访问目标GPU的显存,避免了通过拷贝到CPU host memory作为中转,大大降低了数据交换的延迟,但受限于PCI Express总线协议以及拓扑结构的一些限制,无法做到更高的带宽。此后,NVIDIA 提出了 NVLink 总线协议。
02 NVLink简介
NVLink 是一种高速互连技术,旨在加快 CPU 与 GPU、GPU 与 GPU 之间的数据传输速度,提高系统性能。 NVLink通过GPU之间的直接互联,可扩展服务器内的多GPU I/O,相较于传统PCIe总线可提供更高效、低延迟的互联解决方案。 NVLink的首个版本于2014年发布,首次引入了高速GPU互连。2016年发布的P100搭载了第一代NVLink,提供 160GB/s 的带宽,相当于当时 PCIe 3.0 x16 带宽(双向)的 5 倍。 之后陆续发布了很多新版本,V100搭载的 NVLink2 将带宽提升到300GB/s ,A100搭载了NVLink3带宽为600GB/s。H100中包含18条第四代NVLink链路,总带宽(双向)达到 900 GB/s,是PCIe 5.0 x16带宽(双向)的7倍。
image.png
image.png NVLink高速互联主要有两种:
第一种是以桥接器的形式实现。
另一种是在主板上集成 NVLink 接口。
03 NVSwitch芯片 为了解决GPU之间通讯不均衡问题,NVIDIA引入NVSwitch。 NVSwitch芯片是一种类似交换机的物理芯片(ASIC),通过NVLink接口可以将多个GPU高速互联到一起,可创建无缝、高带宽的多节点GPU集群,实现所有GPU在一个具有全带宽连接的集群中协同工作,从而提升服务器内部多个GPU之间的通讯效率和带宽。 NVLink和NVSwitch的结合使NVIDIA得以高效地将AI性能扩展到多个GPU。
image.png 第一代 NVSwitch于2018年发布,采用台积电 12nm FinFET 工艺制造,共有 18 个 NVLink 2.0 接口。 目前 NVSwitch 已经迭代至第三代。第三代 NVSwitch 采用台积电 4N 工艺(台积电 4N 工艺专为NVIDIA定制设计,并进行了一系列优化,它与普通台积电5nm节点相比,可实现更好的电源效率与性能,并且密度有所提升)构建,每个 NVSwitch 芯片上拥有 64 个 NVLink 4.0 端口,GPU 间通信速率可达 900GB/s。
image.png
04 GPU-SXM接口
英伟达 GPU 服务器可分为 PCIe 版 和 SXM 版,这是因为英伟达GPU卡间互连的插槽有2种类型:一种是PCIe口,一种是SXM口。
PCIe口是一个相对通用的协议,把 PCIe 版 GPU 卡插到 PCIe 插槽上,就可以和CPU、同一个服务器上其他的GPU卡进行通信,也可以通过网卡与其他的服务器节点上的设备进行通信,这种就是PCIe的通信方式,但是这种传输速度不快。
SXM口是专门用来做卡间互连的,是英伟达为高性能计算和数据中心设计出的更强的计算能力和传输速度。SXM协议是铺在电路板上,SXM协议做卡间互连会更快,SXM接口的GPU通常是存在于DGX系统板上,对NVLink原生支持更好,DGX系统板支持4张GPU-SXM或则8张GPU-SXM,显存带宽比PCIe高一些。
PCIe和SXM都可以用NVLink,但是SXM是更好使用NVLink的方法。
SXM 架构是一种高带宽插座式解决方案,用于将 GPU 连接到 NVIDIA 专有的 DGX 和 HGX 系统。SXM 版 GPU 通过主板上集成的 NVSwitch 实现 NVLink 的连接,不需要通过主板上的PCIe进行通信,它能支持8块GPU卡的互联互通,实现了GPU之间的高带宽。未阉割的A100是600GB/s、H100是900GB/s,阉割过的A800、H800为400GB/s。
image.png
如果想要和SXM一样,有很快的传输速度,可以使用NVlink桥接器实现GPU和CPU之间的通信,但是和SXM不一样的地方就是它只能实现2块GPU卡之间的通信。即 PCIe 版只有成对的 GPU 通过 NVLink Bridge 连接,通过 PCIe 通道进行数据通信。同时,最新的PCIe网络带宽有128GB/s的限制。
审核编辑:黄飞
全部0条评论
快来发表一下你的评论吧 !