NCCL初探(NCCL_CROSS_NIC与多平面网络)
前面聊了网卡、DMA和RDMA,接下来把视角拉到多机训练。
假设每台服务器上都有两张RDMA网卡,分别接到两个网络平面。网卡单独测都没问题,但放到NCCL里,数据到底会走哪张卡?两个平面能不能同时用?如果平面之间根本不通,又该怎么办?
这时候经常会碰到一个环境变量:NCCL_CROSS_NIC。名字里有个CROSS,很容易把它当成“多网卡开关”。但真按这个思路去配置,可能从第一步就理解偏了。
这篇就围绕这个参数展开,把0、1、2的区别,以及容易想当然的几个地方说清楚。