[cig-commits] [commit] devel, master: adds preprocessor function GPU_ERROR_CHECKING for ENABLE_VERY_SLOW_ERROR_CHECKING (c28216c)

cig_noreply at geodynamics.org cig_noreply at geodynamics.org
Thu Nov 6 08:29:14 PST 2014


Repository : https://github.com/geodynamics/specfem3d_globe

On branches: devel,master
Link       : https://github.com/geodynamics/specfem3d_globe/compare/bc58e579b3b0838a0968725a076f5904845437ca...be63f20cbb6f462104e949894dbe205d2398cd7f

>---------------------------------------------------------------

commit c28216cc4d4ed3d596ebdbcdba5949e40db79118
Author: daniel peter <peterda at ethz.ch>
Date:   Fri Aug 22 17:46:32 2014 +0200

    adds preprocessor function GPU_ERROR_CHECKING for ENABLE_VERY_SLOW_ERROR_CHECKING


>---------------------------------------------------------------

c28216cc4d4ed3d596ebdbcdba5949e40db79118
 src/gpu/assemble_MPI_scalar_gpu.c         |   9 +-
 src/gpu/assemble_MPI_vector_gpu.c         |  24 ++---
 src/gpu/check_fields_gpu.c                |  12 +--
 src/gpu/compute_add_sources_elastic_gpu.c |  17 +--
 src/gpu/compute_coupling_gpu.c            |  20 +---
 src/gpu/compute_forces_crust_mantle_gpu.c |  15 +--
 src/gpu/compute_forces_inner_core_gpu.c   |  15 +--
 src/gpu/compute_forces_outer_core_gpu.c   |  13 +--
 src/gpu/compute_kernels_gpu.c             |  23 ++--
 src/gpu/compute_stacey_acoustic_gpu.c     |  12 +--
 src/gpu/compute_stacey_elastic_gpu.c      |  12 +--
 src/gpu/mesh_constants_gpu.h              |   7 +-
 src/gpu/noise_tomography_gpu.c            |  12 +--
 src/gpu/prepare_mesh_constants_gpu.c      |  48 +++------
 src/gpu/transfer_fields_gpu.c             | 168 ++++++++----------------------
 src/gpu/update_displacement_gpu.c         |  33 +++---
 src/gpu/write_seismograms_gpu.c           |   8 +-
 17 files changed, 127 insertions(+), 321 deletions(-)

diff --git a/src/gpu/assemble_MPI_scalar_gpu.c b/src/gpu/assemble_MPI_scalar_gpu.c
index 534e662..baf9e52 100644
--- a/src/gpu/assemble_MPI_scalar_gpu.c
+++ b/src/gpu/assemble_MPI_scalar_gpu.c
@@ -201,9 +201,8 @@ void FC_FUNC_ (transfer_boun_pot_from_device,
     }
   }
 #endif
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("transfer_boun_pot_from_device");
-#endif
+
+  GPU_ERROR_CHECKING ("transfer_boun_pot_from_device");
 }
 
 /* ----------------------------------------------------------------------------------------------- */
@@ -369,9 +368,7 @@ void FC_FUNC_ (transfer_asmbl_pot_to_device,
   }
 #endif
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
   //double end_time = get_time_val ();
   //printf ("Elapsed time: %e\n", end_time-start_time);
-  exit_on_gpu_error ("transfer_asmbl_pot_to_device");
-#endif
+  GPU_ERROR_CHECKING ("transfer_asmbl_pot_to_device");
 }
diff --git a/src/gpu/assemble_MPI_vector_gpu.c b/src/gpu/assemble_MPI_vector_gpu.c
index 4746b75..23158b4 100644
--- a/src/gpu/assemble_MPI_vector_gpu.c
+++ b/src/gpu/assemble_MPI_vector_gpu.c
@@ -345,9 +345,7 @@ void FC_FUNC_(transfer_boun_from_device,
     exit_on_error("Error invalid IREGION in transfer_boun_from_device() routine");
   } // switch (*IREGION)
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("transfer_boun_from_device");
-#endif
+  GPU_ERROR_CHECKING ("transfer_boun_from_device");
 }
 
 /* ----------------------------------------------------------------------------------------------- */
@@ -520,9 +518,7 @@ void FC_FUNC_ (transfer_asmbl_accel_to_device,
       }
     }
 #endif
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("transfer_asmbl_accel_to_device in crust_mantle");
-#endif
+    GPU_ERROR_CHECKING ("transfer_asmbl_accel_to_device in crust_mantle");
     break; // IREGION_CRUST_MANTLE
 
   // inner core region
@@ -655,18 +651,14 @@ void FC_FUNC_ (transfer_asmbl_accel_to_device,
       }
     }
 #endif
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("transfer_asmbl_accel_to_device in inner_core");
-#endif
+    GPU_ERROR_CHECKING ("transfer_asmbl_accel_to_device in inner_core");
     break; // IREGION_INNER_CORE
 
   default:
     exit_on_error("Error invalid IREGION in transfer_asmbl_accel_to_device() routine");
   } // switch (*IREGION)
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("transfer_asmbl_accel_to_device");
-#endif
+  GPU_ERROR_CHECKING ("transfer_asmbl_accel_to_device");
 }
 
 
@@ -851,9 +843,7 @@ void FC_FUNC_(transfer_buffer_to_device_async,
     exit_on_error("Error invalid IREGION in transfer_buffer_to_device_async() routine");
   } // switch (*IREGION)
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("transfer_buffer_to_device_async");
-#endif
+  GPU_ERROR_CHECKING ("transfer_buffer_to_device_async");
 }
 
 
@@ -1002,8 +992,6 @@ void FC_FUNC_(sync_copy_from_device,
 
   // memory copy is now finished, so non-blocking MPI send can proceed
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("sync_copy_from_device");
-#endif
+  GPU_ERROR_CHECKING ("sync_copy_from_device");
 }
 
diff --git a/src/gpu/check_fields_gpu.c b/src/gpu/check_fields_gpu.c
index 6d84e63..bee6173 100644
--- a/src/gpu/check_fields_gpu.c
+++ b/src/gpu/check_fields_gpu.c
@@ -272,9 +272,7 @@ void FC_FUNC_ (check_norm_acoustic_from_device,
   // return result
   *norm = max;
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("after check_norm_acoustic_from_device");
-#endif
+  GPU_ERROR_CHECKING ("after check_norm_acoustic_from_device");
 }
 
 /* ----------------------------------------------------------------------------------------------- */
