2.16.2-1
Add support for CUDA 12.0, drop Kepler (sm_35). Support for H100 features. Make socket code more robust and protected. Solves #555. Improve performance on large CUDA graphs, reducing dependencies. Reduce inter-socket bandwidth on AMD CPUs to favor better paths. Various fixes to ncclCommAbort. Make service thread polling resistant to EINTR. Compile with profiling API by default. Extend NVTX instrumentation with call arguments.
This commit is contained in:
+13
-2
@@ -11,6 +11,7 @@
|
||||
#include "info.h"
|
||||
#include "socket.h"
|
||||
#include <pthread.h>
|
||||
#include "shm.h"
|
||||
|
||||
enum ncclProxyOpState { ncclProxyOpNone, ncclProxyOpReady, ncclProxyOpProgress };
|
||||
|
||||
@@ -106,6 +107,7 @@ struct ncclProxyOpsPool {
|
||||
|
||||
struct ncclProxyOps {
|
||||
ncclProxyOpsPool* pool;
|
||||
ncclShmHandle_t handle;
|
||||
int count;
|
||||
int freeOp;
|
||||
int nextOps;
|
||||
@@ -145,6 +147,7 @@ struct ncclProxyPool;
|
||||
struct ncclProxyProgressState {
|
||||
// Used by main threads to send work to progress thread
|
||||
struct ncclProxyOpsPool* opsPool;
|
||||
ncclShmHandle_t handle;
|
||||
char opsPoolShmSuffix[6];
|
||||
|
||||
pthread_t thread;
|
||||
@@ -164,7 +167,6 @@ struct ncclProxyState {
|
||||
struct ncclSocket* listenSock;
|
||||
int stop;
|
||||
CUcontext cudaCtx;
|
||||
int safeAbortFlag;
|
||||
|
||||
// Used by main thread
|
||||
union ncclSocketAddress* peerAddresses;
|
||||
@@ -176,6 +178,15 @@ struct ncclProxyState {
|
||||
struct ncclProxyProgressState progressState;
|
||||
};
|
||||
|
||||
enum proxyConnectState {
|
||||
connUninitialized = 0,
|
||||
connInitialized = 1,
|
||||
connSharedInitialized = 2,
|
||||
connSetupDone = 3,
|
||||
connConnected = 4,
|
||||
numConnStates = 5
|
||||
};
|
||||
|
||||
struct ncclProxyConnection {
|
||||
int send, transport, shared;
|
||||
int localRank;
|
||||
@@ -184,7 +195,7 @@ struct ncclProxyConnection {
|
||||
struct ncclProxyArgs *proxyAppend;
|
||||
struct ncclProxyArgs **proxyAppendPtr;
|
||||
void* transportResources;
|
||||
bool initFlag;
|
||||
proxyConnectState state;
|
||||
};
|
||||
|
||||
typedef ncclResult_t (*threadFunc_t)(struct ncclProxyArgs*);
|
||||
|
||||
Fai riferimento in un nuovo problema
Block a user