1、传统连接方式
在讨论不同类型 PCIe 总线布局的优缺点之前,首先有必要了解为什么 PCIe 总线上的通信速度变得如此重要。在 2007 年真正开始的 GPU 计算革命之前,PCI 总线通常仅用于与磁盘进行通信或通过 infiniband 等互连与其他节点进行通信。写入磁盘或进行通信的信息驻留在连接到 CPU 的 DRAM (动态随机存取内存)中,因此这种通信通常来自 DRAM,通过 CPU 通过内存控制器集线器 (MCH) 到达 PCI 总线,然后到达相关设备。这种节点的典型 PCIe 总线布局如图 1 所示。
缺点:
1、首先是 GPU 在连接到不同 CPU 插槽的独立内存控制器集线器上分为两个域。连接两个 CPU 的 QPI 链路的性质是,如果 GPU 驻留在不同的 PCIe 域上,GPU 内存之间的直接 P2P 复制是不可能的。因此,从 GPU 0 的内存复制到 GPU 2 的内存需要首先通过 PCIe 链接复制到连接到 CPU 0 的内存,然后通过 QPI 链接传输到 CPU 1 并再次通过 PCIe 传输到 GPU 2。可以想象这个过程在延迟和带宽方面增加了大量的开销。
2、可用的PCIe通道数受限于CPU提供的通道数。对于当前一代的 Intel Haswell CPU,例如 E5-26XXv3 系列,这仅限于 40 个通道。因此,在双插槽系统中,单个节点中最多只能有 4 个 GPU,而在单插槽系统中,如果它们都具有完整的 x16 PCIe 带宽,则只有两个 GPU。要一次使用更多 GPU,需要采用昂贵的多节点配置,并且与 PCIe P2P 通信相比,互连速度相对较慢,例如 infiniband。即使这样,备用 PCIe 通道的数量也限制了可以部署的互连带宽,并且在上面的示例中,在不同 GPU 可以通过节点间链路进行通信的效率方面,会导致不良的异构性和瓶颈。
3、对于可以通过 P2P 副本直接通信的 GPU 对,MCH 的性质也使得它无法充分利用完整的 PCIe 带宽。
2、以 GPU 为中心的方式
使用目前存在于 48、80 和 96 通道设计中的 PCIe (PLX) 开关芯片,可以设计以 GPU 为中心的主板,并最大限度地提高节点内 GPU 到 GPU 的通信潜力,同时保持极高的成本效益。
系统的 PCIe 拓扑基于将两个 8747 PLX 交换机耦合在一起,以允许在单个 CPU 插槽系统中托管 4 个 GPU,每个 GPU 具有全 x16 带宽,同时在所有 4 个 GPU 之间提供 P2P 通信支持。PCIe 拓扑如下图 3所示。