@@ -465,9 +463,7 @@ void FC_FUNC_ (check_norm_elastic_from_device,
   max = MAX (max_inner_core, max_crust_mantle);
   *norm = max;
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("after check_norm_elastic_from_device");
-#endif
+  GPU_ERROR_CHECKING ("after check_norm_elastic_from_device");
 }
 
 /*----------------------------------------------------------------------------------------------- */
@@ -626,7 +622,5 @@ void FC_FUNC_ (check_norm_strain_from_device,
   gpuFree (&d_max);
   free (h_max);
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("after check_norm_strain_from_device");
-#endif
+  GPU_ERROR_CHECKING ("after check_norm_strain_from_device");
 }
diff --git a/src/gpu/compute_add_sources_elastic_gpu.c b/src/gpu/compute_add_sources_elastic_gpu.c
index 206160a..dbf3f16 100644
--- a/src/gpu/compute_add_sources_elastic_gpu.c
+++ b/src/gpu/compute_add_sources_elastic_gpu.c
@@ -94,9 +94,7 @@ void FC_FUNC_ (compute_add_sources_gpu,
   }
 #endif
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("compute_add_sources_gpu");
-#endif
+  GPU_ERROR_CHECKING ("compute_add_sources_gpu");
 }
 
 /*----------------------------------------------------------------------------------------------- */
@@ -169,9 +167,7 @@ void FC_FUNC_ (compute_add_sources_backward_gpu,
   }
 #endif
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("compute_add_sources_backward_gpu");
-#endif
+  GPU_ERROR_CHECKING ("compute_add_sources_backward_gpu");
 }
 
 
@@ -268,9 +264,8 @@ void FC_FUNC_ (compute_add_sources_adjoint_gpu,
                                                                               mp->nadj_rec_local);
   }
 #endif
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error("compute_add_sources_adjoint_cuda");
-#endif
+
+  GPU_ERROR_CHECKING("compute_add_sources_adjoint_cuda");
 }
 
 /* ----------------------------------------------------------------------------------------------- */
@@ -338,9 +333,7 @@ void FC_FUNC_(transfer_adj_to_device,
   // copies extracted array values onto GPU
   gpuCopy_todevice_realw (&mp->d_adj_sourcearrays, mp->h_adj_sourcearrays_slice, mp->nadj_rec_local * NDIM * NGLL3);
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("compute_add_sources_adjoint_gpu");
-#endif
+  GPU_ERROR_CHECKING ("compute_add_sources_adjoint_gpu");
 }
 
 
diff --git a/src/gpu/compute_coupling_gpu.c b/src/gpu/compute_coupling_gpu.c
index ef69d09..5da4441 100644
--- a/src/gpu/compute_coupling_gpu.c
+++ b/src/gpu/compute_coupling_gpu.c
@@ -123,9 +123,7 @@ void FC_FUNC_ (compute_coupling_fluid_cmb_gpu,
   }
 #endif
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("compute_coupling_fluid_CMB_kernel");
-#endif
+  GPU_ERROR_CHECKING ("compute_coupling_fluid_CMB_kernel");
 }
 
 /* ----------------------------------------------------------------------------------------------- */
@@ -220,9 +218,7 @@ void FC_FUNC_ (compute_coupling_fluid_icb_gpu,
   }
 #endif
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("compute_coupling_fluid_ICB_kernel");
-#endif
+  GPU_ERROR_CHECKING ("compute_coupling_fluid_ICB_kernel");
 }
 
 /*----------------------------------------------------------------------------------------------- */
@@ -329,9 +325,7 @@ void FC_FUNC_ (compute_coupling_cmb_fluid_gpu,
   }
 #endif
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("compute_coupling_CMB_fluid_gpu");
-#endif
+  GPU_ERROR_CHECKING ("compute_coupling_CMB_fluid_gpu");
 }
 
 /* ----------------------------------------------------------------------------------------------- */
@@ -436,9 +430,7 @@ void FC_FUNC_ (compute_coupling_icb_fluid_gpu,
   }
 #endif
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("compute_coupling_ICB_fluid_gpu");
-#endif
+  GPU_ERROR_CHECKING ("compute_coupling_ICB_fluid_gpu");
 }
 
 /*----------------------------------------------------------------------------------------------- */
@@ -533,7 +525,5 @@ void FC_FUNC_ (compute_coupling_ocean_gpu,
   }
 #endif
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("compute_coupling_ocean_gpu");
-#endif
+  GPU_ERROR_CHECKING ("compute_coupling_ocean_gpu");
 }
diff --git a/src/gpu/compute_forces_crust_mantle_gpu.c b/src/gpu/compute_forces_crust_mantle_gpu.c
index 2fd93bf..5488ec2 100644
--- a/src/gpu/compute_forces_crust_mantle_gpu.c
+++ b/src/gpu/compute_forces_crust_mantle_gpu.c
@@ -115,9 +115,7 @@ void crust_mantle (int nb_blocks_to_compute, Mesh *mp,
                    gpu_realw_mem d_b_R_yz,
                    int FORWARD_OR_ADJOINT) {
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("before kernel crust_mantle");
-#endif
+  GPU_ERROR_CHECKING ("before kernel crust_mantle");
 
   // safety check
   if (FORWARD_OR_ADJOINT != 1 && FORWARD_OR_ADJOINT != 3) {
@@ -384,9 +382,8 @@ void crust_mantle (int nb_blocks_to_compute, Mesh *mp,
     }
   }
 #endif
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("crust_mantle");
-#endif
+
+  GPU_ERROR_CHECKING ("crust_mantle");
 }
 
 /*----------------------------------------------------------------------------------------------- */
