link
产品支持情况
产品 |
是否支持 |
|---|---|
Atlas 350 加速卡 |
x |
√ |
|
√ |
|
x |
|
x |
|
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"
}
返回值
正常情况下返回标识通信域的ID。
参数错误可能抛出TypeError或ValueError。
约束说明
- 需要通信域内所有节点同时发起。
- 通信域内节点数量最大支持4。
- 通信域数量建议不超过16,最大支持512。建链数量过多存在内存OOM及cache传输的性能下降风险。
- link底层会在通信域内部交换内存描述符,对于用来传输的cache,需要在link前先配置内存池或者先注册内存。
- 不支持fork子进程方式调用。
- 最多支持16条链路并发建链,超过16条底层会排队。
- 需保证多通信域建链不出现循环依赖。
父主题: LLMDataDist