diff --git a/src/sstruct_mv/sstruct_matrix.c b/src/sstruct_mv/sstruct_matrix.c index 91cf480eec..f25674b6d2 100644 --- a/src/sstruct_mv/sstruct_matrix.c +++ b/src/sstruct_mv/sstruct_matrix.c @@ -441,7 +441,10 @@ hypre_SStructPMatrixSetBoxValues( hypre_SStructPMatrix *pmatrix, /* TODO: Why need DeviceSync? */ #if defined(HYPRE_USING_GPU) - hypre_SyncDevice(); + if (hypre_GetExecPolicy1(hypre_StructMatrixMemoryLocation(smatrix)) == HYPRE_EXEC_DEVICE) + { + hypre_SyncDevice(); + } #endif /* set (AddTo/Get) or clear (Set) values outside the grid in ghost zones */ diff --git a/src/sstruct_mv/sstruct_vector.c b/src/sstruct_mv/sstruct_vector.c index 3a16f7ca17..5a68c64c1c 100644 --- a/src/sstruct_mv/sstruct_vector.c +++ b/src/sstruct_mv/sstruct_vector.c @@ -247,7 +247,10 @@ hypre_SStructPVectorSetBoxValues( hypre_SStructPVector *pvector, /* TODO: Why need DeviceSync? */ #if defined(HYPRE_USING_GPU) - hypre_SyncDevice(); + if (hypre_GetExecPolicy1(hypre_StructVectorMemoryLocation(svector)) == HYPRE_EXEC_DEVICE) + { + hypre_SyncDevice(); + } #endif /* set (AddTo/Get) or clear (Set) values outside the grid in ghost zones */