@@ -481,7 +478,7 @@ void FC_FUNC_ (compute_forces_crust_mantle_gpu,
     for (icolor = istart; icolor < nb_colors; icolor++) {
       nb_blocks_to_compute = mp->h_num_elem_colors_crust_mantle[icolor];
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
+#if ENABLE_VERY_SLOW_ERROR_CHECKING == 1
       // checks
       if (nb_blocks_to_compute <= 0) {
         printf ("Error number of color blocks in crust_mantle: %d -- color = %d \n",
@@ -773,7 +770,5 @@ void FC_FUNC_ (compute_forces_crust_mantle_gpu,
                  FORWARD_OR_ADJOINT);
   }
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("compute_forces_crust_mantle_ocl");
-#endif
+  GPU_ERROR_CHECKING ("compute_forces_crust_mantle_ocl");
 }
diff --git a/src/gpu/compute_forces_inner_core_gpu.c b/src/gpu/compute_forces_inner_core_gpu.c
index d2bdf82..6df30ba 100644
--- a/src/gpu/compute_forces_inner_core_gpu.c
+++ b/src/gpu/compute_forces_inner_core_gpu.c
@@ -88,9 +88,7 @@ void inner_core (int nb_blocks_to_compute, Mesh *mp,
                  gpu_realw_mem d_b_R_yz,
                  int FORWARD_OR_ADJOINT) {
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("before kernel inner_core");
-#endif
+  GPU_ERROR_CHECKING ("before kernel inner_core");
 
   // safety check
   if (FORWARD_OR_ADJOINT != 1 && FORWARD_OR_ADJOINT != 3) {
@@ -338,9 +336,8 @@ void inner_core (int nb_blocks_to_compute, Mesh *mp,
     }
   }
 #endif
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("inner_core");
-#endif
+
+  GPU_ERROR_CHECKING ("inner_core");
 }
 
 /*----------------------------------------------------------------------------------------------- */
@@ -481,7 +478,7 @@ void FC_FUNC_ (compute_forces_inner_core_gpu,
         nb_blocks_to_compute = num_elements;
       }
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
+#if ENABLE_VERY_SLOW_ERROR_CHECKING == 1
       // checks
       if (nb_blocks_to_compute <= 0) {
         printf ("Error number of color blocks in inner_core: %d -- color = %d \n",
@@ -694,7 +691,5 @@ void FC_FUNC_ (compute_forces_inner_core_gpu,
                 FORWARD_OR_ADJOINT);
   }
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("compute_forces_inner_core_ocl");
-#endif
+  GPU_ERROR_CHECKING ("compute_forces_inner_core_ocl");
 }
diff --git a/src/gpu/compute_forces_outer_core_gpu.c b/src/gpu/compute_forces_outer_core_gpu.c
index 5cc63e1..3649651 100644
--- a/src/gpu/compute_forces_outer_core_gpu.c
+++ b/src/gpu/compute_forces_outer_core_gpu.c
@@ -61,9 +61,7 @@ void outer_core (int nb_blocks_to_compute, Mesh *mp,
                  gpu_realw_mem d_b_B_array_rotation,
                  int FORWARD_OR_ADJOINT) {
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("before outer_core kernel Kernel_2");
-#endif
+  GPU_ERROR_CHECKING ("before outer_core kernel Kernel_2");
 
   // safety check
   if (FORWARD_OR_ADJOINT != 1 && FORWARD_OR_ADJOINT != 3) {
@@ -245,9 +243,8 @@ void outer_core (int nb_blocks_to_compute, Mesh *mp,
     }
   }
 #endif
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("kernel outer_core");
-#endif
+
+  GPU_ERROR_CHECKING ("kernel outer_core");
 }
 
 /*----------------------------------------------------------------------------------------------- */
@@ -432,9 +429,7 @@ void FC_FUNC_ (compute_forces_outer_core_gpu,
                 FORWARD_OR_ADJOINT);
   }
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
   //double end_time = get_time_val ();
   //printf ("Elapsed time: %e\n", end_time-start_time);
-  exit_on_gpu_error ("compute_forces_outer_core_gpu");
-#endif
+  GPU_ERROR_CHECKING ("compute_forces_outer_core_gpu");
 }
diff --git a/src/gpu/compute_kernels_gpu.c b/src/gpu/compute_kernels_gpu.c
index fda0880..9bab9f0 100644
--- a/src/gpu/compute_kernels_gpu.c
+++ b/src/gpu/compute_kernels_gpu.c
@@ -308,9 +308,8 @@ void FC_FUNC_ (compute_kernels_cm_gpu,
     }
 #endif
   }
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("compute_cm_gpu");
-#endif
+
+  GPU_ERROR_CHECKING ("compute_cm_gpu");
 }
 
 
@@ -506,9 +505,7 @@ void FC_FUNC_ (compute_kernels_ic_gpu,
 #endif
   }
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("compute_ic_gpu");
-#endif
+  GPU_ERROR_CHECKING ("compute_ic_gpu");
 }
 
 /* ----------------------------------------------------------------------------------------------- */
@@ -594,9 +591,8 @@ void FC_FUNC_ (compute_kernels_oc_gpu,
                                                                    mp->NSPEC_OUTER_CORE);
   }
 #endif
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("compute_kernels_oc_kernel");
-#endif
+
+  GPU_ERROR_CHECKING ("compute_kernels_oc_kernel");
 }
 
 /* ----------------------------------------------------------------------------------------------- */
@@ -668,9 +664,7 @@ void FC_FUNC_ (compute_kernels_strgth_noise_gpu,
   }
 #endif
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("compute_strength_noise_kernel_kernel");
-#endif
+  GPU_ERROR_CHECKING ("compute_strength_noise_kernel_kernel");
 }
 
 /* ----------------------------------------------------------------------------------------------- */
@@ -732,7 +726,6 @@ void FC_FUNC_ (compute_kernels_hess_gpu,
                                                                mp->NSPEC_CRUST_MANTLE);
   }
 #endif
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("compute_hess_kernel_gpu");
-#endif
+
+  GPU_ERROR_CHECKING ("compute_hess_kernel_gpu");
 }
diff --git a/src/gpu/compute_stacey_acoustic_gpu.c b/src/gpu/compute_stacey_acoustic_gpu.c
index e7ac4f8..03692b0 100644
--- a/src/gpu/compute_stacey_acoustic_gpu.c
+++ b/src/gpu/compute_stacey_acoustic_gpu.c
@@ -194,9 +194,7 @@ void FC_FUNC_ (compute_stacey_acoustic_gpu,
     gpuCopy_from_device_realw (d_b_absorb_potential, absorb_potential, NGLL2 * num_abs_boundary_faces);
   }
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("compute_stacey_acoustic_kernel");
-#endif
+  GPU_ERROR_CHECKING ("compute_stacey_acoustic_kernel");
 }
 
 /* ----------------------------------------------------------------------------------------------- */
@@ -320,9 +318,7 @@ void FC_FUNC_ (compute_stacey_acoustic_backward_gpu,
   }
 #endif
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("compute_stacey_acoustic_backward_kernel");
-#endif
+  GPU_ERROR_CHECKING ("compute_stacey_acoustic_backward_kernel");
 }
 
 
@@ -470,7 +466,5 @@ void FC_FUNC_ (compute_stacey_acoustic_undoatt_gpu,
   }
 #endif
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("compute_stacey_acoustic_undoatt_gpu");
-#endif
+  GPU_ERROR_CHECKING ("compute_stacey_acoustic_undoatt_gpu");
 }
