昇腾社区首页
中文
注册
开发者
下载

接口列表

通信算子开发接口分为控制面接口与数据面接口。
  • 控制面接口:提供拓扑信息查询、通信资源管理等功能。
  • 数据面接口:提供本地操作、算子间同步、通信操作等数据搬运和计算功能。
开发者可在“CANN软件安装目录/include/hccl/”目录中查看通信算子开发接口的定义。
  • hccl_rank_graph.h:控制面的拓扑信息查询接口定义文件。
  • hccl_res.h:控制面的资源管理定义文件。
  • hcomm_primitives.h:数据面接口定义文件。

控制面接口

  • 拓扑信息查询

    接口

    简介

    HcclGetRankId

    获取Device在指定通信域中对应的rank序号。

    HcclGetRankSize

    查询指定通信域的rank数量。

    HcclRankGraphGetLayers

    查询包含当前rank的拓扑层级编号列表以及拓扑层级数量。

    HcclRankGraphGetRanksByLayer

    给定通信域和拓扑层级编号,返回该层级下本rank所在拓扑实例的所有rank编号列表以及rank数量。

    HcclRankGraphGetRankSizeByLayer

    给定通信域和拓扑层级编号,返回该层级下本rank所在拓扑实例的rank数量。

    HcclRankGraphGetTopoTypeByLayer

    给定通信域和拓扑层级编号,返回本rank所在拓扑层级中的拓扑类型。

    HcclRankGraphGetInstSizeListByLayer

    给定通信域和拓扑层级编号,查询该层级下的拓扑实例数量,以及每个实例包含的rank数量。

    HcclRankGraphGetLinks

    给定通信域和拓扑层级编号,查询源rank和目的rank之间的通信连接信息。

    HcclGetHeterogMode

    给定通信域,获取通信域的异构组网模式。

  • 通信域资源管理

    接口

    简介

    HcclGetHcclBuffer

    获取通信域中的HCCL通信内存,首次调用时将在Device侧进行内存初始化分配,后续调用将复用已分配内存,不会重复初始化。

    HcclThreadAcquire

    基于通信域获取通信线程。

    HcclThreadAcquireWithStream

    基于已有runtime stream获取指定notifyNum的通信线程资源。

    HcclChannelDescInit

    初始化通信通道描述列表。

    HcclChannelAcquire

    基于通信域获取多个通信通道,如果通信域中没有对应的通信通道则直接创建。

    HcclChannelGetHcclBuffer

    获取指定channel对端的HCCL通信内存。

    HcclEngineCtxCreate

    指定通信域与通信引擎,使用特定标签创建对应的通信引擎上下文。

    HcclEngineCtxGet

    指定通信域和通信引擎,通过通信引擎上下文标签获取对应的通信引擎上下文。

    HcclEngineCtxCopy

    指定通信域、通信引擎与通信引擎上下文标签,将Host侧内存数据拷贝至对应的通信引擎上下文中。

数据面接口

  • 本地操作

    接口

    简介

    HcommLocalCopyOnThread

    提供本地内存拷贝功能,将src指向的长度为len的内存数据,拷贝到dst所指向的相同长度的内存中。

    HcommLocalReduceOnThread

    提供本地归约操作,将src指向的长度为count*sizeof(dataType)的内存数据,与dst所指向的相同长度的内存数据进行reduceOp操作,并将结果输出到dst中。

    HcommThreadNotifyRecordOnThread

    向其他Thread发送同步信号,主要用于多Thread之间的同步等待场景。

    HcommThreadNotifyWaitOnThread

    等待同步信号,该接口会阻塞等待Thread的运行,直到指定的Notify被record完成。

    HcommAclrtNotifyRecordOnThread

    基于acl接口创建的Notify发送同步信号。

    HcommAclrtNotifyWaitOnThread

    基于acl接口创建的Notify等待同步信号。

  • 通信操作

    接口

    简介

    HcommWriteOnThread

    向channel上的指定内存写数据,将src中长度为len的内存数据写入dst所指向的相同长度的内存区域。接口调用方为src所在节点,该接口为异步接口。

    HcommWriteReduceOnThread

    向channel上的指定内存写数据,将src中长度为count*sizeof(dataType)的内存数据,与dst所指向的相同长度的内存数据进行reduceOp操作,并将结果输出到dst中。接口调用方为src所在节点。

    HcommReadOnThread

    从channel上的指定内存读数据,从src中读取长度为len的内存数据,并写入dst。接口调用方为dst所在节点,为异步接口。

    HcommReadReduceOnThread

    从channel上的指定内存读数据,从src中读取长度为count*sizeof(dataType)的内存数据,与dst所指向的相同长度的内存数据进行reduceOp操作,并将结果输出到dst中。接口调用方为dst所在节点。

    HcommChannelNotifyRecordOnThread

    发送同步信号,在Thread上记录一个Notify。该接口为异步接口,主要用于Channel两端同步等待场景。

    HcommChannelNotifyWaitOnThread

    等待同步信号,阻塞等待Thread的运行,直到指定的Notify完成。

  • 其他接口

    接口

    简介

    HcommBatchModeStart

    该接口用于开启批量模式,在HcommBatchModeStart和HcommBatchModeEnd之间的所有数据面接口调用(如 HcommLocalCopy、HcommWrite 等)将被缓存,不会立即执行。所有操作将在调用HcommBatchModeEnd时统一提交并执行。

    HcommBatchModeEnd

    该接口用于提交并触发批量模式下缓存的所有操作的执行。所有在HcommBatchModeStart和HcommBatchModeEnd之间的数据面接口调用操作将在此时统一执行。

    HcommAcquireComm

    根据传入的commId获取对应通信域,并对该通信域加锁,防止该通信域被重复获取。

    HcommReleaseComm

    根据传入的commId,查找对应通信域,并释放锁。