Split transport connect phase into multiple steps to avoid port
exhaustion when connecting alltoall at large scale. Defaults to 128
peers per round.
Fix memory leaks on CUDA graph capture.
Fix alltoallv crash on self-sendrecv.
Make topology detection more deterministic when PCI speeds are not
available (fix issue #1020).
Properly close shared memory in NVLS resources.
Revert proxy detach after 5 seconds.
Add option to print progress during transport connect.
Add option to set NCCL_DEBUG to INFO on first WARN.
此提交包含在:
Sylvain Jeaugey
2023-11-13 10:26:55 -08:00
父節點 0e35f5d390
當前提交 88d44d777f
共有 11 個檔案被更改,包括 174 行新增 和 183 行删除
+1 -3
查看文件
@@ -299,7 +299,7 @@ struct ncclComm {
// Flag to ask NCCL kernels to abort
volatile uint32_t *abortFlag;
volatile uint32_t *childAbortFlag;
volatile uint32_t *abortFlagRefCount;
uint32_t *abortFlagRefCount;
// Device side of the communicator (for cudaFree's)
struct ncclDevComm* devComm; // actually = &ncclDevCommAndChannels::comm
@@ -342,8 +342,6 @@ struct ncclComm {
int nvlsRegSupport;
/* sharable NVLS resource. */
struct ncclNvlsSharedRes* nvlsResources;
struct ncclShmemCollBuff nvlsShmem;
void *nvlsShmemHandle;
ssize_t channelSize; // User requested work size (bytes) for channel partitions
+2 -5
查看文件
@@ -194,7 +194,6 @@ struct ncclProxyRpcResponseHeader {
};
struct ncclProxyState {
int internalRefCount;
int refCount;
int tpRank;
int tpnRanks;
@@ -209,11 +208,10 @@ struct ncclProxyState {
ncclNet_t* ncclNet;
ncclCollNet_t* ncclCollNet;
volatile uint32_t* abortFlag;
volatile uint32_t* abortFlagRefCount;
// Service thread
pthread_t thread;
struct ncclSocket* listenSock;
volatile int stop;
int stop;
CUcontext cudaCtx;
ncclResult_t asyncResult;
@@ -294,6 +292,5 @@ ncclResult_t ncclProxyClientGetFdBlocking(struct ncclComm* comm, struct ncclProx
ncclResult_t ncclProxyStop(struct ncclComm* comm);
ncclResult_t ncclProxyShmUnlink(struct ncclComm* comm);
ncclResult_t ncclProxyDestroy(struct ncclProxyState *proxyState);
ncclResult_t ncclProxyTryDetach(struct ncclProxyState *proxyState);
ncclResult_t ncclProxyDestroy(struct ncclComm* comm);
#endif
+2
查看文件
@@ -67,6 +67,8 @@ struct ncclNvlsSharedRes {
char shareableHandle[NVLS_HANDLE_SIZE];
size_t ucGran;
int nChannels;
struct ncclShmemCollBuff nvlsShmem;
void *nvlsShmemHandle;
};
#endif /* CUDART_VERSION >= 12010 */