使用NCCL时如何明确指定DGX-1系统通信所用的NVLink类型
NCCL 指定NVLink链路类型的实现方法
NCCL 本身没有提供直接显式选择NVLink V1/V2版本链路的原生参数,但可以通过以下方式间接实现通信链路的可控选择:
- 优先使用高带宽NVLink链路:NCCL默认会自动探测所有可用链路的带宽、延迟参数,自动选择最优路径,NVLink V2的带宽远高于V1,默认情况下NCCL就会优先使用V2链路进行P2P和集合通信。如果要强制禁用PCIe P2P路径,确保通信只走NVLink,可以设置环境变量:
export NCCL_P2P_DISABLE=0 export NCCL_NET_GDR_LEVEL=full - 精细控制链路选择:可以通过
NCCL_TOPO_FILE环境变量导入自定义的系统拓扑文件,手动修改拓扑配置中不同NVLink链路的权重/带宽参数,将不需要使用的NVLink V1链路的带宽值调低或者直接标记为不可用,NCCL做路径规划时就会自动避开低优先级的链路,间接实现指定NVLink版本的需求。
调整前建议先执行
nvidia-smi topo -m查看当前GPU之间的链路连接分布,避免禁用链路后出现GPU跨节点通信只能走PCIe,反而拉低整体通信性能的问题。
内容的提问来源于stack exchange,提问作者Daniel
相关产品推荐
相关产品推荐

