GPU和存储系统的数据交互及通信瓶颈与优化方案介绍

AI世纪 2025-05-05
算力 2025-05-05

本文主要介绍:GPU和存储系统的数据交互,GPU和GPU在节点内和节点间的通信瓶颈和对应优化方案。主要涉及系列,、等核心技术介绍。1,存储系统到GPU显存的数据流动

名词解释:

1.1,GPU与存储系统的通信

经过系统内存中转的GPU数据加载流程,涉及两次数据拷贝。

第一次拷贝:存储系统 (NVMe) →系统内存(Host )

原因:GPU无法直接访问存储设备(如NVMe SSD),必须通过CPU和系统内存中转。

技术实现:使用 DMA 技术,通过PCl-e总线,由存储控制器直接将数据从NVMe 拷贝到系统内存,无需CPU干预。

第二次拷贝:系统内存 → GPU显存 ( )

原因:GPU只能访问自己的显存,需通过PCl-e总线从系统内存加载数据。

技术实现:使用 CUDA的拷贝函数,通过PCIe总线将系统内存中的数据,拷贝到GPU显存中。

问题:数据经过系统内存中转,明显存在冗余的数据拷贝过程。

1.2,优化版,

是什么?

是 系列技术之一, 经过多年的发展,如今已经包含四种技术,分别是:

1) 2) RDMA 3) P2P (peer to peer) 4) for Video

功能和优势?

提供本地存储 (NVMe) 或者远程存储 (NVMe over ) 与GPU显存的直接通路,减少不必要的系统拷贝。它可应用网卡NIC和存储系统附近的DMA引擎,直接向GPU显存写入/读取数据。这种技术减少了CPU和系统内存的瓶颈,显著提升了数据密集型应用的性能。

2,GPU和GPU之间的数据流动

2.1,有共享内存参与的GPU-GPU间数据流动:

1)GPU0 通过PCle将显存中的数据,拷贝到系统内存中的固定共享内存。

2)从共享内存通过PCIe总线,将数据拷贝到GPU1显存中。

利用此方案将数据从GPU0传送到GPU1,整个过程发生多次数据拷贝,直观上有些是冗余拷贝。

2.2,优化版 P2P(Peer-to-Peer)

P2P 是什么?

P2P是一种允许GPU 之间直接进行数据传输,绕过 CPU提高数据传输效率,加速大规模数据处理和并行计算的一种技术。使用CUDA 和 就可以支持原生支持P2P技术,进而实现GPU之间直接通信。

P2P 功能和优势?

P2P支持GPU之间通过 (PCIe或) 直接进行数据拷贝。如果两个GPU连接到同一PCIe总线,P2P允许每个GPU直接访问自己与对方的GPU显存,而不用通过CPU辅助。即将数据从源GPU拷贝到目标GPU不需要系统内存缓存中间数据。此方法相比与之前方案,在执行相同任务时数据拷贝动作减少一半。

可优化问题:

P2P技术虽然实现了GPU到GPU之间(点对点)的直接数据拷贝,但是多个GPU通过PCIe总线直接与CPU相连,随着AI对HPC要求越来越高,PCIe的通信方式,逐渐成为数据流动的瓶颈。

PCle 通信带宽表格:全双工模式下,采用 128b/130b 编码。

PCIe 版本

传输速率

单通道(x1)带宽

双通道(x2)带宽

四通道(x4)带宽

八通道(x8)带宽

十六通道(x16)带宽

3.0

8 GT/s

0.98 GB/s

1.97 GB/s

3.94 GB/s

7.88 GB/s

15.75 GB/s

4.0

16 GT/s

1.97 GB/s

3.94 GB/s

7.88 GB/s

15.75 GB/s

31.51 GB/s

5.0

32 GT/s

3.94 GB/s

7.88 GB/s

15.75 GB/s

31.51 GB/s

63.02 GB/s

6.0

64 GT/s

7.88 GB/s

15.75 GB/s

31.51 GB/s

63.02 GB/s

126.03 GB/s

2.3,高配版+

什么是:

是一种高速、高带宽的互连技术,用于连接多个GPU 之间或连接 GPU 与其他设备 (如CPU、内存等)之间的通信技术。

功能和优势:

实现设备间的高速数据传输,支持 GPU 之间点对点直接通信和数据共享,可进行大规模并行计算。优势在于能提供极高的带宽,比如 A100 Core GPU 通过 互联可达到 600GB/s 的双向带宽,远高于传统 PCIe 总线。同时具有极低的延迟,能让多 GPU 协作更紧密,显著提升计算性能。

