Merge remote-tracking branch 'nccl/master' into develop

Bu işleme şunda yer alıyor:
Wenkai Du
2021-11-11 14:21:51 -08:00
işleme 3a919c1f49
51 değiştirilmiş dosya ile 1774 ekleme ve 1252 silme
+2 -4
Dosyayı Görüntüle
@@ -46,8 +46,6 @@ __device__ void AllReduceCliqueSplitKernel(struct ncclWorkElem* args)
size_t const currBlockStop = min(currBlockStart + perBlockN, N);
size_t const blockN = currBlockStop - currBlockStart;
FUNC redOp(FuncTraits<FUNC>().make(args->comm->nRanks));
if (blockN > 0)
{
// Prepare input / output subarrays
@@ -65,8 +63,8 @@ __device__ void AllReduceCliqueSplitKernel(struct ncclWorkElem* args)
// Perform the reduction
#define ALL_REDUCE_CLIQUE_UNROLL 1
ReduceOrCopyMulti<ALL_REDUCE_CLIQUE_UNROLL, FUNC, T, NUM_RANKS, NUM_RANKS, NUM_RANKS, NUM_RANKS>(
threadIdx.x, blockDim.x, redOp, NUM_RANKS, true, NUM_RANKS, srcs, NUM_RANKS, dsts, blockN);
ReduceOrCopyMulti<ALL_REDUCE_CLIQUE_UNROLL, FUNC, T, NUM_RANKS, NUM_RANKS, NUM_RANKS, NUM_RANKS, 0>(
threadIdx.x, blockDim.x, nullptr, false, NUM_RANKS, srcs, NUM_RANKS, dsts, blockN);
}
// Even if there was nothing for this GPU to do, it must participate in a barrier
+2 -2
Dosyayı Görüntüle
@@ -274,9 +274,9 @@ bool CliqueManager::IsSupported(ncclFunc_t const coll,
{
if (m_cliqueMode == CLIQUE_DISABLED) return false;
// Filter based on total input size for each collective type
// Filter based on total input size for each collective type and ops sum/prod/min/max
size_t totalBytes = count * ncclTypeSize(datatype);
if (coll == ncclFuncAllReduce && (totalBytes <= m_allReduceByteLimit)) return true;
if (coll == ncclFuncAllReduce && (totalBytes <= m_allReduceByteLimit) && op < ncclAvg) return true;
return false;
}