diff --git a/src/gpu/compute_stacey_elastic_gpu.c b/src/gpu/compute_stacey_elastic_gpu.c
index 99a261d..f63852f 100644
--- a/src/gpu/compute_stacey_elastic_gpu.c
+++ b/src/gpu/compute_stacey_elastic_gpu.c
@@ -181,9 +181,7 @@ void FC_FUNC_ (compute_stacey_elastic_gpu,
     gpuCopy_from_device_realw (d_b_absorb_field, absorb_field, NDIM * NGLL2 * num_abs_boundary_faces);
   }
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("compute_stacey_elastic_gpu");
-#endif
+  GPU_ERROR_CHECKING ("compute_stacey_elastic_gpu");
 }
 
 /* ----------------------------------------------------------------------------------------------- */
@@ -303,9 +301,7 @@ void FC_FUNC_ (compute_stacey_elastic_backward_gpu,
   }
 #endif
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("compute_stacey_elastic_backward_gpu");
-#endif
+  GPU_ERROR_CHECKING ("compute_stacey_elastic_backward_gpu");
 }
 
 
@@ -455,7 +451,5 @@ void FC_FUNC_ (compute_stacey_elastic_undoatt_gpu,
   }
 #endif
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("compute_stacey_elastic_undoatt_gpu");
-#endif
+  GPU_ERROR_CHECKING ("compute_stacey_elastic_undoatt_gpu");
 }
diff --git a/src/gpu/mesh_constants_gpu.h b/src/gpu/mesh_constants_gpu.h
index b97987b..77ca387 100644
--- a/src/gpu/mesh_constants_gpu.h
+++ b/src/gpu/mesh_constants_gpu.h
@@ -115,7 +115,12 @@ typedef float realw;
 
 // error checking after cuda function calls
 // (note: this synchronizes many calls, thus e.g. no asynchronous memcpy possible)
-//#define ENABLE_VERY_SLOW_ERROR_CHECKING
+#define ENABLE_VERY_SLOW_ERROR_CHECKING 0
+#if ENABLE_VERY_SLOW_ERROR_CHECKING == 1
+#define GPU_ERROR_CHECKING(x) exit_on_gpu_error(x);
+#else
+#define GPU_ERROR_CHECKING(x)
+#endif
 
 // maximum function
 #define MAX(x, y)                  (((x) < (y)) ? (y) : (x))
diff --git a/src/gpu/noise_tomography_gpu.c b/src/gpu/noise_tomography_gpu.c
index 36cfb8c..1b7ea90 100644
--- a/src/gpu/noise_tomography_gpu.c
+++ b/src/gpu/noise_tomography_gpu.c
@@ -83,9 +83,7 @@ void FC_FUNC_ (noise_transfer_surface_to_host,
   // copies noise array to CPU
   gpuCopy_from_device_realw (&mp->d_noise_surface_movie, h_noise_surface_movie, NDIM * NGLL2 * mp->nspec2D_top_crust_mantle);
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("noise_transfer_surface_to_host");
-#endif
+  GPU_ERROR_CHECKING ("noise_transfer_surface_to_host");
 }
 
 /*----------------------------------------------------------------------------------------------- */
@@ -146,9 +144,7 @@ void FC_FUNC_ (noise_add_source_master_rec_gpu,
 #endif
   }
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("noise_add_source_master_rec_kernel");
-#endif
+  GPU_ERROR_CHECKING ("noise_add_source_master_rec_kernel");
 }
 
 /* ----------------------------------------------------------------------------------------------- */
@@ -267,7 +263,5 @@ void FC_FUNC_ (noise_add_surface_movie_gpu,
     break;
   }
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("noise_read_add_surface_movie_kernel");
-#endif
+  GPU_ERROR_CHECKING ("noise_read_add_surface_movie_kernel");
 }
diff --git a/src/gpu/prepare_mesh_constants_gpu.c b/src/gpu/prepare_mesh_constants_gpu.c
index b4b4958..a4f356c 100644
--- a/src/gpu/prepare_mesh_constants_gpu.c
+++ b/src/gpu/prepare_mesh_constants_gpu.c
@@ -389,9 +389,7 @@ void FC_FUNC_ (prepare_constants_device,
   }
 #endif
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("prepare_constants_device");
-#endif
+  GPU_ERROR_CHECKING ("prepare_constants_device");
 }
 
 /*----------------------------------------------------------------------------------------------- */
@@ -436,9 +434,7 @@ void FC_FUNC_ (prepare_fields_rotation_device,
     gpuCreateCopy_todevice_realw (&mp->d_b_B_array_rotation, b_B_array_rotation, NGLL3 * mp->NSPEC_OUTER_CORE);
   }
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("prepare_fields_rotation_device");
-#endif
+  GPU_ERROR_CHECKING ("prepare_fields_rotation_device");
 }
 
 /*----------------------------------------------------------------------------------------------- */
@@ -487,9 +483,7 @@ void FC_FUNC_ (prepare_fields_gravity_device,
   mp->RHO_BOTTOM_OC = (realw) *RHO_BOTTOM_OC;
   mp->RHO_TOP_OC = (realw) *RHO_TOP_OC;
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("prepare_fields_gravity_device");
-#endif
+  GPU_ERROR_CHECKING ("prepare_fields_gravity_device");
 }
 
 
@@ -617,9 +611,7 @@ void FC_FUNC_ (prepare_fields_attenuat_device,
     gpuCreateCopy_todevice_realw (&mp->d_b_gammaval, b_gammaval, N_SLS);
   }
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("prepare_fields_attenuat_device");
-#endif
+  GPU_ERROR_CHECKING ("prepare_fields_attenuat_device");
 }
 
 /*----------------------------------------------------------------------------------------------- */
@@ -731,9 +723,7 @@ void FC_FUNC_ (prepare_fields_strain_device,
     }
   }
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("prepare_fields_strain_device");
-#endif
+  GPU_ERROR_CHECKING ("prepare_fields_strain_device");
 }
 
 /*----------------------------------------------------------------------------------------------- */
@@ -915,9 +905,7 @@ void FC_FUNC_ (prepare_fields_absorb_device,
     }
   }
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("prepare_fields_absorb_device");
-#endif
+  GPU_ERROR_CHECKING ("prepare_fields_absorb_device");
 }
 
 /*----------------------------------------------------------------------------------------------- */
@@ -1101,9 +1089,7 @@ void FC_FUNC_ (prepare_mpi_buffers_device,
     }
   }
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("prepare_mpi_buffers_device");
-#endif
+  GPU_ERROR_CHECKING ("prepare_mpi_buffers_device");
 }
 
 
