GPU通信技术

  • GPU通信-硬件篇

1.Nvlink/Nvswitch

Nvlink:

NVLink NVIDIA 开发的一种总线及其通信协议,采用点对点结构、串列传输,用于 CPU GPU 之间的连接,也可用于多个 GPU 之间的相互连接。它由强大的软件协议和计算机板上的多对导线组成,能让处理器快速收发共享内存池中的数据。

相比传统的 PCIe 5.0NVLink 速度更快,第四代 NVLink 速度是 PCIe 5.0 带宽的 7 倍多,且能效更高,每传输 1 字节数据仅消耗 1.3 皮焦,能效是 PCIe 5.0 5 倍。

NVSwitch:

NVSwitch 是基于 NVLink 技术的芯片或类似交换机的设备,可连接多个 NVLink,实现单节点内和节点间以 NVLink 能够达到的最高速度进行多对多 GPU 通信。NVLink 交换机配备 144 NVLink 端口,无阻塞交换能力为 14.4TB/s,是首款 ASIC 芯片技术机架级交换机,能够在无阻塞计算结构中支持多达 576 个全连接 GPU,可让 GB200 NVL72 系统中的 72 GPU 用作单个高性能加速器.

使用nvlink/nvswitch的:

HGX(High Performance Computing GPU Accelerator)模组形态,可定制

DGXDeep Learning GPU Accelerator)一体机形态

https://picx.zhimg.com/v2-4d266c922dfe8a86ab27388ea79ab7d9_r.jpg?source=1def8aca

2.PCIE

PCIe 是用于连接计算机主板和各种扩展设备(如显卡、网卡、固态硬盘等)的接口标准。它是 PCI PCI-X 总线的继任者,旨在提供更高的带宽、更好的扩展性和性能。

以我们实验室设备为例,使用PCIe版本3.0,x16通道

3.0版本带宽为15.7GB/s*8bit=128Gbps,若考虑跨机级联、模型并行场景同时使用RDMA时,建议使用200Gbps带宽网卡匹配PCIe带宽速率,5.0版本时PCIe带宽49GB/s*8bit=400Gbps,在预算充足的情况下甚至可配置400Gpbs网卡,以避免在极限场景下网卡成为整体环节中的通信瓶颈。

  • GPU通信-软件篇

1.NCCL技术

NVIDIA Collective Communications Library NVIDIA 开发的一款用于多 GPU 通信的高性能库,在PCle,Nvlink,RDMA间实现较高的通信速度,

能够感知拓扑:根据集群的硬件设备信息来查找/计算每个topo算法下的带宽与时延,并结合通信数据量,选择耗时最小的路径优先

由于TPPP需要依赖集合通信(Collective Communications),需要依赖多种通信原语,涉及点对点、多对多AllGather以及一些场景下的AllReduceReduceScatter等通信原语都能通过NCCL来实现。

这里是一些主流厂家的集合通信库:

2.并行技术:

在需要部署参数量较大的模型但GPU显存不足时,可以应用并行技术实现,以下是常见的并行技术:

a.数据并行 (Data Parallelism)

即将数据集分成多个子集,每个子集分配给不同的计算节点(GPU),每个节点上都有完整的模型副本,每个节点处理不同的数据子集,计算梯度后,通过集合通信(如AllReduce)同步梯度,更新模型参数。

b.张量并行(Tensor Parallelism)

张量并行将模型的张量(如权重矩阵)按维度切分到不同的计算节点上。

将大型张量按行或列切分,每个节点处理切分后的子张量。需要通过集合通信操作(如AllGather或AllReduce)来合并结果。

如我们环境验证中,可以看到大量的AllReduce,用于合并分片在各GPU上的局部计算结果:

c.流水线并行 (Pipeline Parallelism)

流水线并行将模型按层或模块顺序切分成多个阶段,每个阶段分配到不同的计算节点上,形成流水线。将模型按层或模块分成多个阶段,每个阶段在不同的节点上执行。数据在节点间依次传递,形成流水线。

PP的主要流量来自于不同stage进行中间激活值的传递,主要通信原语为:Send/Recv

d.其他如混合并行 (Hybrid Parallelism) 微批次并行 (Micro-Batch Parallelism)等等

由于DP对多卡GPU要求较高,且常用于训练场景,我们受限于硬件资源并未测试,我们分别测试了TP以及PP模式,

e.理论计算:

TP

以我们TP=8时,通信量约为:(2*2*H*S*B+2*2*H*S*B)*L

以我们TP=4&PP=2时,通信量约为:2*H*S*B

我们本次测试使用的是QWQ模型,我们通过打印模型结构可以看到由64个decoder组成,即64层,L=64,结合上述公式去除相同项,可以看到TP=8是TP=4&PP=2的4L倍,由于我们模型L=64,即两者流量理论上相差256倍(粗估)

结合我们测试数据如下:

可以看到在并发10-50间,基本符合这个规律(17*256=4352对比4717、46*256=11776对比10445),但并发超过75以后,速率发生下降,这里没有找到太多线索解释,初步推测可能为显卡瓶颈,欢迎讨论。

优劣势:

TP:

优点:适用于单个张量过大的情况,可以显著减少单个节点的内存占用。

缺点:通信开销较大,特别是在切分维度较多时。

PP:

优点:可以减少单个节点的内存占用,适用于深度模型。

缺点:实现复杂,存在流水线填充和空闲时间,可能导致效率降低.

当并发数不多时,PP可能存在气泡空窗,利用率不如TP,如我们测试并发在50以内时PP略高于TP,当并发数较多时,气泡空窗占满,PP token速率接近或略多于TP模式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值