ACCL(Alibaba Collective Communication Library)是一款高性能通信库,提供了AllReduce、 AllToAllV、Broadcast等常用集合操作接口以及点到点Send/Recv接口,为多机多卡训练提供高效的通信支持。本文为您介绍如何安装ACCL库。
背景信息
ACCL面向阿里云灵骏架构设计,通过算法与拓扑的深入协同来收获更好的通信性能,充分挖掘高性能RoCE网络的带宽效率、最大化分布式训练系统的可扩展性。
ACCL提供了简单易用的C++ API,语义与MPI等主流集合操作接口相近。ACCL提供了对PyTorch、Horovod 等深度学习框架以及数据并行、模型并行等主流并行训练模式的支持,便于深度学习用户快速使用。
ACCL的关键特性包括:
- 异构拓扑感知,例如节点内PCIE与NVLink/NVSwitch、节点间多轨RDMA网络,分层混合算法设计,充分利用不同互连的带宽。
- 端网协同选路,算法与拓扑协同设计实现无拥塞通信,支撑训练性能上规模可扩展。
- 端侧RoCE LAG感知、在网多流负载均衡,多任务并发、资源争抢时保障整体吞吐。
安装ACCL库
说明 灵骏的计算节点默认已内置安装了ACCL库,通常场景下您无需手动安装ACCL库。
ACCL目前仅支持Linux环境,基本的运行依赖CUDA运行时。在PyTorch中使用ACCL时,需要安装ACCL库与Torch ACCL插件两部分。若需使用高速RoCE网络,还要求环境中部署相关的RDMA库(如libibverbs)。
性能调优
为充分发挥最佳性能,建议使能如下配置。
说明 以下依赖并不影响ACCL的基本功能,仅与性能调优相关。