From 62dc28bd2eeaf5edf8b1cd6cd1e21178b634f5ce Mon Sep 17 00:00:00 2001 From: Wenkai Du Date: Mon, 2 Mar 2020 12:51:29 -0800 Subject: [PATCH] Remove condition for ring duplication Fix insufficent number of rings on single node after pull #179 --- src/graph/connect.cc | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/graph/connect.cc b/src/graph/connect.cc index 0ed929f6f4..a325361f6f 100644 --- a/src/graph/connect.cc +++ b/src/graph/connect.cc @@ -235,14 +235,12 @@ ncclResult_t ncclTopoPostset(struct ncclComm* comm, int* firstRanks, struct nccl NCCLCHECK(connectRings(comm, ringRecv, ringSend, ringPrev, ringNext, firstRanks)); NCCLCHECK(connectTrees(comm, treeUpRecv, treeUpSend, treeDnRecv, treeDnSend, firstRanks)); - if (nChannels == 1) { - // Duplicate ringPrev/ringNext for ncclBuildRing - memcpy(ringPrev+nChannels*nranks, ringPrev, nChannels*nranks*sizeof(int)); - memcpy(ringNext+nChannels*nranks, ringNext, nChannels*nranks*sizeof(int)); + // Duplicate ringPrev/ringNext for ncclBuildRing + memcpy(ringPrev+nChannels*nranks, ringPrev, nChannels*nranks*sizeof(int)); + memcpy(ringNext+nChannels*nranks, ringNext, nChannels*nranks*sizeof(int)); - // Duplication should be complete now - nChannels = comm->nChannels = std::min(MAXCHANNELS,nChannels*2); - } + // Duplication should be complete now + nChannels = comm->nChannels = std::min(MAXCHANNELS,nChannels*2); // Honor NCCL_MIN_NRINGS/NCCL_MAX_NRINGS. // We permit combining max, then min, to only use the first channels, then duplicate them.