28189e2df8
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.
31 行
1.4 KiB
C
31 行
1.4 KiB
C
/*************************************************************************
|
|
* Copyright (c) 2015-2022, NVIDIA CORPORATION. All rights reserved.
|
|
*
|
|
* See LICENSE.txt for license information
|
|
************************************************************************/
|
|
|
|
#ifndef NCCL_BOOTSTRAP_H_
|
|
#define NCCL_BOOTSTRAP_H_
|
|
|
|
#include "nccl.h"
|
|
#include "comm.h"
|
|
|
|
struct ncclBootstrapHandle {
|
|
uint64_t magic;
|
|
union ncclSocketAddress addr;
|
|
};
|
|
static_assert(sizeof(struct ncclBootstrapHandle) <= sizeof(ncclUniqueId), "Bootstrap handle is too large to fit inside NCCL unique ID");
|
|
|
|
ncclResult_t bootstrapNetInit();
|
|
ncclResult_t bootstrapCreateRoot(struct ncclBootstrapHandle* handle, bool idFromEnv);
|
|
ncclResult_t bootstrapGetUniqueId(struct ncclBootstrapHandle* handle);
|
|
ncclResult_t bootstrapInit(struct ncclBootstrapHandle* handle, struct ncclComm* comm);
|
|
ncclResult_t bootstrapAllGather(void* commState, void* allData, int size);
|
|
ncclResult_t bootstrapSend(void* commState, int peer, int tag, void* data, int size);
|
|
ncclResult_t bootstrapRecv(void* commState, int peer, int tag, void* data, int size);
|
|
ncclResult_t bootstrapBarrier(void* commState, int *ranks, int rank, int nranks, int tag);
|
|
ncclResult_t bootstrapIntraNodeAllGather(void* commState, int *ranks, int rank, int nranks, void* allData, int size);
|
|
ncclResult_t bootstrapClose(void* commState);
|
|
ncclResult_t bootstrapAbort(void* commState);
|
|
#endif
|