diff --git a/src/graph/paths.cc b/src/graph/paths.cc index 4180f3e660..bb1e33a1c0 100644 --- a/src/graph/paths.cc +++ b/src/graph/paths.cc @@ -861,7 +861,8 @@ ncclResult_t ncclTopoComputeP2pChannels(struct ncclComm* comm) { } else { // Round to next pow2 nChannelsPerPeer and nChannels comm->p2pnChannelsPerPeer = (ncclParamNChannelsPerPeer() == -2 ? nextPow2(minChannels) : ncclParamNChannelsPerPeer()); - comm->p2pnChannelsPerPeer *= 2; + // Doubling P2P channels per peer on single node + if (comm->topo->nodes[GPU].count == comm->topo->nRanks) comm->p2pnChannelsPerPeer *= 2; comm->p2pnChannels = nextPow2(comm->p2pnChannels); }