1. 核心修正:谁是路,谁是车?

RDMA 不是这些硬件之间的“交换渠道”,而是一种交通规则(机制)

我们可以把数据传输比作快递运输


在一次**跨机 GPU 通信(GPUDirect RDMA)**中是这样串联的:

完整路径是:

$$\text{GPU显存 (A)} \xrightarrow{\text{PCIe/NVLink}} \text{网卡 (A)} \xrightarrow{\text{InfiniBand/Ethernet}} \text{网卡 (B)} \xrightarrow{\text{PCIe/NVLink}} \text{GPU显存 (B)}$$

在这个过程中:

  1. CPU (中央处理器)完全被旁路(Bypass)。它只负责最开始发个号令说“开始传吧”,然后就去睡觉或干别的了,不参与搬运数据。
  2. GPU (图形处理器):是数据的源头终点,但 GPU 的计算核心 (CUDA Cores) 不参与通信,只是显存被读取/写入。
  3. PCIe vs NVLink
    • 如果网卡插在 PCIe 插槽上,数据就走 PCIe。
    • 如果用的是 NVIDIA 的超级节点(如 DGX GH200),网卡可能直接通过 NVLink Switch 互联,那就不走 PCIe,速度更快。

3. 深入辨析:NVLink 的特殊地位

NVLinkPCIe/InfiniBand 放在一起提,这是一个非常好的直觉,因为它们都在竞争“数据通道”的角色。

关键区别:

但是在 NVIDIA 的野心中,界限正在模糊:
现在的 GB200 NVL72 架构,实际上是想用 NVLink 技术把 72 张 GPU 连成一张超级大卡,原本需要走 InfiniBand RDMA 的跨机通信,现在在机柜内部直接变成了走 NVLink。

4. 总结

修正后的准确表述应该是:

RDMA 是一种通信机制,它利用网卡 (NIC) 的硬件能力,通过 PCIe 或 NVLink 通道直接读取 GPU/内存中的数据,并通过 InfiniBand 或 Ethernet 网络发送到远端,整个过程不经过 CPU 的干预和内存拷贝。


GPU 显存和显存之间 不仅可以用 NVLink 传输,而且在 CUDA 编程模型中,这种传输甚至可以不表现为“传输(Copy)”,而表现为直接的内存访问(Load/Store)

这里有三个层面的解释,帮你把理解从“物理连接”提升到“编程模型”:

1. 物理层:不仅是传输,更是“合并”

如果两张显卡(GPU A 和 GPU B)之间用 NVLink 连上了:

2. 逻辑层:Peer-to-Peer (P2P) Access

这是 HPC 开发中最关键的概念。

NVLink 的强大之处在于它支持 P2P Direct Access。这意味着 GPU A 的 CUDA Core 可以直接读取或写入 GPU B 的显存地址,就像读写自己的显存一样。

3. 架构层:NVSwitch 的作用

如果只有 2 张卡,它们可以用 NVLink 直连。
但如果你有 8 张卡(比如一台 HGX H800 服务器),它们怎么两两互联?

这时候就需要 NVSwitch 芯片。它就像一个路口的“环岛”或“交换机”。
8 张 GPU 全部连到 NVSwitch 上,任意两张 GPU 都可以通过 NVSwitch 进行 NVLink 通信。
效果:这 8 张 GPU 在逻辑上可以被视为一张拥有超大显存的巨型 GPU


总结与对比

特性 PCIe (传统通道) NVLink (高速通道)
主要用途 CPU与GPU通信,网卡通信 GPU与GPU之间互联 (甚至 CPU-GPU,如 Grace Hopper)
带宽 (双向) ~64 GB/s (Gen5 x16) 900 GB/s (H100 NVLink)
延迟 较高 (微秒级) 极低 (纳秒级)
语义 主要是 Copy (搬运) 支持 Load/Store (直接读写地址)
在 AI 中的地位 瓶颈 生命线 (用于 Tensor Parallelism)

回到你的应用场景(Chunked Prefill / PD 分离):