当前位置:   article > 正文

NCCL的不足,集合通信库初步调研 NCCL、BCCL、TCCL、ACCL、HCCL

集合通信库

哈哈哈,同学们有没有想过NCCL的不足!

视频分享在这:1.1 NCCL的不足,各种集合通信库初步调研BCCL、TCCL、ACCL、HCCL_哔哩哔哩_bilibili

NCCL的不足可以总结如下:

1、服务器级别的拓扑识别能力有限(服务器内拓扑感知还是很牛皮的)

2、流量监控、信息获取的能力有限

3、缺乏容错的能力

4、只支持GPU(哈哈哈,这个不能说是缺点,毕竟人家就是针对GPU的,但是对于其它芯片厂商,和多种芯片用户确实难受)

5、缺乏针对特定网络的性能优化能力

针对以上不足,各种计划通信库XCCL出现了!

幕后黑手是否基于NCCL扩展是否支持异构通信拓扑感知强化流量监控强化集群容错核心设计目标是否开源
BCCL百度异构通信故障诊断容错性能优化
TCCL腾讯为腾讯星脉网络定制通信库极致优化性能
ACCL阿里不详不详不详面向阿里云灵骏架构设计优化性能
HCCL华为不详不详基于昇腾硬件

不同厂商的集合通信库,就是针对他们网络或者硬件做了定制化。已达到支持特定硬件,定制化性能最优,拓扑感知强化,流量监控,集群容错

百度和腾讯是明确说,基于NCCL扩展,也就是改的NCCL代码,或者在NCCL上加了些东西。但是阿里和华为没有明确说,可能是重写的一套,当然参考NCCL是必然的,NCCL毕竟行业老大。

可惜啊,没找到这些通信库的开源项目,参考意义就小了很多,如果有开源的,一定通知我啊,感谢感谢。

NVIDIA Collective Communications Library (NCCL)

 NVIDIA 集合通信库可实现针对 NVIDIA GPU 和网络进行性能优化的多 GPU 和多节点通信基元。NCCL 提供了 all-gather、all-reduce、broadcast、reduce、reduce-scatter、point-to-point send 和 receive 等例程,这些例程均经过优化,可通过节点内的 PCIe 和 NVLink 高速互联以及节点间的 NVIDIA Mellanox 网络实现高带宽和低延迟。

BCCLBaidu Collective Communication Library

BCCL 基于开源的 NCCL 进行了功能扩展和能力增强,针对大模型训练场景在可观测性、故障诊断、稳定性等方面进行优化,进一步提升集合通信库的可运维能力。同时,BCCL 针对百度智能云的特定 GPU 芯片进行了集合通信性能优化,进一步提升资源利用率。相比 NCCL,BCCL 的关键特性如下:

  • 可观测性:新增集合通信带宽实时统计能力;

  • 故障诊断:新增集合通信 hang 时的故障诊断能力;

  • 稳定性:增强网络稳定性和故障容错能力;

  • 性能优化:提升大模型训练主流 GPU 芯片的集合通信性能。

百度自研的BCCL,可以实现 GPU、昆仑芯等标准 RDMA 设备的互联互通。在已有 AI 算力集群的基础上,构建由GPU、昆仑芯、昇腾等不同芯片混合组成的单一集群。

百度百舸为了实现跨芯的互联互通,使用了CPU转发来实现跨昇腾910B子集群和GPU子集群的连接。

Accelerator抽象,屏蔽硬件差异充分发挥不同芯片的算力效能

Accelerator抽象层面向应用,屏蔽底层芯片在硬件层面的差异,将芯片算子与上层策略解耦开来,芯片厂商仅需要进行各自芯片的算子调优。百度百舸在GPU上沉淀的上层各项策略(比如通信overlap、显存offload、张量并行、数据并行等)都会平滑地迁移到各种芯片上,确保了各种国产芯片在百度百舸上能达到一个非常高的运行效率。

参考资料: 

专为大模型训练优化,百度集合通信库 BCCL 万卡集群快速定位故障

安装BCCL库 - 百舸异构计算平台AIHC | 百度智能云文档

TCCL(Tencent Collective Communication Library)

