NVIDIA GPGPU通信架构

NVIDIA GPGPU通信架构

吃果冻不吐果冻皮 2024年07月18日 11:50 四川

以下文章来源于大模型新视界 ,作者Bruce 仗剑走天涯

大模型新视界.

大模型产品、算法、应用

写在前面

此一部分,介绍nvlink、nccl、nvswitch、gpgpu 之间的具体联动关系。侧重于介绍通信系统本身,以及和计算的耦合性,Nvlink & nvswitch system 为 nvidia gpgpu 大规模计算和超大算力的支持可以说是十分重要的,为此有必要单列一章进行分析介绍。

NVLink 之前

传统互联通路的失灵 - PCIE太慢了

PCIe 技术是PCI 技术的扩展,最初由Intel 于2001年公布,原名3GIO(第三代IO),在2002年由PCI-SIG 审核通过,改名为PCI express,此后,每一代带宽都是前一代的2倍,PCIE gen 5 每lane为32Gbps,折合为3938MB/s,gen 5 x16 即为64GB/s。2022年公布PCie gen 6 specification,每lane 带宽为64Gbps,x16 可达1Tbps 以上。

图片

第一代Nvlink 起于pascal,2016年,Pcie 3.0 时期,彼时,gen3 x16的带宽只有128Gbps,也就是16GB/s,而且是机器上所有的设备只能共享这个带宽,而显然对于一机8卡的GPU 高性能计算需求,是远远不够的,如果按GPU 独占带宽,且8卡均衡带宽计算,每卡不过16Gbps(2GB/s),何况NIC 网卡本身也是一个PCIE 的带宽的消费者,算上带宽竞争,则更加寥寥。

P 100 提出的带宽需求是多少?是什么促使NVIDIA 彻底抛弃PCIE,走向了自研高速互联协议呢?

我们查看白皮书,P100的32位浮点计算能力为10.6TFLOPS,也就是说每秒执行10.6 * 10^12 次32位浮点计算,如果每个浮点都是GPU外搬运而来且完全不复用旧数据,则需要10.6 * 10 ^ 3 * 32 Gbps的带宽,40000 GB/s,当然实际上不会如此,数据会有一定程度的复用,这和业务相关。不过显然每卡2GB/s的带宽能力,相差20000倍,约等于用户基于1B 及其结果原地计算20000次,要求用户达到这么高的数据复用是不太现实的。
我们比较一下,2016年推出的nvlink v1 实现了多大的带宽呢?
每GPU 有4个nvlink,每个link 单向20GB/s,每卡双向总带宽达160GB/s,这就显然比Pcie 3 x16 提升了2个数量级的带宽,对用户数据复用的要求也大大降低了。

RDMA 网络的介入 - IB/Mellanox products家族

除去传统的PCIE 通路外,CPU 和 传统的TCP 通路也逐渐显现出GPU 训练的带宽窘境,这比Pcie 带宽出现的更早,在2012年,NVIDIA 在kepler 上就推出了GPUdirect的能力,希望数据传输上bypass CPU,且特别指出了RDMA 的使用是对于GPUDirect 的高性能的保证,后来该能力更多被直接称为GPUDirectRDMA,简称GDR。GDR 至今已经10年了,10年前GPU 高性能领域就已经开始慢慢淘汰TCP,而逐步使用RDMA NIC 作为高性能数据计算的基础网卡。

图片

图片

至2020年,Amphere 支持Mellanox NIC 和 相关产品,NVIDIA 收购Mellanox,GDR带宽都在稳步发展,rdma 网络带宽能力,逐步从10Gbps 发展到如今CX 7的400Gbps。
我们也可以简单看一下IB 规格的历史。

图片

虽然2012年的rdma 还是10Gbps的时代,但已经占据了超级计算机互联的绝大部分,至2009年,世界500强超级计算机中,259个使用千兆以太网作为内部互连技术,181个使用InfiniBand。同期的TCP 带宽暂未找到相关数据。
随着cable 性能的提高,rdma/ib 带宽一路高歌猛进,至今CX7 为NDR * 4 = 400Gbps。而2016年,mellanox 率先提出了在网计算协议SHARP,在自研交换机上率先实现了aggregation reduction,也就是交换机实现reduce 计算,简化网络包数的技术。至2020年,Nvidia 收购 mellanox,sharp v2 已经在mellanox 交换机上实现,至今已实现sharpv3且在quantum 中使用,而NCCL 开始支持sharp 的时间是2019年。具体sharp 的原理与收益我们会在之后的章节说明。

NV-SLI /SLI bridge

在提nvlink 之前,我们还需要了解SLI。一种早期的scaleble interface,SLI 用于早期多显卡互联,SLI 互联的GPU,可以共享存储和计算任务,SLI 互联的桥接部件称为SLI Bridge,简图如下。也是从SLI 为起点,诞生出的nvlink,后来的nvlink 可以认为是SLI的升级版本。至今,NVLINK 在Turing 也重新支持了SLI,但是性能相对低(支持路数较少),之后的nvlink 也不再提到SLI的场景,因此怀疑可能和向前兼容有关。

图片

高速互联设备 - NVLink & NVSwitch

NVLINK

Nvlink 自从pascal 架构提出以来,至今已到第四代。每lane的带宽以及每link的带宽数都在增加。<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

强化学习曾小健

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值