Fix device OpenMP build (#894)

* Remove SyncCompute call to fix compilation with device omp
* Fix hypre_SeqVectorAxpyzDevice implementation for device omp
* Add warning for function not implemented for device omp
This commit is contained in:
Victor A. P. Magri 2023-05-02 11:21:51 -04:00 committed by GitHub
parent ba1f15b082
commit 82b40f72f4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -92,7 +92,6 @@ hypre_SeqVectorScaleDevice( HYPRE_Complex alpha,
}
#endif
hypre_SyncComputeStream(hypre_handle());
hypre_GpuProfilingPopRange();
return hypre_error_flag;
@ -172,7 +171,7 @@ hypre_SeqVectorAxpyzDevice( HYPRE_Complex alpha,
#pragma omp target teams distribute parallel for private(i) is_device_ptr(z_data, y_data, x_data)
for (i = 0; i < total_size; i++)
{
z_data[i] = alpha * x_data[i] + beta * z_data[i];
z_data[i] = alpha * x_data[i] + beta * y_data[i];
}
#endif
@ -190,6 +189,7 @@ hypre_SeqVectorElmdivpyDevice( hypre_Vector *x,
HYPRE_Int *marker,
HYPRE_Int marker_val )
{
#if defined(HYPRE_USING_GPU)
HYPRE_Complex *x_data = hypre_VectorData(x);
HYPRE_Complex *b_data = hypre_VectorData(b);
HYPRE_Complex *y_data = hypre_VectorData(y);
@ -199,8 +199,6 @@ hypre_SeqVectorElmdivpyDevice( hypre_Vector *x,
HYPRE_Int size = hypre_VectorSize(b);
hypre_GpuProfilingPushRange("SeqVectorElmdivpyDevice");
#if defined(HYPRE_USING_GPU)
if (num_vectors_b == 1)
{
if (num_vectors_x == 1)
@ -246,6 +244,8 @@ hypre_SeqVectorElmdivpyDevice( hypre_Vector *x,
hypre_SyncComputeStream(hypre_handle());
hypre_GpuProfilingPopRange();
#elif defined(HYPRE_USING_OPENMP)
hypre_error_w_msg(HYPRE_ERROR_GENERIC, "Not implemented for device OpenMP!\n");
#endif
return hypre_error_flag;