From 93c44e96cba86eaa03ae9da7b3fb34c5e0327a12 Mon Sep 17 00:00:00 2001 From: Wenkai Du Date: Wed, 14 Aug 2019 14:12:56 -0700 Subject: [PATCH] Default to minimal 2 rings and improve LL loop [ROCm/rccl commit: 4b77a16f3f8f6752b6735866487661353a03196a] --- projects/rccl/src/collectives/device/primitives.h | 4 ++-- projects/rccl/src/misc/rings.cc | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/projects/rccl/src/collectives/device/primitives.h b/projects/rccl/src/collectives/device/primitives.h index d2bc2cc5c2..c38341f92c 100644 --- a/projects/rccl/src/collectives/device/primitives.h +++ b/projects/rccl/src/collectives/device/primitives.h @@ -454,8 +454,8 @@ class ncclLLPrimitives { asm volatile ("flat_load_dwordx4 %0, %1, glc\n" "s_waitcnt vmcnt(0)\n" "buffer_wbinvl1_vol\n" : "=v"(i4) : "v"(src)); - if (checkAbort(recvConn[i]->opCountRem)) break; - } while (i4[1] != flag || i4[3] != flag); + if (i4[1] == flag && i4[3] == flag) break; + } while (!checkAbort(recvConn[i]->opCountRem)); uint64_t val64 = (uint64_t)(i4[0]) + (((uint64_t)i4[2]) << 32); #else do { diff --git a/projects/rccl/src/misc/rings.cc b/projects/rccl/src/misc/rings.cc index 68daa0cac8..ea01e44a18 100644 --- a/projects/rccl/src/misc/rings.cc +++ b/projects/rccl/src/misc/rings.cc @@ -171,7 +171,9 @@ static ncclResult_t fillCoords(int nranks, int* matrix, int* coords, int* rankTo } } -#ifdef __PPC__ +#if defined(__HIP_PLATFORM_HCC__) || defined(__HCC__) +#define DEFAULT_MIN_NRINGS 2 +#elif defined(__PPC__) // Make the default NCCL_MIN_NRINGS=4 for IBM/Power nodes #define DEFAULT_MIN_NRINGS 4 #else