48 lines
1.9 KiB
C
48 lines
1.9 KiB
C
|
|
/*************************************************************************
|
||
|
|
* Copyright (c) 2017, NVIDIA CORPORATION. All rights reserved.
|
||
|
|
*
|
||
|
|
* See LICENCE.txt for license information
|
||
|
|
************************************************************************/
|
||
|
|
|
||
|
|
#ifndef NCCL1_COMPAT_H
|
||
|
|
#define NCCL1_COMPAT_H
|
||
|
|
|
||
|
|
#ifndef NCCL_MAJOR // NCCL 1.x
|
||
|
|
#define ncclNumOps nccl_NUM_OPS
|
||
|
|
#define ncclNumTypes nccl_NUM_TYPES
|
||
|
|
|
||
|
|
static ncclResult_t ncclGroupStart() { return ncclSuccess; }
|
||
|
|
static ncclResult_t ncclGroupEnd() { return ncclSuccess; }
|
||
|
|
|
||
|
|
#define CHECKCOUNT(count) if (count > INT_MAX) return ncclInvalidArgument;
|
||
|
|
|
||
|
|
static ncclResult_t ncclReduce(const void* sendbuff, void* recvbuff, size_t count, ncclDataType_t datatype,
|
||
|
|
ncclRedOp_t op, int root, ncclComm_t comm, cudaStream_t stream) {
|
||
|
|
CHECKCOUNT(count);
|
||
|
|
return ncclReduce(sendbuff, recvbuff, (int)count, datatype, op, root, comm, stream);
|
||
|
|
}
|
||
|
|
static ncclResult_t ncclAllReduce(const void* sendbuff, void* recvbuff, size_t count,
|
||
|
|
ncclDataType_t datatype, ncclRedOp_t op, ncclComm_t comm, cudaStream_t stream) {
|
||
|
|
CHECKCOUNT(count);
|
||
|
|
return ncclAllReduce(sendbuff, recvbuff, (int)count, datatype, op, comm, stream);
|
||
|
|
}
|
||
|
|
static ncclResult_t ncclBcast(void* buff, size_t count, ncclDataType_t datatype, int root,
|
||
|
|
ncclComm_t comm, cudaStream_t stream) {
|
||
|
|
CHECKCOUNT(count);
|
||
|
|
return ncclBcast(buff, (int)count, datatype, root, comm, stream);
|
||
|
|
}
|
||
|
|
static ncclResult_t ncclReduceScatter(const void* sendbuff, void* recvbuff,
|
||
|
|
size_t recvcount, ncclDataType_t datatype, ncclRedOp_t op, ncclComm_t comm,
|
||
|
|
cudaStream_t stream) {
|
||
|
|
CHECKCOUNT(recvcount);
|
||
|
|
return ncclReduceScatter(sendbuff, recvbuff, (int)recvcount, datatype, op, comm, stream);
|
||
|
|
}
|
||
|
|
static ncclResult_t ncclAllGather(const void* sendbuff, void* recvbuff, size_t sendcount,
|
||
|
|
ncclDataType_t datatype, ncclComm_t comm, cudaStream_t stream) {
|
||
|
|
CHECKCOUNT(sendcount);
|
||
|
|
return ncclAllGather(sendbuff, (int)sendcount, datatype, recvbuff, comm, stream);
|
||
|
|
}
|
||
|
|
#endif
|
||
|
|
|
||
|
|
#endif
|