Merge remote-tracking branch 'nccl/master' into develop
[ROCm/rccl commit: 84081064a0]
This commit is contained in:
@@ -97,6 +97,15 @@ static_assert(NCCL_LL_CLEAN_MASK % NCCL_STEPS == 0, "Invalid NCCL_LL_CLEAN_MASK
|
||||
#define NCCL_IPC_READ 0x10
|
||||
#define NCCL_NVLS_MIN_POLL 0x20
|
||||
|
||||
#define NCCL_MAX_COLLNET_SIZE (1L << 29)
|
||||
|
||||
enum ncclRegBufferType {
|
||||
NCCL_REGULAR_BUFFER = 0,
|
||||
NCCL_IPC_REG_BUFFER = 1,
|
||||
NCCL_NVLS_REG_BUFFER = 2,
|
||||
NCCL_COLLNET_REG_BUFFER = 3
|
||||
};
|
||||
|
||||
struct ncclConnInfo {
|
||||
// Regular comm mechanism
|
||||
char *buffs[NCCL_NUM_PROTOCOLS]; // Local for recv, remote for send
|
||||
@@ -106,6 +115,7 @@ struct ncclConnInfo {
|
||||
|
||||
int flags; // Direct communication / other flags
|
||||
int shared; // Buffers are shared
|
||||
int stepSize; // Step size for the SIMPLE buffer
|
||||
void **ptrExchange; // Pointer exchange for direct communication
|
||||
uint64_t* redOpArgExchange; // PreOp scaler exchange for direct pull case
|
||||
|
||||
@@ -177,7 +187,7 @@ struct ncclDirect {
|
||||
};
|
||||
|
||||
#define NCCL_CONN_IDX_P2P_NET 2
|
||||
#define NCCL_MAX_NVLS_ARITY 8
|
||||
#define NCCL_MAX_NVLS_ARITY 32
|
||||
#define NCCL_MAX_NVLS_TREE_ARITY 3
|
||||
struct ncclNvls {
|
||||
int out;
|
||||
@@ -191,6 +201,12 @@ struct ncclNvls {
|
||||
int nNodes;
|
||||
};
|
||||
|
||||
#if __CUDA_ARCH__ >= 900
|
||||
#define NCCL_MAX_ARITY NCCL_MAX_NVLS_ARITY
|
||||
#else
|
||||
#define NCCL_MAX_ARITY NCCL_MAX_DIRECT_ARITY
|
||||
#endif
|
||||
|
||||
#define NCCL_MAX_CONNS 3
|
||||
struct ncclChannelPeer {
|
||||
struct ncclConnector send[NCCL_MAX_CONNS];
|
||||
@@ -234,9 +250,10 @@ struct ncclWorkElem {
|
||||
union {
|
||||
uint8_t flagBits;
|
||||
struct {
|
||||
uint8_t isUsed:1, redOpArgIsPtr:1, regUsed:1, oneNode:1;
|
||||
uint8_t isUsed:1, redOpArgIsPtr:1, oneNode:1;
|
||||
};
|
||||
};
|
||||
uint8_t regUsed;
|
||||
uint8_t nWarps;
|
||||
uint8_t direct;
|
||||
|
||||
|
||||
مرجع در شماره جدید
Block a user