gtest: add scatter to combined calls and use loops (#303)
* gtest: add scatter to combined calls and use loops * gtest: run validation inside loop * gtest: revert small element count to 2520 * gtest: fix memory leak in validation (cherry picked from commit36935cfbee) * Fix combined call UT * Fix memory leak * Fix alltoallv test [ROCm/rccl commit:b33a2cac8b]
This commit is contained in:
1 parent
2c49121171
commit
560224fe9f
8 files changed
+61
-37
No files matched your search
@@ -22,7 +22,7 @@ namespace CorrectnessTests
|
||||
|
||||
size_t chunksize = numElements*2/numDevices;
|
||||
#define MAX_ALLTOALLV_RANKS 16
|
||||
static size_t sendcounts[MAX_ALLTOALLV_RANKS], recvcounts[MAX_ALLTOALLV_RANKS], sdispls[MAX_ALLTOALLV_RANKS], rdispls[MAX_ALLTOALLV_RANKS];
|
||||
static size_t sendcounts[MAX_ALLTOALLV_RANKS*MAX_ALLTOALLV_RANKS], recvcounts[MAX_ALLTOALLV_RANKS*MAX_ALLTOALLV_RANKS], sdispls[MAX_ALLTOALLV_RANKS*MAX_ALLTOALLV_RANKS], rdispls[MAX_ALLTOALLV_RANKS*MAX_ALLTOALLV_RANKS];
|
||||
// Launch the reduction (1 thread per GPU)
|
||||
ncclGroupStart();
|
||||
for (int r = 0; r < numDevices; r++) {
|
||||
@@ -31,12 +31,12 @@ namespace CorrectnessTests
|
||||
size_t scount = ((i+r)%numDevices)*chunksize;
|
||||
if (i+r == numDevices-1)
|
||||
scount += (numElements*numDevices-chunksize*(numDevices-1)*numDevices/2);
|
||||
sendcounts[i] = recvcounts[i] = scount;
|
||||
sdispls[i] = rdispls[i] = disp;
|
||||
sendcounts[i+r*MAX_ALLTOALLV_RANKS] = recvcounts[i+r*MAX_ALLTOALLV_RANKS] = scount;
|
||||
sdispls[i+r*MAX_ALLTOALLV_RANKS] = rdispls[i+r*MAX_ALLTOALLV_RANKS] = disp;
|
||||
disp += scount;
|
||||
}
|
||||
ncclAllToAllv((char*)dataset.inputs[r], sendcounts, sdispls,
|
||||
(char*)dataset.outputs[r], recvcounts, rdispls, dataType, comms[r], streams[r]);
|
||||
ncclAllToAllv((char*)dataset.inputs[r], sendcounts+r*MAX_ALLTOALLV_RANKS, sdispls+r*MAX_ALLTOALLV_RANKS,
|
||||
(char*)dataset.outputs[r], recvcounts+r*MAX_ALLTOALLV_RANKS, rdispls+r*MAX_ALLTOALLV_RANKS, dataType, comms[r], streams[r]);
|
||||
}
|
||||
ncclGroupEnd();
|
||||
// Wait for reduction to complete
|
||||
|
||||
Reference in new issue
Block a user