Merge remote-tracking branch 'nccl/master' into develop

このコミットが含まれているのは:
BertanDogancay
2025-08-28 15:45:42 -05:00
コミット 08a7be231b
108個のファイルの変更7754行の追加2129行の削除
+36 -7
ファイルの表示
@@ -14,6 +14,7 @@
#include <hip/hip_bfloat16.h>
#include "nccl_common.h"
#include "bitops.h"
#include "symmetric.h"
#if defined(ENABLE_NPKIT)
#include "npkit/npkit_struct.h"
#endif
@@ -41,6 +42,30 @@ extern const char* funcNames[];
#define NCCL_CUDA_ARCH 0
#endif
#ifdef __CUDA_ARCH_SPECIFIC__
#define NCCL_CUDA_ARCH_SPECIFIC __CUDA_ARCH_SPECIFIC__
#elif defined(__CUDA_ARCH_HAS_FEATURE__)
#if __CUDA_ARCH_HAS_FEATURE__(SM90_ALL)
#define NCCL_CUDA_ARCH_SPECIFIC 900
#elif __CUDA_ARCH_HAS_FEATURE__(SM100_ALL)
#define NCCL_CUDA_ARCH_SPECIFIC 1000
#elif __CUDA_ARCH_HAS_FEATURE__(SM101_ALL)
#define NCCL_CUDA_ARCH_SPECIFIC 1010
#elif __CUDA_ARCH_HAS_FEATURE__(SM120_ALL)
#define NCCL_CUDA_ARCH_SPECIFIC 1200
#else
#define NCCL_CUDA_ARCH_SPECIFIC 0
#endif
#else
#define NCCL_CUDA_ARCH_SPECIFIC 0
#endif
#ifdef __CUDA_ARCH_FAMILY_SPECIFIC__
#define NCCL_CUDA_ARCH_FAMILY_SPECIFIC __CUDA_ARCH_FAMILY_SPECIFIC__
#else
#define NCCL_CUDA_ARCH_FAMILY_SPECIFIC 0
#endif
#include "net_device.h"
enum ncclDevRedOp_t {
@@ -516,6 +541,14 @@ struct alignas(16) ncclDevChannel {
uint64_t workCounter;
};
#define MAX_PROFILER_EVENTS_PER_CHANNEL 64
struct ncclDevProfiler {
struct {
uint64_t counter;
uint64_t timestamp;
} data[MAX_PROFILER_EVENTS_PER_CHANNEL];
};
struct ncclDevComm {
int rank;
int nRanks;
@@ -526,9 +559,6 @@ struct ncclDevComm {
int isAllNvlink;
int p2pnChannelsPerPeer;
// Work fifo return credits
uint32_t* workConsumed/*[MAXCHANNELS]*/;
int* collNetDenseToUserRank;
// Flag to ask NCCL kernels to abort
@@ -540,8 +570,8 @@ struct ncclDevComm {
int* rankToLocalRank;
// Profiler counters
uint64_t* workStarted/*[MAXCHANNELS]*/;
uint64_t* workCompleted/*[MAXCHANNELS]*/;
struct ncclDevProfiler* workStarted/*[MAXCHANNELS]*/;
struct ncclDevProfiler* workCompleted/*[MAXCHANNELS]*/;
#if defined(ENABLE_NPKIT)
NpKitEventCollectContext* npKitEventCollectContexts;
@@ -641,7 +671,7 @@ __host__ __device__ constexpr int ncclCalcUnroll(int bytePerPack, int insns, int
__host__ __device__ constexpr int ncclCollUnroll(int cudaArch = NCCL_CUDA_ARCH) {
// Our collective unroll should move to the same bytes&insns model as NVLS.
return cudaArch >= 800 ? (cudaArch == 1200 ? 6 : 8) : 4;
return cudaArch >= 800 ? (cudaArch / 100 == 12 ? 6 : 8) : 4;
}
__host__ __device__ constexpr int ncclNvlsUnrollBytes(int cudaArch = NCCL_CUDA_ARCH) { return 4*16; }
@@ -672,7 +702,6 @@ extern int const ncclDevKernelCount;
extern void* const ncclDevKernelList[/*ncclDevKernelCount*/];
// Table of most specialized kernel function to run given func index.
extern int const ncclDevFuncIdCount;
extern int const ncclDevFuncRowToId[];
extern void* const ncclDevKernelForFunc[/*funcIndex*/];
extern bool const ncclDevKernelForFuncIsSpecialized[/*funcIndex*/];