add 256 channels support

[ROCm/rccl commit: 506f16c506]
Este commit está contenido en:
Nusrat Islam
2024-05-15 16:58:28 -05:00
padre 1934d0f377
commit b0b2aa1166
Se han modificado 11 ficheros con 95 adiciones y 53 borrados
+8 -4
Ver fichero
@@ -172,6 +172,10 @@ struct ncclNvlsMcHandleList {
size_t size;
};
struct channelMasks {
uint64_t masks[4];
};
struct ncclKernelPlan {
// A kernel plan is also a callback that reclaims itself. Hence this must
// be the first member.
@@ -185,7 +189,7 @@ struct ncclKernelPlan {
void *kernelFn;
int channelUbound; // only channels c < channelUbound are present
int channelCount; // number of channels present
uint64_t channelMask; // which channels are present, channelCount == popcount(channelMask)
struct channelMasks channelMask;
bool hasProxyOps; // does any channel have a non-empty proxyOpQueue
int threadPerBlock;
// workHeap fields are null until uploadWorkFifo() or preparePersistentKernel()
@@ -226,8 +230,8 @@ struct ncclComm {
ncclCollNet_t* ncclCollNet;
void* bootstrap;
// Bitmasks for ncclTransportP2pSetup
uint64_t* connectSend;
uint64_t* connectRecv;
struct channelMasks* connectSend;
struct channelMasks* connectRecv;
uint64_t magic; // Magic number for all network communication. Not a security key -- only goal is to detect mismatches.
@@ -481,4 +485,4 @@ static inline ncclRedOp_t ncclUserRedOpMangle(ncclComm *comm, ncclRedOp_t op) {
ncclResult_t ncclCommEnsureReady(ncclComm_t comm);
ncclResult_t ncclCommSetAsyncError(ncclComm_t comm, ncclResult_t nextState);
#endif
#endif
+3 -2
Ver fichero
@@ -61,7 +61,8 @@ union ncclLLFifoLine {
};
#define WARP_SIZE warpSize
#define MAXCHANNELS 64
#define MAXCHANNELS 256
#define NCCL_MAX_NTHREADS 256
#define NCCL_SIMPLE_MAX_NTHREADS NCCL_MAX_NTHREADS
#define NCCL_LL_MAX_NTHREADS NCCL_MAX_NTHREADS
@@ -586,4 +587,4 @@ inline int ncclDevFuncId(int coll, int devRedOp, int type, int algo, int proto)
inline int ncclDevFuncId_P2p() { return ncclDevFuncRowToId[FUNC_INDEX_TOTAL - NCCL_NUM_ONERANK - 1]; }
#endif
#endif
+2 -2
Ver fichero
@@ -143,7 +143,7 @@ struct ncclProxyOps {
struct ncclProxySharedP2p {
int refcount;
int size;
int64_t size;
char* cudaBuff;
char* hostBuff;
// CUDA IPC
@@ -331,4 +331,4 @@ ncclResult_t ncclProxyShmUnlink(struct ncclComm* comm);
ncclResult_t ncclProxyDestroy(struct ncclComm* comm);
ncclResult_t mscclSaveProxy(struct ncclComm* comm, struct ncclChannel* channel, int type, int peer, struct ncclProxyOp* op, int connIndex);
#endif
#endif