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

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

3天内不再提示

使用NCCL 2.12将所有all2all性能翻倍

星星科技指导员 来源:NVIDIA 作者:Karthik Mandakolathur, 2022-04-02 14:12 次阅读

集体通信是现代分布式人工智能培训工作(如推荐系统和自然语言处理)的一个关键性能组成部分。

NVIDIA Collective Communication Library ( NCCL )是一个 Magnum IO 库,可实现 GPU 加速的集体操作:

集合

全部减少

广播

减少

减少分散

点对点发送和接收

NCCL 具有拓扑意识,经过优化,可通过 PCIe 、 NVLink 、以太网和 InfiniBand 互连实现高带宽和低延迟。 NCCL GCP 插件 和 NCCL AWS 插件 通过自定义网络连接,在流行的云环境中实现高性能 NCCL 操作。

NCCL 版本一直致力于提高集体沟通绩效。这篇文章主要关注 NCCL 2.12 版本带来的改进。

结合 NVLink 和网络通信

NCCL 2.12 中引入的新功能称为 PXN ,称为 PCI × NVLink ,因为它使 GPU 能够通过 NVLink 然后通过 PCI 与节点上的 NIC 通信。这不是使用 QPI 或其他无法提供全部带宽的 CPU 协议通过 CPU 。这样,即使每个 GPU 仍然尽可能多地使用其本地 NIC ,但如果需要,它可以访问其他 NIC 。

GPU 在中间 GPU 上准备缓冲区,通过 NVLink 写入,而不是在其本地内存上准备缓冲区供本地 NIC 发送。然后,它通知管理该 NIC 的 CPU 代理数据已就绪,而不是通知其自己的 CPU 代理。 GPU- CPU 同步可能会稍微慢一点,因为它可能必须穿过 CPU 插槽,但数据本身只使用 NVLink 和 PCI 交换机,以保证最大带宽。

pYYBAGJH6T6AZrvjAAHPZQvB0bY591.png

pYYBAGJH6T6AZrvjAAHPZQvB0bY591.png

图 1 。轨道优化拓扑

在图 1 的拓扑中,每个 DGX 系统的 NIC-0 连接到同一个叶交换机( L0 ), NIC-1 连接到同一个叶交换机( L1 ),依此类推。这种设计通常被称为 rail-optimized 。铁路优化网络拓扑有助于最大限度地提高所有流量,降低性能,同时最大限度地减少流量之间的网络干扰。它还可以通过轻轨之间的连接来降低网络成本。

PXN 利用节点内 GPU 之间的 NVIDIA NVSwitch 连接,首先将 GPU 上的数据移动到与目的地相同的轨道上,然后在不跨越轨道的情况下将其发送到目的地。这可以实现消息聚合和网络流量优化。

poYBAGJH6UWAYSoPAAK4YVwsqe8319.png

poYBAGJH6UWAYSoPAAK4YVwsqe8319.png

图 2 。从 DGX-A 中的 GPU0 到 DGX-B 中的 GPU3 的消息路径示例

在 NCCL 2.12 之前,图 X 中的消息会穿过网络交换机的三个跃点( L0 、 S1 和 L3 ),这可能会导致争用,并被其他流量减慢。在同一对 NIC 之间传递的消息被聚合,以最大限度地提高有效消息速率和网络带宽。

消息聚合

使用 PXN ,给定节点上的所有 GPU 将其数据移动到给定目的地的单个 GPU 上。这使得网络层能够通过实现新的多接收功能来聚合消息。该功能使远程 CPU 代理能够在所有消息准备就绪后立即将它们作为一个整体发送。

例如,如果节点上的 GPU 正在执行 all2all 操作,并且要从远程节点的所有八个 GPU 接收数据, NCCL 调用具有八个缓冲区和大小的多接收。在发送方方面,网络层可以等待所有八次发送就绪,然后一次发送所有八条消息,这会对消息速率产生显著影响。

消息聚合的另一个方面是,现在在给定目的地的所有 GPU 节点之间共享连接。这意味着要建立的连接更少。如果路由算法依赖于有很多不同的连接来获得良好的熵,这也会影响路由效率。

PXN 提高了所有 2 的性能

pYYBAGJH6UaAI_0cAABFu9rpG4Q741.png

pYYBAGJH6UaAI_0cAABFu9rpG4Q741.png

图 3 。所有 2 跨四个参与流程的所有集体操作

图 3 显示了 all2all 需要从每个进程到其他每个进程的通信。换句话说,在 N – GPU 集群中,作为 all2all 操作的一部分交换的消息数是$ O ( N ^{ 2 })$。

GPU 之间交换的消息是不同的,无法使用 树/环等算法(用于 allreduce ) 进行优化。当您在 GPU 的 100 秒内运行十亿个以上的参数模型时,消息的数量可能会触发拥塞、创建网络热点,并对性能产生不利影响。

如前所述, PXN 将 NVLink 和 PCI 通信结合起来,以减少通过第二层脊椎交换机的流量,并优化网络流量。它还通过将多达八条消息聚合为一条消息来提高消息速率。这两项改进都显著提高了所有 2 的性能。

