文档
注册

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网络在昇腾AI处理器执行分布式优化;C++语言接口用于实现单算子模式下的框架适配,实现分布式能力,例如HCCL单算子API嵌入到PyTorch后端代码中,PyTorch用户直接使用PyTorch原生集合通信API,即可实现分布式能力。

HCCL执行流程

分布式场景中,HCCL提供了服务器间高性能集合通信功能,其执行流程如图1所示。

图1 分布式场景集合通信流程

服务器间通信过程分为四个阶段:
  1. 通信域初始化:获取必要的集合通信配置参数并初始化通信域。

    通信初始化阶段不涉及NPU设备之间的交互。

  2. 建立通信连接:建立socket连接并交换通信两端的通信参数和内存信息。

    建立通信连接阶段,HCCL根据用户提供的集群信息并结合网络拓扑与其他NPU设备建链并交换用于通信的参数信息。如果在指定时间内(建链超时时间,默认120s,可通过环境变量HCCL_CONNECT_TIMEOUT配置)未得到其他NPU设备的及时响应,会上报建链超时错误并退出业务进程。

  3. 执行通信操作:通过Notify机制同步设备执行状态,传递内存数据。

    通信操作执行阶段,HCCL会根据通信算法编排Notify/SDMA等任务,并通过runtime下发给昇腾设备任务调度器,设备根据编排信息调度并执行任务。其中Notify类的任务用于卡间同步,Notify wait会阻塞任务流执行直到对应的Notify record到达,以确保后续的通信操作执行时彼此的内存处于ready状态。

  4. 通信域销毁:销毁通信域,释放通信资源。
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词