3c223c105a
Add network communication through another GPU connected with NVLink (PXN). Add aggregation of messages coming from different local GPUs through PXN and going to the same destination. Add new v5 plugin API with grouped receives and tags. Add compat for v4 plugins. Add naming of NCCL threads to help debugging. Fix NVLink detection and avoid data corruption when some NVLinks are down. Add support for Relaxed Ordering for IB. Add profiling and timing infrastructure.
38 regels
907 B
C
38 regels
907 B
C
/*************************************************************************
|
|
* Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved.
|
|
*
|
|
* See LICENSE.txt for license information
|
|
************************************************************************/
|
|
|
|
#ifndef NCCL_PROFILER_H_
|
|
#define NCCL_PROFILER_H_
|
|
|
|
#include "proxy.h"
|
|
|
|
enum ncclProxyProfileState {
|
|
ncclProxyProfileBegin = 0,
|
|
|
|
ncclProxyProfileSendGPUWait = 1,
|
|
ncclProxyProfileSendWait = 2,
|
|
|
|
ncclProxyProfileRecvWait = 1,
|
|
ncclProxyProfileRecvFlushWait = 2,
|
|
ncclProxyProfileRecvGPUWait = 3,
|
|
|
|
ncclProxyProfileEnd = 4,
|
|
|
|
ncclProxyProfileSleep = 8,
|
|
ncclProxyProfileWakeup = 9,
|
|
|
|
ncclProxyProfileIdle = 16,
|
|
ncclProxyProfileActive = 17,
|
|
|
|
ncclProxyProfileAppend = 24,
|
|
ncclProxyProfileAppendEnd = 25
|
|
};
|
|
|
|
ncclResult_t ncclProfilingRecord(struct ncclProxyArgs* args, int sub, int step, int state);
|
|
void ncclProfilingDump();
|
|
|
|
#endif
|