[Common] Use NCCL API to allocate/free memory (#144)
Tá an tiomantas seo le fáil i:
tiomanta ag
GitHub
tuismitheoir
a9b1ce0456
tiomantas
645be0eb45
@@ -1040,9 +1040,15 @@ testResult_t AllocateBuffs(void **sendbuff, size_t sendBytes, void **recvbuff, s
|
||||
#endif
|
||||
}
|
||||
else {
|
||||
#if NCCL_VERSION_CODE >= NCCL_VERSION(2,19,0)
|
||||
NCCLCHECK(ncclMemAlloc(sendbuff, nbytes));
|
||||
NCCLCHECK(ncclMemAlloc(recvbuff, nbytes));
|
||||
if (datacheck) NCCLCHECK(ncclMemAlloc(expected, recvBytes));
|
||||
#else
|
||||
CUDACHECK(cudaMalloc(sendbuff, nbytes));
|
||||
CUDACHECK(cudaMalloc(recvbuff, nbytes));
|
||||
if (datacheck) CUDACHECK(cudaMalloc(expected, recvBytes));
|
||||
#endif
|
||||
}
|
||||
CUDACHECK(hipMemset(*sendbuff, 1, nbytes));
|
||||
if (datacheck) CUDACHECK(hipMemset(*expected, 1, recvBytes));
|
||||
@@ -1676,9 +1682,15 @@ testResult_t run() {
|
||||
|
||||
// Free off CUDA allocated memory
|
||||
for (int i=0; i<nGpus*nThreads; i++) {
|
||||
#if NCCL_VERSION_CODE >= NCCL_VERSION(2,19,0)
|
||||
if (sendbuffs[i]) NCCLCHECK(ncclMemFree((char*)sendbuffs[i]));
|
||||
if (recvbuffs[i]) NCCLCHECK(ncclMemFree((char*)recvbuffs[i]));
|
||||
if (datacheck) NCCLCHECK(ncclMemFree(expected[i]));
|
||||
#else
|
||||
if (sendbuffs[i]) CUDACHECK(cudaFree((char*)sendbuffs[i]));
|
||||
if (recvbuffs[i]) CUDACHECK(cudaFree((char*)recvbuffs[i]));
|
||||
if (datacheck) CUDACHECK(cudaFree(expected[i]));
|
||||
#endif
|
||||
}
|
||||
CUDACHECK(cudaFreeHost(delta));
|
||||
#if NCCL_VERSION_CODE >= NCCL_VERSION(2,19,0)
|
||||
|
||||
Tagairt in Eagrán Nua
Cuir bac ar úsáideoir