所有 reduce 都基于 1:1 GPU:NIC 拓扑

PXN 解决的另一个问题是拓扑的情况,即每个 NIC 附近都有一个 GPU 。环形算法要求两个 GPU 靠近每个 NIC 。数据必须从网络传输到第一个 GPU ,通过 NVLink 绕过所有 GPU ,然后从最后一个 GPU 退出网络。第一个和最后一个 GPU 必须都靠近 NIC 。第一个 GPU 必须能够有效地从网络接收,最后一个 GPU 必须能够有效地通过网络发送。如果只有一个 GPU 靠近给定的 NIC ,则无法关闭环,必须通过 CPU 发送数据,这可能会严重影响性能。

有了 PXN ,只要最后一个 GPU 可以通过 NVLink 访问第一个 GPU ,它就可以将数据移动到第一个 GPU 。数据从那里发送到 NIC ,将所有传输保持在 PCI 交换机的本地。

这种情况不仅与每个 PCI 交换机具有一个 GPU 和一个 NIC 的 PCI 拓扑有关,而且当 NCCL 通信器仅包含 GPU 的子集时,也可能发生在其他拓扑上。考虑具有 nVLink 超立方体网格的 8x GPU 互连的节点。

pYYBAGJH6UmAb1W9AAD--ai_XBA379.png

pYYBAGJH6UmAb1W9AAD--ai_XBA379.png

图 4 。 NVIDIA DGX-1 系统中的网络拓扑

图 5 显示了当通信器包括系统中的所有 8x GPU 时,利用拓扑中可用的高带宽 NVLink 连接可以形成的环。这是可能的,因为 GPU0 和 GPU1 共享对同一本地 NIC 的访问。

poYBAGJH6UqAEjcSAADvGdO886I478.png

poYBAGJH6UqAEjcSAADvGdO886I478.png

图 5 。 NCCL 使用的环形路径示例

通讯器只能包含 GPU 的一个子集。例如,它可以只包含 GPU 0 、 2 、 4 和 6 。在这种情况下,如果不穿过轨道,就不可能创建环:从 GPU 0 进入节点的环必须从 GPU 2 、 4 或 6 退出,这些环不能直接访问 GPU 0 ( NIC 0 和 1 )的本地 NIC 。

另一方面, PXN 允许形成环,因为 GPU 2 可以在通过 NIC 0 / 1 之前将数据移回 GPU 0 。

这种情况在模型并行性中很常见,具体取决于模型的拆分方式。例如,如果一个模型在 GPU 0-3 之间拆分,则另一个模型在 GPU 4-7 上运行。这意味着 GPU 0 和 4 负责模型的同一部分,并且在所有节点上创建了一个 NCCL 通信器,其中包含所有 GPU 0 和 4 ,以执行相应层的所有 reduce 操作。没有 PXN ,这些通讯器无法有效地执行所有 reduce 操作。

到目前为止,实现高效模型并行的唯一方法是在 GPU 0 , 2 , 4 , 6 和 1 , 3 , 5 , 7 上拆分模型,这样 NCCL 子通信程序将包括 GPU [0 , 1]、[2 , 3]、[4 , 5]和[6 , 7],而不是[0 , 4]、[1 , 5]、[2 , 6]和[3 , 7]。新的 PXN 特性为您提供了更大的灵活性,并简化了模型并行性的使用。

pYYBAGJH6UuAcFsyAACamqYFxno486.jpg

pYYBAGJH6UuAcFsyAACamqYFxno486.jpg

图 6 。 NCCL 2.12 PXN 性能改进

图 6 对比了在使用和不使用 PXN 的情况下完成所有集合操作的时间。此外, PXN 为所有 reduce 操作提供了更灵活的 GPU 选择。

总结

NCCL 2.12 版本显著提高了所有 2 所有通信集体性能。 Download 最新的 NCCL 版本,并亲身体验改进后的性能。

关于作者

Karthik Mandakolathur 是 NVIDIA Magnum IO 的产品经理,专注于加速分布式 AI 、数据分析和 HPC 应用。凭借 20 多年的行业经验, Karthik 曾在 Broadcom 和 Cisco 担任高级工程和产品职务。他在沃顿商学院获得工商管理硕士学位,在斯坦福大学获得工商管理硕士学位,在印度理工学院获得工商管理学士学位。他在高性能交换架构领域拥有多项美国专利。

Sylvain Jeaugey 是 NVIDIA 的高级软件工程师,自 2015 年创建 NCCL 库以来一直在开发该库。他在大规模分布式计算方面有 15 年的经验。他一直致力于各种 MPI 实现,开发和集成高速网络技术,并设计大型网络结构。

审核编辑:郭婷

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

    关注

    28

    文章

    4718

    浏览量

    128835
  • 人工智能
    +关注

    关注

    1791

    文章

    47059

    浏览量

    238045
