接口列表
- 控制面接口:提供拓扑信息查询、通信资源管理等功能。
- 数据面接口:提供本地操作、算子间同步、通信操作等数据搬运和计算功能。
- hccl_rank_graph.h:控制面的拓扑信息查询接口定义文件。
- hccl_res.h:控制面的资源管理定义文件。
- hcomm_primitives.h:数据面接口定义文件。
控制面接口
分类 |
接口 |
简介 |
|---|---|---|
拓扑信息查询 |
获取Device在指定通信域中对应的rank序号。 |
|
查询指定通信域的rank数量。 |
||
查询包含当前rank的拓扑层级编号列表以及拓扑层级数量。 |
||
给定通信域和拓扑层级编号,返回该层级下本rank所在拓扑实例的所有rank编号列表以及rank数量。 |
||
给定通信域和拓扑层级编号,返回该层级下本rank所在拓扑实例的rank数量。 |
||
给定通信域和拓扑层级编号,返回本rank所在拓扑层级中的拓扑类型。 |
||
给定通信域和拓扑层级编号,查询该层级下的拓扑实例数量,以及每个实例包含的rank数量。 |
||
给定通信域和拓扑层级编号,查询源rank和目的rank之间的通信连接信息。 |
||
资源管理 |
获取通信域中的HCCL通信内存。 |
|
基于通信域获取通信线程。 |
||
基于已有runtime stream获取指定notifyNum的通信线程资源。 |
||
初始化通信通道描述列表。 |
||
基于通信域获取多个通信通道,如果通信域中没有对应的通信通道则直接创建。 |
||
获取指定channel对端的HCCL通信内存。 |
||
指定通信域与通信引擎,使用特定标签创建对应的通信引擎上下文。 |
||
指定通信域和通信引擎,通过通信引擎上下文标签获取对应的通信引擎上下文。 |
||
指定通信域、通信引擎与通信引擎上下文标签,将Host侧内存数据拷贝至对应的通信引擎上下文中。 |
数据面接口
分类 |
接口 |
简介 |
|---|---|---|
本地操作 |
提供本地内存拷贝功能,将src指向的长度为len的内存数据,拷贝到dst所指向的相同长度的内存中。 |
|
提供本地归约操作,将src指向的长度为count*sizeof(dataType)的内存数据,与dst所指向的相同长度的内存数据进行reduceOp操作,并将结果输出到dst中。 |
||
向其他Thread发送同步信号,主要用于多Thread之间的同步等待场景。 |
||
等待同步信号,该接口会阻塞等待Thread的运行,直到指定的Notify被record完成。 |
||
基于acl接口创建的Notify发送同步信号。 |
||
基于acl接口创建的Notify等待同步信号。 |
||
通信操作 |
向channel上的指定内存写数据,将src中长度为len的内存数据写入dst所指向的相同长度的内存区域。接口调用方为src所在节点,该接口为异步接口。 |
|
向channel上的指定内存写数据,将src中长度为count*sizeof(dataType)的内存数据,与dst所指向的相同长度的内存数据进行reduceOp操作,并将结果输出到dst中。接口调用方为src所在节点。 |
||
从channel上的指定内存读数据,从src中读取长度为len的内存数据,并写入dst。接口调用方为dst所在节点,为异步接口。 |
||
从channel上的指定内存读数据,从src中读取长度为count*sizeof(dataType)的内存数据,与dst所指向的相同长度的内存数据进行reduceOp操作,并将结果输出到dst中。接口调用方为dst所在节点。 |
||
发送同步信号,在Thread上记录一个Notify。该接口为同步接口,主要用于Channe两端同步等待场景。 |
||
等待同步信号,阻塞等待Thread的运行,直到指定的Notify完成。 |
||
其他 |
该接口用于开启批量模式,在HcommBatchModeStart和HcommBatchModeEnd之间的所有数据面接口调用(如 HcommLocalCopy、HcommWrite 等)将被缓存,不会立即执行。所有操作将在调用HcommBatchModeEnd时统一提交并执行。 |
|
该接口用于提交并触发批量模式下缓存的所有操作的执行。所有在HcommBatchModeStart和HcommBatchModeEnd之间的数据面接口调用操作将在此时统一执行。 |
||
根据传入的commId获取对应通信域,并对该通信域加锁,防止该通信域被重复获取。 |
||
根据传入的commId,查找对应通信域,并释放锁。 |