diff --git a/projects/rccl/src/misc/msccl/msccl_lifecycle.cc b/projects/rccl/src/misc/msccl/msccl_lifecycle.cc index d186e0c47f..161eb93b7b 100644 --- a/projects/rccl/src/misc/msccl/msccl_lifecycle.cc +++ b/projects/rccl/src/misc/msccl/msccl_lifecycle.cc @@ -63,12 +63,7 @@ bool mscclAvailable(int rank) { return mscclEnabled() && mscclInitialized(rank); } -static bool mscclCommCompatible(ncclComm_t comm) { - if (rcclParamMscclEnableSingleProcess()) { - // Single process usage enabled. No need to guard against multi-thread. - return true; - } - +static bool allProcessHostsUnique(ncclComm_t comm) { std::map> hostHashToPidHashes; for (int i = 0; i < comm->nRanks; i++) { uint64_t hostHash = comm->peerInfo[i].hostHash; @@ -84,9 +79,17 @@ static bool mscclCommCompatible(ncclComm_t comm) { return true; } -#ifdef ENABLE_MSCCLPP +static bool mscclCommCompatible(ncclComm_t comm) { + if (rcclParamMscclEnableSingleProcess()) { + // Single process usage enabled. No need to guard against multi-thread. + return true; + } + return allProcessHostsUnique(comm); +} + +#ifdef ENABLE_MSCCLPP bool mscclppCommCompatible(ncclComm_t comm) { - return mscclCommCompatible(comm); + return allProcessHostsUnique(comm); } #endif