@@ -1168,9 +1154,7 @@ void FC_FUNC_ (prepare_fields_noise_device,
     gpuMemset_realw (&mp->d_Sigma_kl, NGLL3 * mp->NSPEC_CRUST_MANTLE, 0);
   }
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("prepare_fields_noise_device");
-#endif
+  GPU_ERROR_CHECKING ("prepare_fields_noise_device");
 }
 
 
@@ -1207,9 +1191,7 @@ void FC_FUNC_ (prepare_oceans_device,
   // normals
   gpuCreateCopy_todevice_realw (&mp->d_normal_ocean_load, h_normal_ocean_load, NDIM * mp->npoin_oceans);
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("prepare_oceans_device");
-#endif
+  GPU_ERROR_CHECKING ("prepare_oceans_device");
 }
 
 
@@ -1739,9 +1721,7 @@ void FC_FUNC_ (prepare_crust_mantle_device,
   // (especially needed for OpenCL kernels to finish executing)
   gpuSynchronize();
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("prepare_crust_mantle_device");
-#endif
+  GPU_ERROR_CHECKING ("prepare_crust_mantle_device");
 }
 
 
@@ -2033,9 +2013,7 @@ void FC_FUNC_ (prepare_outer_core_device,
   // (especially needed for OpenCL kernels to finish executing)
   gpuSynchronize();
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("prepare_outer_core_device");
-#endif
+  GPU_ERROR_CHECKING ("prepare_outer_core_device");
 }
 
 /*----------------------------------------------------------------------------------------------- */
@@ -2411,9 +2389,7 @@ void FC_FUNC_ (prepare_inner_core_device,
   // (especially needed for OpenCL kernels to finish executing)
   gpuSynchronize();
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("prepare_inner_core_device");
-#endif
+  GPU_ERROR_CHECKING ("prepare_inner_core_device");
 }
 
 /*----------------------------------------------------------------------------------------------- */
diff --git a/src/gpu/transfer_fields_gpu.c b/src/gpu/transfer_fields_gpu.c
index 3f2adf7..887823b 100644
--- a/src/gpu/transfer_fields_gpu.c
+++ b/src/gpu/transfer_fields_gpu.c
@@ -47,9 +47,7 @@ void FC_FUNC_(transfer_fields_cm_to_device,
   gpuCopy_todevice_realw (&mp->d_veloc_crust_mantle, veloc, *size);
   gpuCopy_todevice_realw (&mp->d_accel_crust_mantle, accel, *size);
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error("after transfer_fields_cm_to_device");
-#endif
+  GPU_ERROR_CHECKING ("after transfer_fields_cm_to_device");
 }
 
 /* ----------------------------------------------------------------------------------------------- */
@@ -68,9 +66,7 @@ void FC_FUNC_(transfer_fields_ic_to_device,
   gpuCopy_todevice_realw (&mp->d_veloc_inner_core, veloc, *size);
   gpuCopy_todevice_realw (&mp->d_accel_inner_core, accel, *size);
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error("after transfer_fields_ic_to_device");
-#endif
+  GPU_ERROR_CHECKING ("after transfer_fields_ic_to_device");
 }
 
 /* ----------------------------------------------------------------------------------------------- */
@@ -89,9 +85,7 @@ void FC_FUNC_(transfer_fields_oc_to_device,
   gpuCopy_todevice_realw (&mp->d_veloc_outer_core, veloc, *size);
   gpuCopy_todevice_realw (&mp->d_accel_outer_core, accel, *size);
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error("after transfer_fields_oc_to_device");
-#endif
+  GPU_ERROR_CHECKING ("after transfer_fields_oc_to_device");
 }
 
 /* ----------------------------------------------------------------------------------------------- */
@@ -114,9 +108,7 @@ void FC_FUNC_(transfer_b_fields_cm_to_device,
   gpuCopy_todevice_realw (&mp->d_b_veloc_crust_mantle, b_veloc, *size);
   gpuCopy_todevice_realw (&mp->d_b_accel_crust_mantle, b_accel, *size);
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error("after transfer_b_fields_cm_to_device");
-#endif
+  GPU_ERROR_CHECKING ("after transfer_b_fields_cm_to_device");
 }
 
 /* ----------------------------------------------------------------------------------------------- */
@@ -138,9 +130,7 @@ void FC_FUNC_(transfer_b_fields_ic_to_device,
   gpuCopy_todevice_realw (&mp->d_b_veloc_inner_core, b_veloc, *size);
   gpuCopy_todevice_realw (&mp->d_b_accel_inner_core, b_accel, *size);
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error("after transfer_b_fields_ic_to_device");
-#endif
+  GPU_ERROR_CHECKING ("after transfer_b_fields_ic_to_device");
 }
 
 /* ----------------------------------------------------------------------------------------------- */
@@ -162,9 +152,7 @@ void FC_FUNC_(transfer_b_fields_oc_to_device,
   gpuCopy_todevice_realw (&mp->d_b_veloc_outer_core, b_veloc, *size);
   gpuCopy_todevice_realw (&mp->d_b_accel_outer_core, b_accel, *size);
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error("after transfer_b_fields_oc_to_device");
-#endif
+  GPU_ERROR_CHECKING ("after transfer_b_fields_oc_to_device");
 }
 
 /* ----------------------------------------------------------------------------------------------- */
@@ -186,9 +174,7 @@ void FC_FUNC_(transfer_fields_cm_from_device,
   gpuCopy_from_device_realw (&mp->d_veloc_crust_mantle, veloc, *size);
   gpuCopy_from_device_realw (&mp->d_accel_crust_mantle, accel, *size);
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error("after transfer_fields_cm_from_device");
-#endif
+  GPU_ERROR_CHECKING ("after transfer_fields_cm_from_device");
 }
 
 /* ----------------------------------------------------------------------------------------------- */
@@ -207,9 +193,7 @@ void FC_FUNC_(transfer_fields_ic_from_device,
   gpuCopy_from_device_realw (&mp->d_veloc_inner_core, veloc, *size);
   gpuCopy_from_device_realw (&mp->d_accel_inner_core, accel, *size);
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error("after transfer_fields_ic_from_device");
-#endif
+  GPU_ERROR_CHECKING ("after transfer_fields_ic_from_device");
 }
 /* ----------------------------------------------------------------------------------------------- */
 
@@ -229,9 +213,7 @@ void FC_FUNC_(transfer_fields_oc_from_device,
   gpuCopy_from_device_realw (&mp->d_veloc_outer_core, veloc, *size);
   gpuCopy_from_device_realw (&mp->d_accel_outer_core, accel, *size);
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error("after transfer_fields_oc_from_device");
-#endif
+  GPU_ERROR_CHECKING ("after transfer_fields_oc_from_device");
 }
 
 