收藏 人收藏

    评论

    相关推荐

    案例验证:分析NCCL-Tests运行日志优化Scale-Out网络拓扑

    GPU并行计算中需要大规模地在计算节点之间同步参数梯度,产生了大量的集合通信流量。为了优化集合通信性能,业界开发了不同的集合通信库(xCCL),其核心都是实现 All-Reduce,这也是分布式训练最主要的通信方式。
    的头像 发表于 11-15 14:14 954次阅读
    案例验证:分析<b class='flag-5'>NCCL</b>-Tests运行日志优化Scale-Out网络拓扑

    一夜之间,内容行业和大模型行业被这个All in One产品改变了

    重塑创作工作流,自由画布如何让智能生产力All in One?
    的头像 发表于 11-14 16:55 2356次阅读
    一夜之间,内容行业和大模型行业被这个<b class='flag-5'>All</b> in One产品改变了

    天合光能智慧光储解决方案亮相All Energy展会

    近日,南半球最大的清洁能源展会All Energy在澳大利亚墨尔本展览中心举行。作为全球光储智慧能源解决方案领导者,天合光能(展位号:R101)至尊N型720W在内的多款组件、全新升级的开拓者1P
    的头像 发表于 10-24 10:33 310次阅读

    联想集团公布下一阶段Smarter AI for all愿景

    全球数字经济领导企业联想集团在Tech World上公布了下一阶段Smarter AI for all愿景,并展示了全面的人工智能解决方案、服务和设备组合,为全球千行百业和千家万户带来了转型和切实的投资回报,同时,联想集团还宣布了一系列关键性新技术。
    的头像 发表于 10-17 09:13 460次阅读

    高效先进的全功能工业级All-in-One触控电脑解决方案

    研扬的ACP-1075与ACP-1078工业级All-in-One全功能触控电脑,以优雅的设计、跨平台支持和灵活部署的特点,加速了从智慧零售到工业网关解决方案等各个领域的项目整合。这两款产品均配备7
    的头像 发表于 09-21 08:01 111次阅读
    高效先进的全功能工业级<b class='flag-5'>All</b>-in-One触控电脑解决方案

    opensuse linux安装好了交叉工具链并且设置了 IDF_PATH,make all的时候会报错为什么?

    opensuse linux,已经安装好了交叉工具链(官网下载的)并且设置了 IDF_PATH。可以make menuconfig,但是make all的时候会报错。我的编译器是装好的, 可以查看到编译器信息
    发表于 06-26 06:57

    一机实现All in one,NAS如何玩转虚拟机!

    操作系统! 今天就与大家分享VirtualBox如何安装Windows 11: 初步准备 1.下载好的系统提前放在NAS里; 2.登录铁威马TOS系统,打开应用中心,
    的头像 发表于 05-28 14:44 591次阅读
    一机实现<b class='flag-5'>All</b> in one,NAS如何玩转虚拟机!

    三星电子开始量产其首款3nm Gate All Around工艺的片上系统

    据外媒报道,三星电子已开始量产其首款3nm Gate All Around(GAA)工艺的片上系统(SoC),预计该芯片预计将用于Galaxy S25系列。
    的头像 发表于 05-08 15:24 588次阅读

    三星新款All-in-One Pro一体机27英寸4K屏亮相,配备Copilo

    三星最新研发的All-In-OneProPC采用了金属框体和轻薄外观设计,底部座身仅厚6.5毫米,旨在为消费者打造更为宽敞的桌面环境。
    的头像 发表于 04-08 16:22 715次阅读

    CubeMx选择开发板开始工程后弹出Initialize all peripherals with their default Mode是怎么回事?

    CubeMx中选择开发板开始工程后弹出Initialize all peripherals with their default Mode?选择yes后无ser
    发表于 03-19 07:28

    中兴终端亮相2024巴塞展Better for All全球愿景发布 推出多款新品

    北京时间2月26日,中兴通讯亮相巴塞罗那2024年世界移动通信大会(MWC2024),发布终端全球品牌愿景“Better for All”,推出由AI驱动的全场景智慧生态3.0,并发布多款创新产品和技术
    的头像 发表于 02-27 09:53 840次阅读

    苹果将成为首个采用其最新2nm工艺的客户

    2nm工艺是台积电采用的革新性GAA(Gate-All-Around)技术,在相同功耗下相比当前最先进的N3E工艺,速度提升10%至15%,或在相同速度下功耗降低25%至30%。这一突破大大提升苹果设备的
    的头像 发表于 01-26 15:51 607次阅读

    用keil5.25做了一个简单的应用,rebuild all files之后报错怎么解决?

    您好,我用keil5.25,做了一个简单的应用,然后rebuild all files之后,出现以下的error,麻烦告诉我怎么做?谢谢。如下: *** Using Compiler \'V5.06
    发表于 01-11 07:11

    make、make all和make clean的使用方法

    刚接触Linux,认为直接make后就完成了编译,没想到编译出的结果存在很大问题,原来是make、make all和make clean的使用方法不对。
    的头像 发表于 01-05 12:32 1917次阅读

    【飞腾派4G版免费试用】图形处理性能测试

    rootvi /etc/sudoers添加一行user1 ALL=(ALL:ALL) ALL Glmark2图形
    发表于 12-18 23:06