TCCL(Tencent Collective Communication Library)是一款针对腾讯云星脉网络架构的高性能定制加速通信库。主要功能是依托星脉网络硬件架构,为 AI 大模型训练提供更高效的网络通信性能,同时具备网络故障快速感知与自愈的智能运维能力。TCCL 基于开源的 NCCL 代码做了扩展优化,完全兼容 NCCL 的功能与使用方法。TCCL 目前支持主要特性包括:

双网口动态聚合优化,发挥 bonding 设备的性能极限。

全局 Hash 路由(Global Hash Routing),负载均衡,避免拥塞。

拓扑亲和性流量调度,最小化流量绕行。

TCCL 加速通信库,实现您在腾讯云RDMA环境中多机多卡通信的性能提升。在大模型训练场景,对比开源的 NCCL 方案,TCCL 预计约可以提升 50% 带宽利用率。

定制通信库TCCL。通信库在训练过程中负责管理计算节点间的数据通信。面对定制设计的高性能组网架构,业界开源的GPU集合通信库(比如NCCL)并不能将网络的通信性能发挥到极致,从而影响大模型训练的集群效率。为解决星脉网络的适配问题,我们基于NCCL开发了腾讯高性能集合通信库TCCL(Tencent Collective Communication Library),定制适配星脉网络平台,在AllReduce/AllGather/ReduceScatter等常用通信模式下带来40%的性能加速。在网卡设备管理、全局网络路由、拓扑感知亲和性调度、网络故障自动告警等方面融入了定制设计的解决方案。

参考资料:

高性能计算集群 GPU 型实例安装 TCCL 说明-操作指南-文档中心-腾讯云

ACCL(Alibaba Collective Communication Library)

ACCL(Alibaba Collective Communication Library)是一款高性能通信库,提供了AllReduce、 AllToAllV、Broadcast等常用集合操作接口以及点到点Send/Recv接口,为多机多卡训练提供高效的通信支持。

ACCL面向阿里云灵骏架构设计,通过算法与拓扑的深入协同来收获更好的通信性能,充分挖掘高性能RoCE网络的带宽效率,最大化分布式训练系统的可扩展性。

ACCL提供了简单易用的C++ API,语义与MPI等主流集合操作接口相近。ACCL提供了对PyTorch、Horovod 等深度学习框架以及数据并行、模型并行等主流并行训练模式的支持,便于深度学习用户快速使用。

ACCL的关键特性包括:

  • 异构拓扑感知,例如节点内PCIE与NVLink/NVSwitch、节点间多轨RDMA网络,分层混合算法设计,充分利用不同互连的带宽。

  • 端网协同选路,算法与拓扑协同设计实现无拥塞通信,支撑训练性能上规模可扩展。

  • 端侧RoCE LAG感知、在网多流负载均衡,多任务并发、资源争抢时保障整体吞吐。

参考资料:

安装ACCL库_人工智能平台 PAI(PAI)-阿里云帮助中心

ACCL: Architecting Highly Scalable Distributed Training Systems With Highly Efficient Collective Communication Library | IEEE Journals & Magazine | IEEE Xplore

HCCL(Huawei Collective Communication Library)

HCCL集合通信库( Huawei Collective Communication Library ,简称HCCL)是基于昇腾硬件的高性能集合通信库,提供单机多卡以及多机多卡间的数据并行、模型并行集合通信方案。HCCL支持AllReduce、Broadcast、Allgather、ReduceScatter、AlltoAll等通信原语,Ring、Mesh、HD等通信算法,在HCCS、RoCE和PCIe高速链路实现集合通信。

1、高性能集合通信算法,提升大规模并行计算通信效率

服务器内基础拓扑为Full Mesh互联拓扑,每个Full Mesh互联拓扑内的基础算法为Mesh算法。服务器间为Fat Tree互联拓扑,支持HD、Ring、NHR等通信算法。

2、计算通信统一硬化调度,降低调度开销,优化硬件资源利用率

专用硬件调度引擎和硬件通信原语,实现计算任务与通信任务全硬化调度,降低调度开销,精准控制系统抖动。

3、计算通信高性能并发,计算与通信并发流水执行,系统性能进一步提升

“归约”类集合通信操作( AllReduce 、ReduceScatter 、Reduce)通过随路方式实现,不占用计算资源。计算通信任务并发执行,总执行时长大幅降低。

参考资料:

HCCL-昇腾社区 (hiascend.com)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/800473
推荐阅读
相关标签
  

闽ICP备14008679号