@@ -254,9 +236,7 @@ void FC_FUNC_(transfer_b_fields_cm_from_device,
   gpuCopy_from_device_realw (&mp->d_b_veloc_crust_mantle, b_veloc, *size);
   gpuCopy_from_device_realw (&mp->d_b_accel_crust_mantle, b_accel, *size);
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error("after transfer_b_fields_cm_from_device");
-#endif
+  GPU_ERROR_CHECKING ("after transfer_b_fields_cm_from_device");
 }
 
 /* ----------------------------------------------------------------------------------------------- */
@@ -276,9 +256,7 @@ void FC_FUNC_(transfer_b_fields_ic_from_device,
   gpuCopy_from_device_realw (&mp->d_b_veloc_inner_core, b_veloc, *size);
   gpuCopy_from_device_realw (&mp->d_b_accel_inner_core, b_accel, *size);
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error("after transfer_b_fields_ic_from_device");
-#endif
+  GPU_ERROR_CHECKING ("after transfer_b_fields_ic_from_device");
 }
 
 /* ----------------------------------------------------------------------------------------------- */
@@ -299,9 +277,7 @@ void FC_FUNC_(transfer_b_fields_oc_from_device,
   gpuCopy_from_device_realw (&mp->d_b_veloc_outer_core, b_veloc, *size);
   gpuCopy_from_device_realw (&mp->d_b_accel_outer_core, b_accel, *size);
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error("after transfer_b_fields_oc_from_device");
-#endif
+  GPU_ERROR_CHECKING ("after transfer_b_fields_oc_from_device");
 }
 
 /* ----------------------------------------------------------------------------------------------- */
@@ -324,9 +300,7 @@ void FC_FUNC_(transfer_displ_cm_from_device,
   // copies array to CPU
   gpuCopy_from_device_realw (&mp->d_displ_crust_mantle, displ, *size);
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error("after transfer_displ_cm_from_device");
-#endif
+  GPU_ERROR_CHECKING ("after transfer_displ_cm_from_device");
 }
 
 /* ----------------------------------------------------------------------------------------------- */
@@ -343,9 +317,7 @@ void FC_FUNC_(transfer_b_displ_cm_from_device,
   // copies array to CPU
   gpuCopy_from_device_realw (&mp->d_b_displ_crust_mantle, displ, *size);
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error("after transfer_b_displ_cm_from_device");
-#endif
+  GPU_ERROR_CHECKING ("after transfer_b_displ_cm_from_device");
 }
 
 /* ----------------------------------------------------------------------------------------------- */
@@ -363,9 +335,7 @@ void FC_FUNC_(transfer_displ_ic_from_device,
   // copies array to CPU
   gpuCopy_from_device_realw (&mp->d_displ_inner_core, displ, *size);
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error("after transfer_displ_ic_from_device");
-#endif
+  GPU_ERROR_CHECKING ("after transfer_displ_ic_from_device");
 }
 
 /* ----------------------------------------------------------------------------------------------- */
@@ -383,9 +353,7 @@ void FC_FUNC_(transfer_b_displ_ic_from_device,
   // copies array to CPU
   gpuCopy_from_device_realw (&mp->d_b_displ_inner_core, displ, *size);
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error("after transfer_b_displ_ic_from_device");
-#endif
+  GPU_ERROR_CHECKING ("after transfer_b_displ_ic_from_device");
 }
 
 /* ----------------------------------------------------------------------------------------------- */
@@ -403,9 +371,7 @@ void FC_FUNC_(transfer_displ_oc_from_device,
   // copies array to CPU
   gpuCopy_from_device_realw (&mp->d_displ_outer_core, displ, *size);
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error("after transfer_displ_oc_from_device");
-#endif
+  GPU_ERROR_CHECKING ("after transfer_displ_oc_from_device");
 }
 
 /* ----------------------------------------------------------------------------------------------- */
@@ -422,9 +388,7 @@ void FC_FUNC_(transfer_b_displ_oc_from_device,
   // copies array to CPU
   gpuCopy_from_device_realw (&mp->d_b_displ_outer_core, displ, *size);
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error("after transfer_b_displ_oc_from_device");
-#endif
+  GPU_ERROR_CHECKING ("after transfer_b_displ_oc_from_device");
 }
 
 /* ----------------------------------------------------------------------------------------------- */
@@ -443,9 +407,7 @@ void FC_FUNC_(transfer_veloc_cm_from_device,
   // copies array to CPU
   gpuCopy_from_device_realw (&mp->d_veloc_crust_mantle, veloc, *size);
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error("after transfer_veloc_cm_from_device");
-#endif
+  GPU_ERROR_CHECKING ("after transfer_veloc_cm_from_device");
 }
 
 /* ----------------------------------------------------------------------------------------------- */
@@ -463,9 +425,7 @@ void FC_FUNC_(transfer_veloc_ic_from_device,
   // copies array to CPU
   gpuCopy_from_device_realw (&mp->d_veloc_inner_core, veloc, *size);
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error("after transfer_veloc_ic_from_device");
-#endif
+  GPU_ERROR_CHECKING ("after transfer_veloc_ic_from_device");
 }
 /* ----------------------------------------------------------------------------------------------- */
 
@@ -482,9 +442,7 @@ void FC_FUNC_(transfer_veloc_oc_from_device,
   // copies array to CPU
   gpuCopy_from_device_realw (&mp->d_veloc_outer_core, veloc, *size);
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error("after transfer_veloc_oc_from_device");
-#endif
+  GPU_ERROR_CHECKING ("after transfer_veloc_oc_from_device");
 }
 
 
@@ -504,9 +462,7 @@ void FC_FUNC_(transfer_accel_cm_to_device,
 
   gpuCopy_todevice_realw (&mp->d_accel_crust_mantle, accel, *size);
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error("after transfer_accel_cm_to_device");
-#endif
+  GPU_ERROR_CHECKING ("after transfer_accel_cm_to_device");
 }
 
 /* ----------------------------------------------------------------------------------------------- */
@@ -523,9 +479,7 @@ void FC_FUNC_(transfer_accel_cm_from_device,
   // copies array to CPU
   gpuCopy_from_device_realw (&mp->d_accel_crust_mantle, accel, *size);
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error("after transfer_accel_cm_from_device");
-#endif
+  GPU_ERROR_CHECKING ("after transfer_accel_cm_from_device");
 }
 
 /* ----------------------------------------------------------------------------------------------- */
