幕后黑手 | 是否基于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 网络实现高带宽和低延迟。
BCCL(Baidu 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)-阿里云帮助中心
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)通过随路方式实现,不占用计算资源。计算通信任务并发执行,总执行时长大幅降低。
参考资料:
标签:NCCL,ACCL,BCCL,通信,Library,TCCL,集合 From: https://blog.csdn.net/lianghuaju/article/details/139470668