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

link

产品支持情况

产品

是否支持

Atlas A3 训练系列产品/Atlas A3 推理系列产品

Atlas 800I A2 推理产品/A200I A2 Box 异构组件

Atlas A2 训练系列产品

x

Atlas 200I/500 A2 推理产品

x

Atlas 推理系列产品

x

Atlas 训练系列产品

x

函数功能

双边建链,通过建立通信域方式建链。(推荐使用更易用的单边建链的link_clusters接口,无需指定ranktable信息)

如果要在单机内且想使用RDMA网卡通信,需要设置HCCL_INTRA_ROCE_ENABLE=1环境变量。

函数原型

1
link(comm_name: str, cluster_rank_info: Dict[int, int], rank_table: str) -> int

参数说明

参数名称

数据类型

取值说明

comm_name

str

通信域名称。

取值范围:小于128个字符。

cluster_rank_info

Dict[int, int]

集群ID到rank ID的映射。

例如:{1: 0, 2: 1}。

rank_table

str

开发者可以通过该参数配置参与集合通信的NPU资源信息,具体信息请参见HCCL集合通信库用户指南中的“通信功能开发 > 集群信息配置 > rank table文件配置资源信息“章节。配置示例如下。

{
    "server_count": "2",
    "server_list": [
        {
            "device": [
                {
                    "device_id": "0",
                    "device_ip": "x.x.x.x",
                    "rank_id": "0"
                },
            ],
            "server_id": "xxxx"
        },{
            "device": [
                {
                    "device_id": "0",
                    "device_ip": "x.x.x.x",
                    "rank_id": "1"
                },
            ],
            "server_id": "xxxx"
        }
    ],
    "status": "completed",
    "version": "1.0"
}

调用示例

请参考pull_cache_sample

返回值

正常情况下返回标识通信域的ID。

参数错误可能抛出TypeError或ValueError。

约束说明

  • 需要通信域内所有节点同时发起。
  • 通信域内节点数量最大支持4。
  • 通信域数量建议不超过16,最大支持512。建链数量过多存在内存OOM及cache传输的性能下降风险。
  • link底层会在通信域内部交换内存描述符,对于用来传输的cache,需要在link前先配置内存池或者先注册内存。
  • 不支持fork子进程方式调用。
  • 最多支持16条链路并发建链,超过16条底层会排队。
  • 需保证多通信域建链不出现循环依赖。
  • 如果并发建链,建链使用的某个卡是down的状态,可能导致某些链路建链超时,如果需要非down状态的卡建链成功,则需要对所有涉及建链的卡配置命令:hccn_tool -i ${device_id} -tls -s enable 1