From 8497ad264582f07b50c6325bf5418a409f6fa68d Mon Sep 17 00:00:00 2001 From: Evan Harvey Date: Tue, 26 Sep 2023 09:04:01 -0600 Subject: [PATCH] Fencing for sptrsv --- .../impl/KokkosSparse_twostage_gauss_seidel_impl.hpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/sparse/impl/KokkosSparse_twostage_gauss_seidel_impl.hpp b/sparse/impl/KokkosSparse_twostage_gauss_seidel_impl.hpp index 83b9d0b949..589bdf1fd1 100644 --- a/sparse/impl/KokkosSparse_twostage_gauss_seidel_impl.hpp +++ b/sparse/impl/KokkosSparse_twostage_gauss_seidel_impl.hpp @@ -986,10 +986,11 @@ class TwostageGaussSeidel { Kokkos::subview(localZ, Kokkos::ALL(), range_type(j, j + 1)); single_vector_view_t Rj(localRj.data(), num_rows); single_vector_view_t Zj(localZj.data(), num_rows); + my_exec_space + .fence(); // Wait for writes to R and Z to land, TODO: remove sptrsv_solve(handle->get_gs_sptrsvL_handle(), crsmatL.graph.row_map, crsmatL.graph.entries, crsmatL.values, Rj, Zj); - execution_space() - .fence(); // TODO: call sptrsv_solve on stream and remove + Kokkos::fence(); // TODO: call sptrsv_solve on stream and remove } } else { using namespace KokkosSparse::Experimental; @@ -1002,10 +1003,11 @@ class TwostageGaussSeidel { Kokkos::subview(localZ, Kokkos::ALL(), range_type(j, j + 1)); single_vector_view_t Rj(localRj.data(), num_rows); single_vector_view_t Zj(localZj.data(), num_rows); + my_exec_space + .fence(); // Wait for writes to R and Z to land, TODO: remove sptrsv_solve(handle->get_gs_sptrsvU_handle(), crsmatU.graph.row_map, crsmatU.graph.entries, crsmatU.values, Rj, Zj); - execution_space() - .fence(); // TODO: call sptrsv_solve on stream and remove + Kokkos::fence(); // TODO: call sptrsv_solve on stream and remove } }