HCCL概述
集合通信库HCCL(Huawei Collective Communication Library)是基于昇腾AI处理器的高性能集合通信库,提供单机多卡以及多机多卡间的数据并行、模型并行集合通信方案。
HCCL支持AllReduce、Broadcast、AllGather、ReduceScatter、AlltoAll等通信原语,Ring、Mesh、Halving-Doubling(HD)等通信算法,基于HCCS、RoCE和PCIe高速链路实现集合通信。
支持的产品型号
Atlas 训练系列产品
Atlas A2 训练系列产品
Atlas 300I Duo 推理卡
HCCL在系统中的位置
HCCL提供了Python与C++两种语言的接口,其中Python语言的接口用于实现图模式下的框架适配,例如TensorFlow网络基于HCCL的Python API实现分布式优化;C++语言接口用于实现单算子模式下的框架适配,例如HCCL单算子API嵌入到PyTorch后端代码中,PyTorch用户直接使用PyTorch原生集合通信API,即可实现分布式能力。
HCCL软件架构
图1 集合通信库软件架构图
集合通信库软件架构分为三层:
- 适配层,图引擎与单算子适配,进行通信切分寻优等操作,提供通信域管理及通信算子接口。
- 集合通信业务层,包含通信框架与通信算法两个模块:
- 通信框架:负责通信域管理,通信算子的业务串联,协同通信算法模块完成算法选择,协同通信平台模块完成资源申请并实现集合通信任务的下发。
- 通信算法:作为集合通信算法的承载模块,提供特定集合通信操作的资源计算,并根据通信域信息完成通信任务编排。
- 集合通信平台层,提供NPU之上与集合通信关联的资源抽象,并提供集合通信的相关维护、测试能力。
集合通信流程
分布式场景中,HCCL提供了服务器间高性能集合通信功能,其通信流程如图2所示。
服务器间通信过程分为四个阶段: