下载
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
昇腾小AI

接口列表

框架开发者可以通过HCCL提供的C接口进行单算子模式下的框架适配,实现分布式能力。

HCCL提供的C++语言的单算子API如表1所示。
  • 开发者可在“CANN软件安装目录/include/hccl/”目录中查看接口定义。
  • “hccl.h”:通信域管理与通信算子相关接口定义文件,对应的库文件为libhccl.so。
  • 相关的数据类型定义在“CANN软件安装目录/include/hccl/hccl_types.h”文件中。
表1 HCCL(C++)接口列表

分类

接口

简介

通信域管理

HcclCommInitClusterInfo

基于ranktable初始化HCCL通信域。

HcclGetRootInfo

此接口需要在HCCL初始化接口HcclCommInitRootInfoHcclCommInitRootInfoConfig前调用,仅需在root节点调用,用于生成root节点的rank的标识信息(HcclRootInfo)。

HcclCommInitRootInfo

根据rootInfo初始化HCCL,创建HCCL通信域。

HcclCommInitRootInfoConfig

根据rootInfo初始化HCCL,创建具有特定配置的HCCL通信域。

HcclCommConfigInit

初始化通信域配置项,并将其中的可配置参数设为默认值(hcclBufferSize的默认值为200,hcclDeterministic的默认值为0)。

HcclCommInitAll

单机通信场景中,通过一个进程统一创建多张卡的通信域(其中一张卡对应一个线程)。在初始化通信域的过程中,devices[0]作为root rank自动收集集群信息。

HcclCommDestroy

销毁指定的HCCL通信域。

HcclGetRankSize

查询当前集合通信域的rank总数。

HcclGetRankId

获取device在集合通信域中对应的rank序号。

HcclSetConfig

进行集合通信相关配置,当前仅支持配置是否支持确定性计算。

HcclGetConfig

获取集合通信相关配置。

HcclGetCommName

获取当前集合通信操作所在的通信域的名称。

HcclGetCommConfigCapability

该接口用于判断当前版本软件是否支持某项通信域初始化配置。

HcclCreateSubCommConfig

基于既有的全局通信域,切分具有特定配置的子通信域。

集合通信

HcclAllReduce

集合通信算子AllReduce的操作接口,将通信域内所有节点的输入数据进行reduce操作后,再把结果发送到所有节点的输出buffer,其中reduce操作类型由op参数指定。

HcclBroadcast

集合通信算子Broadcast的操作接口,将通信域内root节点的数据广播到其他rank。

HcclAllGather

集合通信算子AllGather的操作接口,将通信域内所有节点的输入按照rank id重新排序,然后拼接起来,再将结果发送到所有节点的输出。

HcclReduceScatter

集合通信算子ReduceScatter的操作接口。将所有rank的输入相加(或其他操作)后,再把结果按照rank编号均匀分散的到各个rank的输出buffer,每个进程拿到其他进程1/ranksize份的数据进行归约操作。

HcclReduce

集合通信算子Reduce的操作接口,将所有rank的input相加(或其他操作)后,再把结果发送到root节点的输出buffer。

HcclAlltoAllV

集合通信域alltoallv操作接口。向通信域内所有rank发送数据(数据量可以定制),并从所有rank接收数据。

HcclAlltoAll

集合通信alltoall操作接口。向通信域内所有rank发送相同数据量的数据,并从所有rank接收相同数据量的数据。

HcclBarrier

将指定通信域内所有rank的stream阻塞,直到所有rank都下发执行该操作为止。

HcclScatter

集合通信域Scatter操作接口,将root节点的数据均分并散布至其他rank。

点对点通信

HcclSend

集合通信域Send操作接口。将当前rank的sendBuf数据发送至destRank。

HcclRecv

集合通信域Recv操作接口。从srcRank接收数据到当前rank的recvBuf。

HcclBatchSendRecv

集合通信域异步批量点对点通信操作接口。调用一次接口可以完成本rank上的多个收发任务,本rank发送和接收之间是异步的,发送和接收任务之间不会相互阻塞。

异常处理

HcclGetCommAsyncError

当集群信息中存在Device网口通信链路不稳定、出现网络拥塞的情况时,Device日志中会存在“error cqe”的打印,我们称这种错误为“RDMA ERROR CQE”错误。

当前版本,此接口仅支持查询通信域内是否存在“RDMA ERROR CQE”的错误。

HcclGetErrorString

解析HCCL_RESULT类型的错误码。

搜索结果
找到“0”个结果

当前产品无相关内容

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