GPU 间的通信方式

通信路径大梳理

  • 同一 NUMA 节点内的 GPU 间通信走 PCIe/P2P 路径,经由 CPU 片上交换结构,但不经过 CPU 核心,数据直接在显存之间拷贝。
  • 同 NUMA 节点内的 CPU 通信直接通过节点内部的共享内存与高速互连(UPI/Infinity Fabric),不依赖外部网络或总线。
  • 不同numa节点的GPU通信,需要CPU参与,在系统总线中通过QPI/UPI通信
  • 不同numa节点,使用nvlink设备连接的GPU 提供 GPU‑to‑GPU 的高速直连。通信时数据直接在 GPU 之间跳过 CPU,CPU 只负责指挥而不当"邮差"
  • 不同物理节点间的GPU通信,且物理节点间使用ether连接。GPU数据将通过CPU,并最终通过以太网传输。
  • 不同物理节点间的GPU,且物理节点使用RDMA连接,GPU数据绕过CPU,直接通过RMDA进行跨物理节点通信。

通信速率对比

通信类型 典型带宽 说明
同一 NUMA 节点内 GPU‑to‑GPU P2P PCIe 4.0 x16 ≈ 32 GB/s<br>PCIe 5.0 x16 ≈ 64 GB/s 通过 PCIe lanes 直连,取决于 CPU 提供的 lanes 速率。
跨 NUMA 节点 GPU‑to‑GPU ≈ 20‑40 GB/s* 数据须通过另一颗 CPU 的互连(UPI/Infinity Fabric),实际会被分割/共享,略低。
NVLink(GPU‑to‑GPU) NVLink 2.0 ≈ 50 GB/s/链路<br>NVLink 3.0 ≈ 75 GB/s/链路<br>多链路可叠加(例如 A100 6 链路≈ 600 GB/s) 专用点对点互连,直接在 GPU 之间,不经过 CPU。
RDMA(GPU‑to‑GPU 跨节点) Infiniband HDR 200 Gb/s≈ 25 GB/s<br>Infiniband NDR 400 Gb/s≈ 50 GB/s 使用 GPUDirect‑RDMA,通过网络传输,CPU 不参与数据拷贝。
以太网(无 RDMA) 25 GbE≈ 3 GB/s<br>100 GbE≈ 12 GB/s<br>400 GbE≈ 50 GB/s 若采用传统 TCP/IP,数据先过主机内存/CPU,延迟高且带宽受限。
相关推荐
Linux-18749 小时前
分布式链路追踪系统之docker-compose安装skywalking
云原生·docker-compose·skywalking·分布式链路追踪系统·应用程序性能监控
生活爱好者!14 小时前
我把NAS当作下载机,docker一键部署qb
运维·docker·容器
隔窗听雨眠14 小时前
Spring Boot在云原生时代的编程范式革新研究
spring boot·后端·云原生
Hui Baby16 小时前
K8S使用CRD和控制器简单应用
云原生·容器·kubernetes
阿里云云原生17 小时前
从“告警驱动”到“巡检驱动”:Agent 智能体如何实现前端体验治理的闭环?
云原生
AOwhisky18 小时前
Python 学习笔记(第十三期)——运维自动化(下·前篇):远程命令执行——paramiko基础篇
运维·python·学习·云原生·自动化·运维开发·paramiko
AOwhisky18 小时前
Python 学习笔记(第十四期)——运维自动化(下·中篇):远程文件传输——paramiko进阶篇
运维·python·学习·云原生·自动化·文件传输·paramiko
做个文艺程序员18 小时前
Linux第22篇:用Docker容器化你的Java SaaS应用:一次构建,随处运行
java·docker·容器
Zhu75821 小时前
在k8s环境部署Apache Superset最新版
容器·kubernetes·apache
小的博客21 小时前
windows下安装Docker Desptop
运维·docker·容器