25#include <rocprofiler-sdk/defines.h>
27#if !defined(ROCPROFILER_SDK_USE_SYSTEM_RCCL)
28# if defined __has_include
29# if __has_include(<rccl/rccl.h>)
30# define ROCPROFILER_SDK_USE_SYSTEM_RCCL 1
32# define ROCPROFILER_SDK_USE_SYSTEM_RCCL 0
35# define ROCPROFILER_SDK_USE_SYSTEM_RCCL 0
39#if ROCPROFILER_SDK_USE_SYSTEM_RCCL > 0
40# include <rccl/rccl.h>
42# include <rocprofiler-sdk/rccl/details/rccl.h>
47ROCPROFILER_EXTERN_C_INIT
52typedef struct rocprofiler_rccl_api_no_args
55} rocprofiler_rccl_api_no_args;
57typedef union rocprofiler_rccl_api_retval_t
59 int32_t ncclResult_t_retval;
60 const char* const_charp_retval;
61} rocprofiler_rccl_api_retval_t;
63typedef union rocprofiler_rccl_api_args_t
70 ncclDataType_t datatype;
79 ncclDataType_t datatype;
81 struct ncclComm* comm;
89 ncclDataType_t datatype;
96 const size_t* sendcounts;
97 const size_t* sdispls;
99 const size_t* recvcounts;
100 const size_t* rdispls;
101 ncclDataType_t datatype;
107 const void* sendbuff;
110 ncclDataType_t datatype;
117 const void* sendbuff;
120 ncclDataType_t datatype;
127 const void* sendbuff;
130 ncclDataType_t datatype;
138 const void* sendbuff;
141 ncclDataType_t datatype;
143 struct ncclComm* comm;
148 const void* sendbuff;
151 ncclDataType_t datatype;
158 const void* sendbuff;
160 ncclDataType_t datatype;
169 ncclDataType_t datatype;
178 ncclDataType_t datatype;
179 ncclScalarResidence_t residence;
181 } ncclRedOpCreatePreMulSum;
189 rocprofiler_rccl_api_no_args no_args;
193 rocprofiler_rccl_api_no_args no_args;
222 ncclConfig_t* config;
223 } ncclCommInitRankConfig;
242 ncclConfig_t* config;
247 } ncclGetErrorString;
255 ncclResult_t* asyncError;
256 } ncclCommGetAsyncError;
283 const char* mscclAlgoFilePath;
284 mscclAlgoHandle_t* mscclAlgoHandle;
289 const void* sendBuff;
290 const size_t* sendCounts;
291 const size_t* sDisPls;
293 const size_t* recvCounts;
294 const size_t* rDisPls;
296 ncclDataType_t dataType;
300 mscclAlgoHandle_t mscclAlgoHandle;
306 mscclAlgoHandle_t mscclAlgoHandle;
319 } ncclCommDeregister;
320#if RCCL_API_TRACE_VERSION_PATCH >= 1
323 const void* sendbuff;
326 ncclDataType_t datatype;
328 struct ncclComm* comm;
331 } ncclAllReduceWithBias;
333#if RCCL_API_TRACE_VERSION_PATCH >= 2
337 int* excludeRanksList;
338 int excludeRanksCount;
340 ncclConfig_t* config;
350 } ncclCommWindowRegister;
355 } ncclCommWindowDeregister;
357} rocprofiler_rccl_api_args_t;
359ROCPROFILER_EXTERN_C_FINI