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

    文章

    5270

    浏览量

    136059
  • 人工智能
    +关注

    关注

    1820

    文章

    50313

    浏览量

    266865
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    华为拥抱AI WAN迈向All Intelligence新阶段

    在2026年云网智联大会期间,华为数据通信产品线运营商领域总裁罗江淦发表题为《拥抱AI WAN 迈向All Intelligence新阶段》的演讲,深入探讨AI时代IP承载网的发展趋势和技术创新。罗
    的头像 发表于 04-16 14:13 198次阅读

    瞄准20W以内汽车小电机市场:英飞凌发布TLE9932与TLE9934 ALL-IN-ONE芯片

    ALL-IN-ONE解决方案。与之前推出的TLE9954QSW40-33相比,这两款新品主要面向超小功率汽车电机应用场景,峰值电流低于2A,可广泛用于空调出风口
    的头像 发表于 04-07 18:01 353次阅读
    瞄准20W以内汽车小电机市场:英飞凌发布TLE9932与TLE9934 <b class='flag-5'>ALL</b>-IN-ONE芯片

    中兴通讯携全栈AI创新成果亮相MWC 2026

    2026年世界移动大会(MWC26巴塞罗那)将于3月2日至5日在西班牙巴塞罗那举行。中兴通讯以“智启未来”为主题,秉持“All in AI,AI for All”核心理念,全面展现“
    的头像 发表于 03-03 15:34 558次阅读

    IoT智能模块高速缓存核心IS61WV204816ALL-12B

    ISSI 32Mbit SRAM IS61WV204816ALL-12B为IoT智能模块提供高速数据缓存,凭借12ns访问速度、1.6V超低功耗及工业级温度范围,确保设备在实时数据处理中的高效可靠运行,显著提升响应速度与续航能力。
    的头像 发表于 02-02 09:57 463次阅读
    IoT智能模块高速缓存核心IS61WV204816<b class='flag-5'>ALL</b>-12B

    全碳化硅 (All-SiC) 有源中点钳位 (ANPC) 拓扑解决方案研究报告

    全碳化硅 (All-SiC) 有源中点钳位 (ANPC) 拓扑解决方案研究报告:设计、性能分析与系统集成 BASiC Semiconductor基本半导体一级代理商倾佳电子(Changer Tech
    的头像 发表于 01-28 11:29 468次阅读
    全碳化硅 (<b class='flag-5'>All</b>-SiC) 有源中点钳位 (ANPC) 拓扑解决方案研究报告

    10 INCH-D-PRIME-MV Amphenol All Sensors 板机接口压力传感器 AXCXL 10 DN P

    空气速度和高度传感器专门设计用于无人驾驶飞行器(UAV)。Amphenol All Sensors无人侦察机传感器具有高精度气速和海拔高度测量功能。该传感器差分传感器技术与增强型温度补偿和线性校正
    发表于 01-22 11:50

    SeaVerse发布全球首个AI Native平台,“All in AI Native”引领AI创作前瞻革命

    建设实现"只通过一句话"就能将所有的创意封装成产品,无论它是Demo,应用,还是网页。开发团队表示,SeaVerse是为了解决现在AI工具多且杂、能力各有不同的问题而出现的,而
    的头像 发表于 01-14 17:41 1483次阅读

    100 PSI-D-PRIME-MV-A6AAQ 板机接口压力传感器 Amphenol All Sensors

    is acceptable. 100 PSI-D-PRIME-MV-A6AAQAmphenol All Sensors EK-02-00Amphenol All Sensors
    发表于 12-26 11:54

    探索PROFET™ +2 12V客户评估套件:硬件设计与软件应用全解析

    探索PROFET™ +2 12V客户评估套件:硬件设计与软件应用全解析 在电子工程师的日常工作中,评估套件是了解和测试新器件性能的重要工具。今天,我们深入探讨PROFET™ +2 1
    的头像 发表于 12-19 15:00 617次阅读

    探索All Sensors EK - 02评估套件:简化传感器设计与测试流程

    在电子工程师的日常工作中,传感器的设计、测试和验证是至关重要的环节。今天,我们要介绍一款来自Amphenol All Sensors的评估套件——EK - 02,它能显著简化All Sensors产品的设计、测试和验证过程。
    的头像 发表于 12-09 15:01 485次阅读

    Amphenol All Sensors BFTM系列基础压力传感器:高精度与紧凑设计的完美结合

    在电子工程师的日常工作中,压力传感器的选择至关重要,它直接影响到整个系统的性能和稳定性。今天,我们就来深入了解一下Amphenol All Sensors公司的BFTM系列基础压力传感器,看看它有哪些独特的优势和特点。
    的头像 发表于 12-09 11:40 930次阅读
    Amphenol <b class='flag-5'>All</b> Sensors BFTM系列基础压力传感器:高精度与紧凑设计的完美结合

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

    在2025澳大利亚All Energy清洁能源盛会上,天合光能以新一代大型储能系统Elementa金刚3和i-TOPCon Ultra组件为核心,重磅展示了专为澳洲市场打造的光储氢解决方案,包括分布式及极端气候应用创新组件、最新一代储能和氢能解决方案,全面赋能本地绿色能源转型升级。
    的头像 发表于 11-02 11:23 851次阅读

    studio编译过程中报错:syntax error: unexpected如何解决?

    2 \"make -j4 all\" terminated with exit code 2. Build might be incomplete. 出现如上报错!!! 请问如何解决?只是在修改代码,改完后编译就出现这个问
    发表于 09-17 06:06

    元能芯:用All-in-One芯片革新电机芯片市场

    引言:一家芯片初创公司的崛起 在成立仅一年多的时间里,元能芯已经凭借独特的All-in-One全集成芯片技术迅速崛起。 从All-in-One芯片创新设计到大功率技术难题的破解,从国内市场的红海竞争
    的头像 发表于 07-07 13:59 1125次阅读
    元能芯:用<b class='flag-5'>All</b>-in-One芯片革新电机芯片市场

    软通动力出席ALL IN 2025人力资源服务展

    此前,6月24-25日,由智享会主办的中国人力资源领域极具影响力的专业展会ALL IN 2025 人力资源服务展在北京隆重启幕。本届展会吸引了超过300家全球领先企业和机构参展,并迎来了6000名人力资源专业人士、企业高管及行业专家共襄盛举。
    的头像 发表于 07-01 09:22 1080次阅读