0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

GPU之间是怎么通信互联的呢?

SDNLAB 来源:了不起的云计算 2023-11-10 16:49 次阅读

今天想跟大家一起学习下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开发,但存在一些差异。S****LI按照主从关系原理运行,而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的参与。

NVlink的影响

鉴于人工智能在现代计算中的重要性日益增加,NVLink的优势不仅是渐进式的,而且是变革性的。在AI模型训练和数据创建中,NVLink可实现GPU之间更快的数据传输,从而实现更高效的并行处理。这在处理大型训练数据集时尤其有用,这是一个与人工智能模型训练数据创建的新兴领域密切相关的主题。

随着量子模拟、实时分析和下一代人工智能算法等先进计算的需求不断增长,我们可以期待NVLink的功能进一步增强。无论是带宽的增加还是促进GPU之间更好合作的新功能,NVLink或其后继者无疑仍将是满足未来计算需求的核心。

从SLI到NVLink的过渡是多GPU技术的一个重要里程碑,它反映了NVIDIA 对创新的承诺以及对不断变化的计算环境的敏锐理解。从游戏到人工智能,从消费应用程序到数据中心,NVLink和SLI的发展历程说明了需求对孕育创新、推动技术发展的重要价值。







审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • NVIDIA
    +关注

    关注

    14

    文章

    4597

    浏览量

    101756
  • gpu
    gpu
    +关注

    关注

    27

    文章

    4424

    浏览量

    126724
  • HPC
    HPC
    +关注

    关注

    0

    文章

    279

    浏览量

    23419
  • PSU
    PSU
    +关注

    关注

    0

    文章

    36

    浏览量

    11745

原文标题:一文读懂:多卡GPU是如何互联通信的?

文章出处:【微信号:SDNLAB,微信公众号:SDNLAB】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    NVLink的演进:从内部互联到超级网络

    NVLink是NVIDIA开发的一种高速、低延迟的互联技术,旨在连接多个GPU以实现高性能并行计算。与传统的PCIe总线相比,NVLink提供了更高的带宽和更低的延迟,使得GPU之间
    的头像 发表于 04-13 11:22 573次阅读
    NVLink的演进:从内部<b class='flag-5'>互联</b>到超级网络

    深入探讨常见的GPU系统架构

    同一主机内GPU之间通信:通过NVLink技术,双向带宽达到600GB/s,单向带宽达到300GB/s。
    发表于 04-07 11:35 239次阅读
    深入探讨常见的<b class='flag-5'>GPU</b>系统架构

    NVLink技术之GPUGPU通信

    在多 GPU 系统内部,GPU通信的带宽通常在数百GB/s以上,PCIe总线的数据传输速率容易成为瓶颈,且PCIe链路接口的串并转换会产生较大延时,影响GPU并行计算的效率和性能。
    发表于 03-27 09:40 346次阅读
    NVLink技术之<b class='flag-5'>GPU</b>与<b class='flag-5'>GPU</b>的<b class='flag-5'>通信</b>

    CPU与GPU与TPU之间有什么区别?

    CPU与GPU与TPU之间有什么区别? CPU(Central Processing Unit,中央处理器)是一种通用处理器,被用于各种计算任务,如操作系统运行、数据处理、算法运算等。它是计算机系
    的头像 发表于 12-15 10:10 3840次阅读

    CPU和GPU之间的主要区别

    以下是以表格形式提供的CPU和GPU之间的一些区别:中央处理器图形处理器CPU代表中央处理器。GPU代表图形处理单元。CPU是通用处理器。GPU是专用处理器。CPU更灵活,指令集更大,
    的头像 发表于 12-14 08:28 369次阅读
    CPU和<b class='flag-5'>GPU</b><b class='flag-5'>之间</b>的主要区别

    docker容器与容器之间通信

    Docker是一种轻量级容器化技术,能够将应用程序及其依赖项封装在一个独立、可移植的容器中。而容器化的应用程序通常是以分布式方式设计的,因此实现容器与容器之间通信至关重要。 本文将详细介绍
    的头像 发表于 11-23 09:36 549次阅读

    SIMATIC S7-1500 PLC之间的OUC通信

    OUC(开放式用户通信)适用于SIMATIC S7-1500/300/400PLC之间通信、S7-PLC与S5-PLC之间通信、PLC与
    的头像 发表于 11-15 09:36 586次阅读

    2个esp8266 WiFi模块之间的相互通信

    本教程是关于2个esp8266 WiFi模块之间的相互通信。我将解释方法和代码两个esp8266模块之间的相互通信。我正在做一个很酷的嵌入式项目需要在两个电机
    发表于 09-25 08:29

    聊聊GPU通信技术

    AI 来说,单卡的计算能力就算再强,也是有极限的,这就需要多 GPU 组合。而 GPU 多卡的组合,主要分为单个服务器多张 GPU 卡和多个服务器,每个服务器多张卡这两种情况,无论是单机多卡还是多机多卡,
    发表于 09-21 10:05 448次阅读
    聊聊<b class='flag-5'>GPU</b><b class='flag-5'>通信</b>技术

    NodeMCU和Arduino之间的串口通信

    电子发烧友网站提供《NodeMCU和Arduino之间的串口通信.zip》资料免费下载
    发表于 07-12 09:44 3次下载
    NodeMCU和Arduino<b class='flag-5'>之间</b>的串口<b class='flag-5'>通信</b>

    GPU如何在imx8m plus上工作以及GPU驱动程序如何集成到DRM驱动程序框架中?

    我正在研究 imx8m plus 的 DRM 驱动程序。在linux内核源代码中,我找到了CRTC、Encoder和Connector的驱动源,但是GPU驱动在哪里?我知道 vivante GPU
    发表于 06-08 08:23

    CPU和GPU之间的主要区别

    以下是以表格形式提供的 CPU 和 GPU 之间的一些区别。
    发表于 06-06 15:51 658次阅读

    在UVM中component之间如何通信呢?

    在简单的测试平台里,component之间通过变量或者config_db机制通信是可行的,但是如果在复杂测试平台中依然使用这种耦合性很强的方式通信的话,就不太行了。
    的头像 发表于 05-26 15:07 660次阅读
    在UVM中component<b class='flag-5'>之间</b>如何<b class='flag-5'>通信</b>呢?

    请问双核之间如何通信

    请问双核之间如何通信? 怎么处理双核对外设资源出现竞争的问题?
    发表于 05-26 06:37

    通信技术的应用

    互联网和计算机:通信技术是互联网和计算机的基础,可以通过通信技术实现计算机之间通信
    发表于 05-08 15:39 2623次阅读