从2到N的GPU互联来看NVLink与NVSwitch技术

2 x GPU

PCIe

典型的双GPU系统使用 PCI Express 连接到 CPU。GPU以最快的 PCIe 5.0 x 16速度64GBps进行通讯。该链路提供的带宽与 CPU 及其系统内存之间的可用带宽相比也相形见绌。在多 GPU 系统中,如果使用 PCIe Switch,问题会更加复杂。通过PCIe Switch,CPU 内存的有限 PCIe 带宽可以在 GPU 之间共享。这些交互会与总线上的CPU操作竞争,甚至进一步占用可用带宽。


image.png

NVLink

面对PCIe的瓶颈,NVLink技术应运而生。NVLink是一种高速的点对点连接接口,旨在提供高带宽和低延迟的通信通道,性能参见下表。

image.png

NVLink技术使GPU无需通过PCIe总线即可访问远程GPU内存,如下图所示。XBAR的采用让GPU / SM内核能够在L2高速缓存和高带宽GPU内存(HBM2)上交换数据,而NVLink实现了XBAR之间的有效桥接,使得跨GPU内存数据交换有一条高速的信息通道。


image.png

以V100 GPU和Second Generation NVLink为例,V100 最多可采用六个NVLink,GPU之间的双向带宽可达300 GBps。使用第4代NVLink的H100 GPU,则可以通过18条NVLink实现令人恐怖的高达900 GBps的带宽。


image.png

4 x GPU

当GPU数量来到4块,则可以只通过NVLink实现一种GPU与GPU之间Full Mesh的网状交叉互联结构。且该结构下无需PCIe Switch的介入。(下图以HGX A100 4-GPU方案为例)
[图片上传失败...(image-ddb14f-1688712268485)]

在该方案中,A100 对 A100 点对点通过4条对等 NVLink ,实现了双向200 GBps 带宽,比PCIe Gen4 x16 总线快约 3 倍。同样架构下使用第四代NVLink的H100 对 H100 点对点对等带宽为双向 300 GBps ,比 PCIe Gen4 x16 总线快约 5 倍。


image.png

该方案下的Baseboard可以装在 1U 高液体冷却系统中,以最大化每个机架的 GPU 密度。完全无 PCIe Switch的架构可以直接连接到 CPU ,降低了物料消耗并节省了电源功耗。对于 CPU 更密集的工作负载, 该方案可以与两个 CPU 插槽配对,以提高 CPU 与 GPU 的比率,从而实现更平衡的系统配置。

8 x GPU

NVLink

在HGX-1系统中实现了如下图所示的一种 “hybrid cube mesh” 8 GPU互联结构。每一块GPU都巧妙的利用其6条NVLink与其他4块GPU相连。8块GPU以有限的NVLink数量,实现了整体系统的最佳性能。


image.png

NVSwitch

Hybrid Cube Mesh架构解决了8 块GPU在同一机箱内互联的问题,但从架构图中也可以发现其中存在的些许缺陷:8块GPU之间并非两两互联,每一块GPU只与其他4块GPU相连,且存在带宽不对等的情况。从HGX-2开始,就引入了NVSwitch来解决上述问题。引入NVSwitch也使DGX-2相比DGX-1有了2.4倍的性能提升。
NVSwitch是一款GPU桥接设备(芯片),可提供所需的NVLink交叉网络,以初代NVSwitch为例,每块NVSwitch提供18个NVLink端口,支持直连8块GPU,提供GPU之间300GBps的互联带宽,总交换容量2.4TBps(如下表)。


image.png

NVSwitch端口逻辑模块中的数据包转换使得进出多GPU的流量看似是通过单一GPU的。NVSwitch芯片支持并行运行,以支持数量日益增加的GPU之间的互连。DGX-2中使用6块NVSwitch芯片构建一个8 GPU系统(如下图未覆盖散热模块的3块芯片,左下2块GPU,右上1块NVSwitch,其余6块GPU5块NVSwitch覆盖在散热模块之下)。


image.png

每条NVLink路径将每个GPU连接至每台NVSwitch,流量在所有NVLink和NVSwitch之间交叉。 GPU使用任意对之间的300 GBps双向带宽成对通信(如下图)。


image.png

目前第三代NVSwitch已经发展成为拥有251亿晶体管,晶体管数量超过V100 GPU的庞然大物(如下图),交换容量也达到了7.2TBps。


image.png

16 x GPU

本节的“16 x GPU”互联指单机箱内16块GPU互联。跨机箱16块GPU互联请参考下一章节。
目前开放资料可追溯的单机箱16GPU的系统似乎只有V100 16-GPU 方案。A100 16-GPU在A100 HGX 的spec文档中出现,后续官网却鲜见提及,互联网也未出现公开的实物照片。
V100 16-GPU方案本质上是将两块V100 8-GPU的基板通过NVLink Plane Card(下图DGX机箱分解图最右侧)相互连接构成。


image.png