解决了单节点小规模计算设备之间的高效通信,比如8个GPU之间通过混合立方网格拓扑结构相连,保证了每两两个GPU之间的传输效率是一致的。

版本和带宽:

问题:当GPU个数大于最大连接数量时,这种的拓扑结构就cover不住了。大规模多GPU或者多节点之间的互联通信,需要上点硬科技。

是什么?

是 推出的一种高速互联芯片,专为多GPU系统设计,用以简化多GPU间实现全连接的拓扑设计,实现 GPU 之间的高效通信。它是 技术的扩展,旨在解决大规模多 GPU 系统中的通信瓶颈问题。

功能和优势?

类似于PCIe使用PCIe 用于拓扑的扩展,使用实现了的全连接。作为节点交换架构,支持单节点中16个GPU全互联,并且支持8对GPU同时通信。

高带宽:每条 的带宽可达300 GB/s (双向),远高于PCIe 的带宽(PCIe 4. 0 ×16的带宽为32GB/S)。

全互联拓扑: 支持全互联拓扑,每个 GPU 都可以直接与其他 GPU通信,避免了通信瓶颈。

可扩展性: 可以支持大规模多 GPU系统,并且随着 GPU 数量的增加,通信性能不会显著下降。

版本和带宽:

3,GPU之间的跨机通信3.1,经典的跨机通信

如果涉及GPU的跨机通信,不支持RDMA的方法需要借助系统内存,才能完成数据传输,具体有5个步骤:

1,在源节点中把数据从源GPU拷贝到host-系统内存中。

2,在源节点中把数据从host-系统内存拷贝到网卡驱动缓冲区

3,通过网络传输把数据从源节点传送到目标节点的网卡驱动缓冲区

4,在目标节点将数据从网卡驱动缓冲区传送到host-系统内存

5,在目标节点通过PCIe总线将数据从host-系统内存拷贝到目标GPU显存

PS:(Host- 系统内存也称为 或Page- 是主机内存Host 中的一种特殊内存区域,它被”固定”在物理内存中,不会被操作系统换出到磁盘。因此GPU 可以通过DMA ( ) 直接从主机内存中读取或写入数据,而不需要 CPU的干预。长被用于频繁的 CPU-GPU数据传输)

3.2, RDMA 优化

RDMA 是什么?

系列技术之一, 该技术可减少在host-系统内存中的中间数据拷贝,可极大提升通信效率。如果有 RDMA加持,上述5个步骤可简化至一步完成。

RDMA 功能和优势?

RDMA 支持GPU间快速跨机通信,可使外围PCIe设备直接访问GPU显存。它能减轻CPU负载,同时也能减少不必要的通过系统内存进行的数据拷贝。

实现方式:

1) 是最早实现的RDMA协议,广泛应用于高性能计算中。2)RoCE (RDMA over ) 是一种允许通过以太网进行 RDMA的网络协议。3)iWARP允许在TCP上执行RDMA的网络协议。

4,总结:

通过 技术实现了存储设备和GPU显存的直接访问,数据加载效率大大提升。通过 P2P技术实现了GPU之间互联互通,可以快速访问。 用于改善PCIe带宽瓶颈问题, 解决多个GPU设备拓扑扩展问题。 RDMA 解决多节点GPU之间通信问题。

Q/A:在 技术中 P2P和 RDMA都是实现GPU之间的高效通信,两者之间的区别和联系?

在实际系统中,两者可结合使用以最大化性能:

1,单节点内:通过 + P2P 实现 GPU 间高速通信。

2,跨节点间:通过 + RDMA 实现低延迟数据传输。

例如,在训练千亿参数模型时,节点内8个GPU 使用 P2P同步梯度;节点间通过 RDMA将聚合后的梯度广播到其他服务器。

所以: P2P 是单节点多 GPU 通信的基石,依赖高速直连硬件(/PCIe)优化本地协作。 RDMA 是跨节点 GPU 通信的核心,依赖RDMA网络实现超低延迟的远程数据直达。两者共同支撑了从单机到超大规模集群的GPU高效协同,是AI训练、HPC等领域的关键技术。

参考:

[1] https://developer.nvidia.com/blog/gpudirect-storage/
[2] https://developer.nvidia.com/blog/machine-learning-frameworks-interoperability-part-2-data-loading-and-data-transfer-bottlenecks/
[3] https://images.nvidia.cn/content/pdf/dgx1-v100-system-architecture-whitepaper.pdf
[4] https://www.nvidia.com/en-us/data-center/nvlink/

GPU