@@ -542,9 +496,7 @@ void FC_FUNC_(transfer_b_accel_cm_from_device,
   // copies array to CPU
   gpuCopy_from_device_realw (&mp->d_b_accel_crust_mantle, b_accel, *size);
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error("after transfer_b_accel_cm_from_device");
-#endif
+  GPU_ERROR_CHECKING ("after transfer_b_accel_cm_from_device");
 }
 
 /* ----------------------------------------------------------------------------------------------- */
@@ -561,9 +513,7 @@ void FC_FUNC_(transfer_accel_ic_from_device,
   // copies array to CPU
   gpuCopy_from_device_realw (&mp->d_accel_inner_core, accel, *size);
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error("after transfer_accel_ic_from_device");
-#endif
+  GPU_ERROR_CHECKING ("after transfer_accel_ic_from_device");
 }
 
 /* ----------------------------------------------------------------------------------------------- */
@@ -580,9 +530,7 @@ void FC_FUNC_(transfer_accel_oc_from_device,
   // copies array to CPU
   gpuCopy_from_device_realw (&mp->d_accel_outer_core, accel, *size);
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error("after transfer_accel_oc_from_device");
-#endif
+  GPU_ERROR_CHECKING ("after transfer_accel_oc_from_device");
 }
 
 /* ----------------------------------------------------------------------------------------------- */
@@ -614,9 +562,7 @@ void FC_FUNC_(transfer_strain_cm_from_device,
   gpuCopy_from_device_realw (&mp->d_epsilondev_xz_crust_mantle, epsilondev_xz, size);
   gpuCopy_from_device_realw (&mp->d_epsilondev_yz_crust_mantle, epsilondev_yz, size);
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error("after transfer_strain_cm_from_device");
-#endif
+  GPU_ERROR_CHECKING ("after transfer_strain_cm_from_device");
 }
 
 /* ----------------------------------------------------------------------------------------------- */
@@ -650,9 +596,7 @@ void FC_FUNC_(transfer_b_strain_cm_to_device,
   gpuCopy_todevice_realw (&mp->d_b_epsilondev_xz_crust_mantle, epsilondev_xz, size);
   gpuCopy_todevice_realw (&mp->d_b_epsilondev_yz_crust_mantle, epsilondev_yz, size);
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error("after transfer_b_strain_cm_to_device");
-#endif
+  GPU_ERROR_CHECKING ("after transfer_b_strain_cm_to_device");
 }
 
 /* ----------------------------------------------------------------------------------------------- */
@@ -682,9 +626,7 @@ void FC_FUNC_(transfer_strain_ic_from_device,
   gpuCopy_from_device_realw (&mp->d_epsilondev_xz_inner_core, epsilondev_xz, size);
   gpuCopy_from_device_realw (&mp->d_epsilondev_yz_inner_core, epsilondev_yz, size);
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error("after transfer_strain_ic_from_device");
-#endif
+  GPU_ERROR_CHECKING ("after transfer_strain_ic_from_device");
 }
 
 /* ----------------------------------------------------------------------------------------------- */
@@ -717,9 +659,7 @@ void FC_FUNC_(transfer_b_strain_ic_to_device,
   gpuCopy_todevice_realw (&mp->d_b_epsilondev_xz_inner_core, epsilondev_xz, size);
   gpuCopy_todevice_realw (&mp->d_b_epsilondev_yz_inner_core, epsilondev_yz, size);
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error("after transfer_b_strain_ic_to_device");
-#endif
+  GPU_ERROR_CHECKING ("after transfer_b_strain_ic_to_device");
 }
 
 /* ----------------------------------------------------------------------------------------------- */
@@ -750,9 +690,7 @@ void FC_FUNC_(transfer_rmemory_cm_from_device,
   gpuCopy_from_device_realw (&mp->d_R_xz_crust_mantle, R_xz, size);
   gpuCopy_from_device_realw (&mp->d_R_yz_crust_mantle, R_yz, size);
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error("after transfer_rmemory_cm_from_device");
-#endif
+  GPU_ERROR_CHECKING ("after transfer_rmemory_cm_from_device");
 }
 
 /* ----------------------------------------------------------------------------------------------- */
@@ -786,9 +724,7 @@ void FC_FUNC_(transfer_b_rmemory_cm_to_device,
   gpuCopy_todevice_realw (&mp->d_b_R_xz_crust_mantle, b_R_xz, size);
   gpuCopy_todevice_realw (&mp->d_b_R_yz_crust_mantle, b_R_yz, size);
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error("after transfer_b_rmemory_cm_to_device");
-#endif
+  GPU_ERROR_CHECKING ("after transfer_b_rmemory_cm_to_device");
 }
 
 /* ----------------------------------------------------------------------------------------------- */
@@ -816,9 +752,7 @@ void FC_FUNC_(transfer_rmemory_ic_from_device,
   gpuCopy_from_device_realw (&mp->d_R_xz_inner_core, R_xz, size);
   gpuCopy_from_device_realw (&mp->d_R_yz_inner_core, R_yz, size);
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error("after transfer_rmemory_ic_from_device");
-#endif
+  GPU_ERROR_CHECKING ("after transfer_rmemory_ic_from_device");
 }
 
 /* ----------------------------------------------------------------------------------------------- */
@@ -852,9 +786,7 @@ void FC_FUNC_(transfer_b_rmemory_ic_to_device,
   gpuCopy_todevice_realw (&mp->d_b_R_xz_inner_core, b_R_xz, size);
   gpuCopy_todevice_realw (&mp->d_b_R_yz_inner_core, b_R_yz, size);
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error("after transfer_b_rmemory_ic_to_device");
-#endif
+  GPU_ERROR_CHECKING ("after transfer_b_rmemory_ic_to_device");
 }
 
 /* ----------------------------------------------------------------------------------------------- */
@@ -880,9 +812,7 @@ void FC_FUNC_(transfer_rotation_from_device,
   gpuCopy_from_device_realw (&mp->d_A_array_rotation, A_array_rotation, size);
   gpuCopy_from_device_realw (&mp->d_B_array_rotation, B_array_rotation, size);
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error("after transfer_rotation_from_device");
-#endif
+  GPU_ERROR_CHECKING ("after transfer_rotation_from_device");
 }
 
 /* ----------------------------------------------------------------------------------------------- */
@@ -908,9 +838,7 @@ void FC_FUNC_(transfer_b_rotation_to_device,
   gpuCopy_from_device_realw (&mp->d_b_A_array_rotation, A_array_rotation, size);
   gpuCopy_from_device_realw (&mp->d_b_B_array_rotation, B_array_rotation, size);
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error("after transfer_b_rotation_to_device");
-#endif
+  GPU_ERROR_CHECKING ("after transfer_b_rotation_to_device");
 }
 
 /* ----------------------------------------------------------------------------------------------- */
