diff --git a/projects/rccl/src/collectives/device/prims_simple.h b/projects/rccl/src/collectives/device/prims_simple.h index 27c02bf0bd..39f6e46ed6 100644 --- a/projects/rccl/src/collectives/device/prims_simple.h +++ b/projects/rccl/src/collectives/device/prims_simple.h @@ -100,7 +100,11 @@ private: #endif // volatile is faster than acquire but not as correct. Make sure reduceCopy // loads data using volatile so it doesn't see stale data in L1. +#ifdef __GFX9__ return atomicAdd((unsigned long long *)ptr, 0); +#else + return __atomic_load_n(ptr, __ATOMIC_SEQ_CST); +#endif } template diff --git a/projects/rccl/src/graph/tuning.cc b/projects/rccl/src/graph/tuning.cc index 9b1f2fb853..ce32a05a18 100644 --- a/projects/rccl/src/graph/tuning.cc +++ b/projects/rccl/src/graph/tuning.cc @@ -448,7 +448,8 @@ ncclResult_t ncclTopoTuneModel(struct ncclComm* comm, int minCompCap, int maxCom } for (int c=0; ctopo->nodes[GPU].nodes[0].gpu.gcn/100 == 11) ? 0 : protoEnable[p]; if (pEnable == 2 && p == NCCL_PROTO_LL128) { #if defined(__HIP_PLATFORM_HCC__) || defined(__HCC__) || defined(__HIPCC__) #if defined(ENABLE_LL128)