NVLink Plane Card将两块基板上NVSwitch富余NVLink接口对等连接实现下图效果。


image.png

通过实验数据(下图)可知16块GPU通过2组各6块NVSwitch互联的形式并未引入明显的性能损耗。NVSwitch two hop与one hop的表现几乎一致。


image.png

为什么Nvidia要利用2个NVSwitch底板和12颗NVSwitch芯片来连接16颗GPU,而不是采用更简单的6个NVSwitch芯片连接16颗GPU—即使看起来接口数量完全足够。原因尚不明确。一种猜测是可能16颗GPU芯片和6个NVSwitch连接的话,PCB设计会过于复杂,难以生产;另一种猜测则基于机器结构设计和散热方面的考虑,从前文DGX机箱图看8块GPU与6块NVSwitch构成的base board尺寸已经非常可观,如果在同一块base board上安置16块GPU,base board的长度将变得极其可观。同一散热通道上也将面临4颗250W的GPU以及1颗100W的NVSwitch,这对散热也带来极大的挑战。还有一种可能是模块化和通用性的要求。通过设计图(下图)可以发现上下两块base board可以通用,这对服务器后期维护备件换件带来更多的便利以及经济性。但可能性最高的是6块NVSwitch的交换容量无法满足16块GPU的通讯要求。


image.png

N x GPU

当GPU需求数量再上升一个层级,则需要通过跨服务器的GPU互联技术。

HDR InfiniBand Network

以DGX A100系统为例,在8GPU与6NVSwitch互联架构的基础上,额外通过8块Mellanox ConnectX-6网卡实现跨机箱的GPU互联(如下图)。网卡与GPU以1:1的形式,通过PCIe 4 Switch互联,8块网卡总计提供200GBps的互联带宽。H100系统则升级使用PCIe 5 连接的8块CX-7实现400GBps的带宽。


image.png

NVLink Network

IB网络提供的带宽相较于NVLink和NVSwitch支持的带宽还有明显的差距。为了解决AI大模型对服务器集群中每个 GPU 之间的高速、无缝通信的需求,NVLink Network技术被提出。 HGX H100 8- GPU 能够通过新的 NVLink Network扩展并支持更大的 NVLink 域。
以H100 8-GPU 构建NVLink Network方案为例,4块NVSwitch与8块H100互联,每块NVSwitch富余的NVLink接口以4个一组接入OSFP接口。4块NVSwitch分别提供5,4,4,5个OSFP接口用于与NVLink Network互联。


image.png

使用 HGX H100 8- GPU 和 NVLink Network支持构建的系统节点可以通过OSFP接口、 LinkX 电缆和NVLink交换机连接到其他HGX H100 8- GPU 服务器。此方式最多支持 256 个 GPU NVLink 域,即32台HGX H100 8- GPU服务器256块H100 GPU可通过此方式构成一个超大规模GPU集群。
NVLink交换机(如下图)使用两颗NVSwitch芯片,提供128条NVLink 4代链路及32个OSFP接口,实现了6.4TBps的双向带宽。


image.png

18台NVLink交换机与32台H100 8-GPU服务器构成一个DGX H100 SuperPOD,可以实现57.6TB/s 的NVLink网络双向带宽以及1 ExaFLOP of AI 算力(如下图)。


image.png

通过利用 NVLink Network结构,相较于使用IB网络,H100系统带来了额外的性能提升。


image.png

说明

文中的文字及图片内容多来自下述参考链接以及参考文献。本文主要是对互联网上与本文主题相关的分散零碎内容进行汇总整理,以便读者对纷繁复杂的GPU互联技术及架构有个初步的认知。

参考内容

抱歉由于审核限制,完整的参考链接禁止贴入,读者可自行检索下述关键字获得参考原文信息。

  1. hgx
  2. nvlink
  3. hgx-2-fuses-ai-computing
  4. nvidia-nvswitch-details-at-hot-chips-30
  5. nvswitch-accelerates-nvidia-dgx2
  6. dgx-1-fastest-deep-learning-system
  7. hopper-architecture
  8. nvswitch-leveraging-nvlink-to-maximum-effect
  9. nvlink-pascal-stacked-memory-feeding-appetite-big-data
  10. nvidia-dgx-superpod-a100.pdf
  11. upgrading-multi-gpu-interconnectivity-with-the-third-generation-nvidia-nvswitch
  12. introducing-hgx-a100-most-powerful-accelerated-server-platform-for-ai-hpc
  13. ntroducing-nvidia-hgx-h100-an-accelerated-server-platform-for-ai-and-high-performance-computing
  14. Evaluating Modern GPU Interconnect: PCIe,NVLink, NV-SLI, NVSwitch and GPUDirect
  15. THE NVLINK-NETWORK SWITCH: NVIDIA’S SWITCH CHIP FOR HIGH COMMUNICATION-BANDWIDTH SUPERPODS

你可能感兴趣的:(从2到N的GPU互联来看NVLink与NVSwitch技术)