Added creation of new tree and added switch for using treesplit for specific cases (#551)

Этот коммит содержится в:
akolliasAMD
2022-05-25 18:55:14 -04:00
коммит произвёл GitHub
родитель 700b473211
Коммит 98f0809a39
8 изменённых файлов: 229 добавлений и 6 удалений
+2 -2
Просмотреть файл
@@ -205,7 +205,6 @@ namespace {
/* LL128 */ : nthreads*(Proto::calcBytePerGrain()/sizeof(T))/8);
const ssize_t loopSize = int(nChannels*chunkSize);
const ssize_t size = args->count;
int nthreadsSplit;
if (Proto::Id == NCCL_PROTO_SIMPLE) {
nthreadsSplit = nthreads/2;
@@ -400,7 +399,8 @@ struct RunWorkElement<ncclFuncAllReduce, T, RedOp, NCCL_ALGO_RING, NCCL_PROTO_LL
template<typename T, typename RedOp>
struct RunWorkElement<ncclFuncAllReduce, T, RedOp, NCCL_ALGO_TREE, NCCL_PROTO_LL> {
__device__ __attribute__((noinline)) void run(ncclWorkElem *args) {
runTreeUpDown<T, RedOp, ProtoLL>(args);
if (args->pad_0 == 0) runTreeUpDown<T, RedOp, ProtoLL>(args);
else runTreeSplit<T, RedOp, ProtoLL>(args);
}
};