From 26b1b0b822c0ade43a59f0bd06d39505b66e039f Mon Sep 17 00:00:00 2001 From: Nusrat Islam Date: Thu, 4 Jan 2024 16:20:42 -0600 Subject: [PATCH] Add option to disable out-of-place [ROCm/rccl-tests commit: a2bec5d2f69b28a47c6cde881028e4b5c258b0c4] --- projects/rccl-tests/src/common.cu | 36 ++++++++++++++++++++++--------- projects/rccl-tests/src/common.h | 1 + 2 files changed, 27 insertions(+), 10 deletions(-) diff --git a/projects/rccl-tests/src/common.cu b/projects/rccl-tests/src/common.cu index 4d9e302802..e49c0d3f52 100644 --- a/projects/rccl-tests/src/common.cu +++ b/projects/rccl-tests/src/common.cu @@ -94,6 +94,7 @@ static int numDevices = 1; static int ranksPerGpu = 1; static int enable_multiranks = 0; static int delay_inout_place = 0; +static int enable_out_of_place = 1; #define NUM_BLOCKS 32 @@ -653,8 +654,10 @@ testResult_t TimeTest(struct threadArgs* args, ncclDataType_t type, const char* char rootName[100]; sprintf(rootName, "%6i", root); PRINT("%12li %12li %8s %6s %6s", std::max(args->sendBytes, args->expectedBytes), args->nbytes / wordSize(type), typeName, opName, rootName); - TESTCHECK(BenchTime(args, type, op, root, 0)); - usleep(delay_inout_place); + if (enable_out_of_place) { + TESTCHECK(BenchTime(args, type, op, root, 0)); + usleep(delay_inout_place); + } TESTCHECK(BenchTime(args, type, op, root, 1)); PRINT("\n"); } @@ -795,6 +798,7 @@ int main(int argc, char* argv[]) { {"cudagraph", required_argument, 0, 'G'}, {"report_cputime", required_argument, 0, 'C'}, {"average", required_argument, 0, 'a'}, + {"out_of_place", required_argument, 0, 'O'}, #ifdef RCCL_MULTIRANKPERGPU {"enable_multiranks", required_argument, 0, 'x'}, {"ranks_per_gpu", required_argument, 0, 'R'}, @@ -807,9 +811,9 @@ int main(int argc, char* argv[]) { int c; #ifdef RCCL_MULTIRANKPERGPU - c = getopt_long(argc, argv, "t:g:b:e:i:f:n:m:w:p:c:o:d:r:z:Y:T:G:C:a:y:s:u:h:R:x:q:", longopts, &longindex); + c = getopt_long(argc, argv, "t:g:b:e:i:f:n:m:w:p:c:o:d:r:z:Y:T:G:C:O:a:y:s:u:h:R:x:q:", longopts, &longindex); #else - c = getopt_long(argc, argv, "t:g:b:e:i:f:n:m:w:p:c:o:d:r:z:Y:T:G:C:a:y:s:u:h:q:", longopts, &longindex); + c = getopt_long(argc, argv, "t:g:b:e:i:f:n:m:w:p:c:o:d:r:z:Y:T:G:C:O:a:y:s:u:h:q:", longopts, &longindex); #endif if (c == -1) @@ -907,6 +911,9 @@ int main(int argc, char* argv[]) { case 'C': report_cputime = strtol(optarg, NULL, 0); break; + case 'O': + enable_out_of_place = strtol(optarg, NULL, 0); + break; case 'a': average = (int)strtol(optarg, NULL, 0); break; @@ -953,6 +960,7 @@ int main(int argc, char* argv[]) { "[-T,--timeout