From 6e9e5275773e88b561622b0ba69535515a901fe0 Mon Sep 17 00:00:00 2001
From: cjknight <cjknight2009@gmail.com>
Date: Sat, 1 Jun 2024 00:26:50 -0500
Subject: [PATCH] add dev_barrier to help with testing

---
 gpu/src/pm_cuda.cpp | 14 ++++++++++++++
 gpu/src/pm_cuda.h   |  2 ++
 2 files changed, 16 insertions(+)

diff --git a/gpu/src/pm_cuda.cpp b/gpu/src/pm_cuda.cpp
index feb2f51b..f612e8bb 100644
--- a/gpu/src/pm_cuda.cpp
+++ b/gpu/src/pm_cuda.cpp
@@ -284,6 +284,20 @@ void PM::dev_check_pointer(int rnk, const char * name, void * ptr)
 #endif
 }
 
+void PM::dev_barrier()
+{
+#ifdef _DEBUG_PM
+  printf("Inside PM::dev_barrier()\n");
+#endif
+  
+  cudaDeviceSynchronize();
+  _CUDA_CHECK_ERRORS();
+  
+#ifdef _DEBUG_PM
+  printf(" -- Leaving PM::dev_barrier()\n");
+#endif
+}
+
 void PM::dev_stream_create(cudaStream_t & s)
 {
 #ifdef _DEBUG_PM
diff --git a/gpu/src/pm_cuda.h b/gpu/src/pm_cuda.h
index d7aec984..acc7e3c9 100644
--- a/gpu/src/pm_cuda.h
+++ b/gpu/src/pm_cuda.h
@@ -64,6 +64,8 @@ namespace PM_NS {
     void dev_pull(void*, void*, size_t);
     void dev_copy(void*, void*, size_t);
 
+    void dev_barrier();
+    
     // specific to cuda
     
     int dev_push_async(void * d_ptr, void * h_ptr, size_t N, cudaStream_t &s);