link
产品支持情况
产品 |
是否支持 |
---|---|
√ |
|
√ |
|
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 |
参数说明
返回值
正常情况下返回标识通信域的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
父主题: LLMDataDist