多卡GPU是如何互联通信的

自从GPU出现后,计算机爱好者和发烧友们就一直寻找新的方法来进一步提高系统GPU性能。

在单个GPU性能有限的情况下,将两个或多个GPU连接起来这种在当时看起来非常荒谬的想法竟然渐渐成为提升系统GPU性能的主流方法。

特别是随着游戏、图形应用的发展,以及AI、HPC等新兴应用的助推,多个GPU之间的互联技术得到了快速迭代和发展,如今的GPU互联已经成为系统内非常常见的一种技术。今天我们就来聊聊这些GPU互联的那些技术。

第一个连接多个GPU解决方案:SLI

SLI,全称为 ” 可扩展的链接接口 “( Scalable Link Interface),最早是由 3DFx Interactive 开发。

然而,3DFx Interactive这家公司在2000年破产,NVIDIA公司收购了这家公司并获得了多GPU技术的权利。

于是,在2004年,NVIDIA首次推出了SLI技术版本,同时发布了GeForce 6800 Ultra GPU。该技术允许两个GeForce 6800 Ultra GPU一起工作,以增强游戏时的图形性能。因此,SLI技术迅速在游戏玩家和爱好者中流行起来。

SLI采用主从配置方式在系统中实现使用多个GPU,这种配置的重点是使用一个GPU作为主车,其他GPU作为从卡,SLI能够同时连接4个GPU。

SLI是第一个连接多个GPU的解决方案。但是与所有技术一样,SLI也有各种优点和局限性。SLI配置必须选择相同型号的兼容GPU。同时还需要分配一个单独的PSU来满足多个GPU的协调要求,导致GPU之间的通信延迟较高,且GPU之间的数据共享缺乏灵活性。

另外,NVIDIA大约在两年前停止了对该技术的支持,为开发NVLink等新技术让路。

SLI与CrossFire:多GPU解决方案之争

虽然NVIDIA的SLI走在了多GPU互联的前面,但也并非没有竞争。

作为NVIDIA GPU市场上多年的老对手,AMD也推出了CrossFire这个技术来参与竞争。

与SLI技术类似,使用CrossFire技术时,用户可选择使用两个或更多显卡进行渲染,从而增加帧数和提高游戏运行效率。

CrossFire技术的一大优点是用户可以使用不同型号的AMD显卡,从而节省成本。

然而,CrossFire也有其自身的优势和挑战,CrossFire经常因其软件堆栈而受到批评,一些用户发现该软件堆栈不如NVIDIA SLI可靠且配置更复杂。

尽管存在这些差异,但这两种技术都致力于实现相同的目标:增强游戏和消费者图形体验。它们在处理更高级、数据密集型任务方面的局限性最终将为 NVLink等下一代解决方案铺平道路。

随着2010年代的到来,计算领域开始发生巨大变化。人工智能 (AI)、高性能计算(HPC)和大数据分析的兴起需要更强大的多GPU解决方案。很明显,最初设计时考虑到游戏和消费者工作负载的SLI不足以满足这些计算密集型任务。NVIDIA需要一个新的GPU互联技术。

双GPU卡:多GPU计算的独特存在

虽然SLI和CrossFire等技术专注于连接多个独立GPU,但还有另一种不太常见或者可以说是奇葩的多 GPU配置方法:双GPU卡。

这些专用显卡在单个PCB(印刷电路板)上安装了两个GPU核心,有效地充当单张卡上的SLI或CrossFire 设置。NVIDIA GeForce GTX 690和AMD Radeon HD 6990等卡是这种方法的流行示例。

双GPU卡具有多种优势, 他们通过将两个GPU压缩到一个卡槽中来节省空间,这使得它们对小型PC很有吸引力。同时他们还无需将单独的卡与外部连接器连接起来,从而简化了设置。

然而,这些双GPU卡散热是一个重大问题,可以说每一个卡都是一个”小火炉”。通常这种配置方式需要先进的冷却解决方案。同时功耗也很高,需要强大的电源来提供稳定的电流。

双GPU卡的方式看起来是一种”两全其美”的解决方案,将多GPU设置的原始功能与单卡的简单性结合在一起。然而,由于其高成本和相关的技术挑战,双GPU卡经常被视为鸡肋产品。

随着NVLink等多GPU技术不断发展以提供更高的带宽和更低的延迟,对双 GPU卡的需求已经减少。尽管如此,它仍然是GPU发展史上一个独特的存在。

NVLink 的诞生

NVLink是2017年随NVIDIA Volta架构推出的技术。这项技术不仅仅是SLI技术的升级,而且是对GPU如何互连的根本性重新思考

NVLink提供了更高的带宽(最新版本高达900 GB/s)、更低的延迟以及允许GPU之间更复杂和大量互连的网状拓扑。此外,NVLink引入了统一内存的概念,支持连接的 GPU 之间的内存池,这对于需要大型数据集的任务来说是一个至关重要的功能。

SLI与NVLink有何区别

乍一看,人们可能会认为NVLink是SLI的简单升级,但这过于武断了。虽然这两种技术都旨在连接多个GPU,但NVLink的设计考虑了不同的受众。它专为科学研究、数据分析,尤其是人工智能和机器学习应用而设计。更高的带宽、更低的延迟和统一的内存使NVLink成为应对当今计算挑战的更加灵活和强大的解决方案。

虽然NVLink和SLI两者均由Nvidia开发,但存在一些差异。SLI按照主从关系原理运行,而NVLink通过网状网络运行。结果,SLI中形成了NVLink中不存在的数据瓶颈。

采用网状网络开发的并行连接可增强GPU的性能。因此,多个GPU作为一个单元,有助于提供增强的处理能力。连接的GPU拥有自己的内存,从而增加了系统的总可用内存。NVLink桥还支持20至30 GB/s 的带宽,为4个GPU 的设置提供超过100GB/s 的速度。

网状网络消除 GPU之间的层级关系。计算数据因此连接到每个GPU的节点,从而提高了整体渲染速度。因此,150至200GB/s的带宽也可以实现。与SLI 相比,NVLink的延迟非常低。

NVLink的技术原理

NVLink代表了多GPU互联技术的逻辑演变,不仅在速度方面,而且在架构设计方面。NVLink的结构由可以双向传输数据的高速数据通道组成。与传统的基于总线的系统不同,NVLink采用点对点连接,有效减少瓶颈并提高数据吞吐量。最新的迭代提供高达900GB/s的带宽,比SLI的功能有了显著增强。

NVLink与众不同的关键功能之一是它支持网状拓扑的能力。与旧技术的菊花链或中心辐射型拓扑相比,网格设置允许GPU之间实现更通用且数量更多的连接。这在数据中心和高性能计算应用程序中特别有用,在这些应用程序中,复杂的数据路由是常态。

统一内存是NVLink的另一个特点。这允许GPU共享公共内存池,从而实现更高效的数据共享并减少在GPU之间复制数据的需要。这对于机器学习和大数据分析等应用程序来说是一个巨大的推动,在这些应用程序中,大型数据集通常超过单个GPU的内存容量。

NVLink还改善了延迟,这是任何高性能计算设置中的一个关键因素。较低的延迟可确保GPU之间更快的数据传输和同步,从而实现更高效的并行计算。这是通过NVLink的直接内存访问 (DMA) 功能实现的,允许GPU直接读写彼此的内存,而不需要CPU的参与。