diff --git a/projects/rccl/src/collectives/device/all_reduce.h b/projects/rccl/src/collectives/device/all_reduce.h index ea90cbd37f..cdf1eaba4c 100644 --- a/projects/rccl/src/collectives/device/all_reduce.h +++ b/projects/rccl/src/collectives/device/all_reduce.h @@ -376,7 +376,8 @@ namespace { const int nthreads = args->nWarps*WARP_SIZE; const int bid = args->bid; const int nChannels = args->nChannels; - ncclTree *tree = (args->pad_0 == 2) ? &ncclShmem->channel.binTree : &ncclShmem->channel.tree; + ncclTree *tree = &ncclShmem->channel.tree; + //ncclTree *tree = (args->pad_0 == 2) ? &ncclShmem->channel.binTree : &ncclShmem->channel.tree; ssize_t chunkSize = int( Proto::Id != NCCL_PROTO_LL ? args->lastChunkSize : Proto::calcBytePerStep()/sizeof(T)); diff --git a/projects/rccl/src/include/comm.h b/projects/rccl/src/include/comm.h index 844eea5bcd..83a8ddeac9 100644 --- a/projects/rccl/src/include/comm.h +++ b/projects/rccl/src/include/comm.h @@ -107,6 +107,7 @@ struct ncclChannel { struct ncclRing ring; int* devRingUserRanks; struct ncclTree tree; + struct ncclTree binTree; struct ncclDirect collTree; int id; // index of this channel uint32_t workFifoSent; // last used work index+1 diff --git a/projects/rccl/src/include/devcomm.h b/projects/rccl/src/include/devcomm.h index 3a8949460c..d47854b0b4 100644 --- a/projects/rccl/src/include/devcomm.h +++ b/projects/rccl/src/include/devcomm.h @@ -203,14 +203,15 @@ struct ncclWorkElem { union { uint8_t flagBits; struct { - uint8_t isUsed:1, redOpArgIsPtr:1, regUsed:1, pad_0:1, nWarps:4; + uint8_t isUsed:1, redOpArgIsPtr:1, regUsed:1, nWarps:5; }; }; uint8_t direct; uint8_t bid; uint8_t nChannels; struct { - uint32_t root:30; + uint32_t root:28; + uint32_t pad_0:2; uint32_t connIndex:2; };