[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
|
#endif
|
||||||
}
|
}
|
||||||
else {
|
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(sendbuff, nbytes));
|
||||||
CUDACHECK(cudaMalloc(recvbuff, nbytes));
|
CUDACHECK(cudaMalloc(recvbuff, nbytes));
|
||||||
if (datacheck) CUDACHECK(cudaMalloc(expected, recvBytes));
|
if (datacheck) CUDACHECK(cudaMalloc(expected, recvBytes));
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
CUDACHECK(hipMemset(*sendbuff, 1, nbytes));
|
CUDACHECK(hipMemset(*sendbuff, 1, nbytes));
|
||||||
if (datacheck) CUDACHECK(hipMemset(*expected, 1, recvBytes));
|
if (datacheck) CUDACHECK(hipMemset(*expected, 1, recvBytes));
|
||||||
@@ -1676,9 +1682,15 @@ testResult_t run() {
|
|||||||
|
|
||||||
// Free off CUDA allocated memory
|
// Free off CUDA allocated memory
|
||||||
for (int i=0; i<nGpus*nThreads; i++) {
|
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 (sendbuffs[i]) CUDACHECK(cudaFree((char*)sendbuffs[i]));
|
||||||
if (recvbuffs[i]) CUDACHECK(cudaFree((char*)recvbuffs[i]));
|
if (recvbuffs[i]) CUDACHECK(cudaFree((char*)recvbuffs[i]));
|
||||||
if (datacheck) CUDACHECK(cudaFree(expected[i]));
|
if (datacheck) CUDACHECK(cudaFree(expected[i]));
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
CUDACHECK(cudaFreeHost(delta));
|
CUDACHECK(cudaFreeHost(delta));
|
||||||
#if NCCL_VERSION_CODE >= NCCL_VERSION(2,19,0)
|
#if NCCL_VERSION_CODE >= NCCL_VERSION(2,19,0)
|
||||||
|
|||||||
Tagairt in Eagrán Nua
Cuir bac ar úsáideoir