@@ -945,9 +873,7 @@ void FC_FUNC_(transfer_kernels_cm_to_host,
     gpuCopy_from_device_realw (&mp->d_beta_kl_crust_mantle, h_beta_kl, size);
   }
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error("after transfer_kernels_cm_to_host");
-#endif
+  GPU_ERROR_CHECKING ("after transfer_kernels_cm_to_host");
 }
 
 
@@ -975,9 +901,7 @@ void FC_FUNC_(transfer_kernels_ani_cm_to_host,
   // copies array to CPU
   gpuCopy_from_device_realw (&mp->d_cijkl_kl_crust_mantle, h_cijkl_kl, size);
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error("after transfer_kernels_ani_cm_to_host");
-#endif
+  GPU_ERROR_CHECKING ("after transfer_kernels_ani_cm_to_host");
 }
 
 /* ----------------------------------------------------------------------------------------------- */
@@ -1003,9 +927,7 @@ void FC_FUNC_(transfer_kernels_ic_to_host,
   gpuCopy_from_device_realw (&mp->d_alpha_kl_inner_core, h_alpha_kl, size);
   gpuCopy_from_device_realw (&mp->d_beta_kl_inner_core, h_beta_kl, size);
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error("after transfer_kernels_ic_to_host");
-#endif
+  GPU_ERROR_CHECKING ("after transfer_kernels_ic_to_host");
 }
 
 /* ----------------------------------------------------------------------------------------------- */
@@ -1030,9 +952,7 @@ void FC_FUNC_(transfer_kernels_oc_to_host,
   gpuCopy_from_device_realw (&mp->d_rho_kl_outer_core, h_rho_kl, size);
   gpuCopy_from_device_realw (&mp->d_alpha_kl_outer_core, h_alpha_kl, size);
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error("after transfer_kernels_oc_to_host");
-#endif
+  GPU_ERROR_CHECKING ("after transfer_kernels_oc_to_host");
 }
 
 /* ----------------------------------------------------------------------------------------------- */
@@ -1051,9 +971,7 @@ void FC_FUNC_(transfer_kernels_noise_to_host,
   // copies array to CPU
   gpuCopy_from_device_realw (&mp->d_Sigma_kl, h_Sigma_kl, NGLL3 * (*NSPEC));
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error("after transfer_kernels_noise_to_host");
-#endif
+  GPU_ERROR_CHECKING ("after transfer_kernels_noise_to_host");
 }
 
 /* ----------------------------------------------------------------------------------------------- */
@@ -1072,7 +990,5 @@ void FC_FUNC_(transfer_kernels_hess_cm_tohost,
   // copies array to CPU
   gpuCopy_from_device_realw (&mp->d_hess_kl_crust_mantle, h_hess_kl, NGLL3 * (*NSPEC));
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error("after transfer_kernels_hess_cm_tohost");
-#endif
+  GPU_ERROR_CHECKING ("after transfer_kernels_hess_cm_tohost");
 }
diff --git a/src/gpu/update_displacement_gpu.c b/src/gpu/update_displacement_gpu.c
index eb51e53..cc513d1 100644
--- a/src/gpu/update_displacement_gpu.c
+++ b/src/gpu/update_displacement_gpu.c
@@ -128,9 +128,8 @@ void FC_FUNC_ (update_displacement_ic_gpu,
     }
   }
 #endif
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("update_displacement_ic_gpu");
-#endif
+
+  GPU_ERROR_CHECKING ("update_displacement_ic_gpu");
 }
 
 /*----------------------------------------------------------------------------------------------- */
@@ -235,10 +234,8 @@ void FC_FUNC_ (update_displacement_cm_gpu,
     }
   }
 #endif
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("update_displacement_cm_gpu");
-#endif
 
+  GPU_ERROR_CHECKING ("update_displacement_cm_gpu");
 }
 
 /* ----------------------------------------------------------------------------------------------- */
@@ -340,9 +337,8 @@ void FC_FUNC_ (update_displacement_oc_gpu,
     }
   }
 #endif
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("update_displacement_oc_gpu");
-#endif
+
+  GPU_ERROR_CHECKING ("update_displacement_oc_gpu");
 }
 
 /*----------------------------------------------------------------------------------------------- */
@@ -504,9 +500,7 @@ void FC_FUNC_ (multiply_accel_elastic_gpu,
   }
 #endif
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("after multiply_accel_elastic_gpu");
-#endif
+  GPU_ERROR_CHECKING ("after multiply_accel_elastic_gpu");
 }
 
 /* ----------------------------------------------------------------------------------------------- */
@@ -636,9 +630,8 @@ void FC_FUNC_ (update_veloc_elastic_gpu,
     }
   }
 #endif
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("after update_veloc_3_b");
-#endif
+
+  GPU_ERROR_CHECKING ("after update_veloc_3_b");
 }
 
 /* ----------------------------------------------------------------------------------------------- */
@@ -715,9 +708,8 @@ void FC_FUNC_ (multiply_accel_acoustic_gpu,
     }
   }
 #endif
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("after multiply_accel_acoustic_gpu");
-#endif
+
+  GPU_ERROR_CHECKING ("after multiply_accel_acoustic_gpu");
 }
 
 /* ----------------------------------------------------------------------------------------------- */
@@ -801,7 +793,6 @@ void FC_FUNC_ (update_veloc_acoustic_gpu,
     }
   }
 #endif
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("after update_veloc_acoustic_gpu");
-#endif
+
+  GPU_ERROR_CHECKING ("after update_veloc_acoustic_gpu");
 }
diff --git a/src/gpu/write_seismograms_gpu.c b/src/gpu/write_seismograms_gpu.c
index 599a029..8412f80 100644
--- a/src/gpu/write_seismograms_gpu.c
+++ b/src/gpu/write_seismograms_gpu.c
@@ -159,9 +159,7 @@ void write_seismograms_transfer_from_device (Mesh *mp,
     }
   }
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("write_seismograms_transfer_from_device");
-#endif
+  GPU_ERROR_CHECKING ("write_seismograms_transfer_from_device");
 }
 
 /*----------------------------------------------------------------------------------------------- */
@@ -238,9 +236,7 @@ void write_seismograms_transfer_strain_from_device (Mesh *mp,
     }
   }
 
-#ifdef ENABLE_VERY_SLOW_ERROR_CHECKING
-  exit_on_gpu_error ("write_seismograms_transfer_strain_from_device");
-#endif
+  GPU_ERROR_CHECKING ("write_seismograms_transfer_strain_from_device");
 }
 
 /*----------------------------------------------------------------------------------------------- */



More information about the CIG-COMMITS mailing list