Rework barrier and event code (#761)

* Rework barrier and event code

* Switch to inline asm
This commit is contained in:
Wenkai Du
2023-05-31 13:36:51 -07:00
committed by GitHub
parent 7519ecb476
commit 5a38ff192b
3 changed files with 5 additions and 6 deletions
+3 -4
View File
@@ -16,12 +16,11 @@
#define NCCL_SPINS_BEFORE_CHECK_ABORT 1000000
#define barrier_by_group() do { \
const int w = threadIdx.x/WARP_SIZE; \
const int wid = threadIdx.x%WARP_SIZE; \
__threadfence(); \
if (nthreads == NCCL_MAX_NTHREADS) { \
__syncthreads(); \
__asm__ __volatile__("s_waitcnt vmcnt(0) lgkmcnt(0)\ns_barrier\ns_waitcnt lgkmcnt(0)"); \
} else { \
const int w = threadIdx.x/WARP_SIZE; \
const int wid = threadIdx.x%WARP_SIZE; \
if (wid == 0) { \
barrier_next[w] += nthreads/WARP_SIZE; \
atomicAdd((unsigned long long *)barriers, 1); \