diff --git a/unit_test/Makefile b/unit_test/Makefile index f37798490f..64b77fb2fa 100644 --- a/unit_test/Makefile +++ b/unit_test/Makefile @@ -61,6 +61,7 @@ TEST_HEADERS += $(wildcard $(KOKKOSKERNELS_SRC_PATH)/unit_test/blas/*.hpp) TEST_HEADERS += $(wildcard $(KOKKOSKERNELS_SRC_PATH)/unit_test/sparse/*.hpp) TEST_HEADERS += $(wildcard $(KOKKOSKERNELS_SRC_PATH)/unit_test/graph/*.hpp) TEST_HEADERS += $(wildcard $(KOKKOSKERNELS_SRC_PATH)/unit_test/common/*.hpp) +TEST_HEADERS += $(wildcard $(KOKKOSKERNELS_SRC_PATH)/unit_test/batched/*.hpp) diff --git a/unit_test/batched/Test_Batched_SerialGemm.hpp b/unit_test/batched/Test_Batched_SerialGemm.hpp index 4a93081e6e..72868e839a 100644 --- a/unit_test/batched/Test_Batched_SerialGemm.hpp +++ b/unit_test/batched/Test_Batched_SerialGemm.hpp @@ -80,6 +80,8 @@ namespace Test { Kokkos::fill_random(b0, random, value_type(1.0)); Kokkos::fill_random(c0, random, value_type(1.0)); + Kokkos::fence(); + Kokkos::deep_copy(a1, a0); Kokkos::deep_copy(b1, b0); Kokkos::deep_copy(c1, c0); @@ -90,6 +92,8 @@ namespace Test { Functor_TestBatchedSerialGemm(alpha, a1, b1, beta, c1).run(); + Kokkos::fence(); + /// for comparison send it to host typename ViewType::HostMirror c0_host = Kokkos::create_mirror_view(c0); typename ViewType::HostMirror c1_host = Kokkos::create_mirror_view(c1); diff --git a/unit_test/batched/Test_Batched_SerialGemv.hpp b/unit_test/batched/Test_Batched_SerialGemv.hpp index 01545c5422..0e4d56d434 100644 --- a/unit_test/batched/Test_Batched_SerialGemv.hpp +++ b/unit_test/batched/Test_Batched_SerialGemv.hpp @@ -78,6 +78,8 @@ namespace Test { Kokkos::fill_random(b0, random, value_type(1.0)); Kokkos::fill_random(c0, random, value_type(1.0)); + Kokkos::fence(); + Kokkos::deep_copy(a1, a0); Kokkos::deep_copy(b1, b0); Kokkos::deep_copy(c1, c0); @@ -88,6 +90,8 @@ namespace Test { Functor_TestBatchedSerialGemv(alpha, a1, b1, beta, c1).run(); + Kokkos::fence(); + /// for comparison send it to host typename ViewType::HostMirror c0_host = Kokkos::create_mirror_view(c0); typename ViewType::HostMirror c1_host = Kokkos::create_mirror_view(c1); diff --git a/unit_test/batched/Test_Batched_SerialLU.hpp b/unit_test/batched/Test_Batched_SerialLU.hpp index cf7c2e2706..127891ee3d 100644 --- a/unit_test/batched/Test_Batched_SerialLU.hpp +++ b/unit_test/batched/Test_Batched_SerialLU.hpp @@ -56,11 +56,15 @@ namespace Test { Kokkos::Random_XorShift64_Pool random(13718); Kokkos::fill_random(a0, random, value_type(1.0)); + Kokkos::fence(); + Kokkos::deep_copy(a1, a0); Functor_TestBatchedSerialLU(a0).run(); Functor_TestBatchedSerialLU(a1).run(); + Kokkos::fence(); + /// for comparison send it to host typename ViewType::HostMirror a0_host = Kokkos::create_mirror_view(a0); typename ViewType::HostMirror a1_host = Kokkos::create_mirror_view(a1); diff --git a/unit_test/batched/Test_Batched_SerialMatUtil.hpp b/unit_test/batched/Test_Batched_SerialMatUtil.hpp index fd56b13b16..52da9c0df4 100644 --- a/unit_test/batched/Test_Batched_SerialMatUtil.hpp +++ b/unit_test/batched/Test_Batched_SerialMatUtil.hpp @@ -94,12 +94,17 @@ namespace Test { Kokkos::Random_XorShift64_Pool random(13718); Kokkos::fill_random(a, random, value_type(1.0)); + + Kokkos::fence(); + Kokkos::deep_copy(b, a); /// test body Functor_TestBatchedSerialMatUtil(alpha, a).run(); Functor_TestBatchedSerialMatUtil(alpha, b).run(); + Kokkos::fence(); + /// for comparison send it to host typename ViewType::HostMirror a_host = Kokkos::create_mirror_view(a); typename ViewType::HostMirror b_host = Kokkos::create_mirror_view(b); diff --git a/unit_test/batched/Test_Batched_SerialTrsm.hpp b/unit_test/batched/Test_Batched_SerialTrsm.hpp index 8c76a3cd46..9bbbb386a9 100644 --- a/unit_test/batched/Test_Batched_SerialTrsm.hpp +++ b/unit_test/batched/Test_Batched_SerialTrsm.hpp @@ -82,6 +82,8 @@ namespace Test { Kokkos::fill_random(a0, random, value_type(1.0)); Kokkos::fill_random(b0, random, value_type(1.0)); + Kokkos::fence(); + Kokkos::deep_copy(a1, a0); Kokkos::deep_copy(b1, b0); @@ -90,6 +92,8 @@ namespace Test { Functor_TestBatchedSerialTrsm(alpha, a1, b1).run(); + Kokkos::fence(); + /// for comparison send it to host typename ViewType::HostMirror b0_host = Kokkos::create_mirror_view(b0); typename ViewType::HostMirror b1_host = Kokkos::create_mirror_view(b1); diff --git a/unit_test/batched/Test_Batched_SerialTrsv.hpp b/unit_test/batched/Test_Batched_SerialTrsv.hpp index 449280aae5..21c365ea3e 100644 --- a/unit_test/batched/Test_Batched_SerialTrsv.hpp +++ b/unit_test/batched/Test_Batched_SerialTrsv.hpp @@ -77,6 +77,8 @@ namespace Test { Kokkos::fill_random(a0, random, value_type(1.0)); Kokkos::fill_random(b0, random, value_type(1.0)); + Kokkos::fence(); + Kokkos::deep_copy(b0, 1.0); Kokkos::deep_copy(a1, a0); @@ -87,6 +89,8 @@ namespace Test { Functor_TestBatchedSerialTrsv(alpha, a1, b1).run(); + Kokkos::fence(); + /// for comparison send it to host typename ViewType::HostMirror b0_host = Kokkos::create_mirror_view(b0); typename ViewType::HostMirror b1_host = Kokkos::create_mirror_view(b1); diff --git a/unit_test/batched/Test_Batched_TeamGemm.hpp b/unit_test/batched/Test_Batched_TeamGemm.hpp index d93a8144c9..2a35e86d5c 100644 --- a/unit_test/batched/Test_Batched_TeamGemm.hpp +++ b/unit_test/batched/Test_Batched_TeamGemm.hpp @@ -86,6 +86,8 @@ namespace Test { Kokkos::fill_random(b0, random, value_type(1.0)); Kokkos::fill_random(c0, random, value_type(1.0)); + Kokkos::fence(); + Kokkos::deep_copy(a1, a0); Kokkos::deep_copy(b1, b0); Kokkos::deep_copy(c1, c0); @@ -96,6 +98,8 @@ namespace Test { Functor_TestBatchedTeamGemm(alpha, a1, b1, beta, c1).run(); + Kokkos::fence(); + /// for comparison send it to host typename ViewType::HostMirror c0_host = Kokkos::create_mirror_view(c0); typename ViewType::HostMirror c1_host = Kokkos::create_mirror_view(c1); diff --git a/unit_test/batched/Test_Batched_TeamGemv.hpp b/unit_test/batched/Test_Batched_TeamGemv.hpp index 54650f205e..1792b9721d 100644 --- a/unit_test/batched/Test_Batched_TeamGemv.hpp +++ b/unit_test/batched/Test_Batched_TeamGemv.hpp @@ -84,6 +84,8 @@ namespace Test { Kokkos::fill_random(b0, random, value_type(1.0)); Kokkos::fill_random(c0, random, value_type(1.0)); + Kokkos::fence(); + Kokkos::deep_copy(a1, a0); Kokkos::deep_copy(b1, b0); Kokkos::deep_copy(c1, c0); @@ -94,6 +96,8 @@ namespace Test { Functor_TestBatchedTeamGemv(alpha, a1, b1, beta, c1).run(); + Kokkos::fence(); + /// for comparison send it to host typename ViewType::HostMirror c0_host = Kokkos::create_mirror_view(c0); typename ViewType::HostMirror c1_host = Kokkos::create_mirror_view(c1); diff --git a/unit_test/batched/Test_Batched_TeamLU.hpp b/unit_test/batched/Test_Batched_TeamLU.hpp index b0743e5b9c..a10037645c 100644 --- a/unit_test/batched/Test_Batched_TeamLU.hpp +++ b/unit_test/batched/Test_Batched_TeamLU.hpp @@ -63,11 +63,15 @@ namespace Test { Kokkos::Random_XorShift64_Pool random(13718); Kokkos::fill_random(a0, random, value_type(1.0)); + Kokkos::fence(); + Kokkos::deep_copy(a1, a0); Functor_TestBatchedTeamLU(a0).run(); Functor_TestBatchedTeamLU(a1).run(); + Kokkos::fence(); + /// for comparison send it to host typename ViewType::HostMirror a0_host = Kokkos::create_mirror_view(a0); typename ViewType::HostMirror a1_host = Kokkos::create_mirror_view(a1); diff --git a/unit_test/batched/Test_Batched_TeamMatUtil.hpp b/unit_test/batched/Test_Batched_TeamMatUtil.hpp index f446e39bf6..b44b20690b 100644 --- a/unit_test/batched/Test_Batched_TeamMatUtil.hpp +++ b/unit_test/batched/Test_Batched_TeamMatUtil.hpp @@ -99,12 +99,17 @@ namespace Test { Kokkos::Random_XorShift64_Pool random(13718); Kokkos::fill_random(a, random, value_type(1.0)); + + Kokkos::fence(); + Kokkos::deep_copy(b, a); /// test body Functor_TestBatchedTeamMatUtil(alpha, a).run(); Functor_TestBatchedTeamMatUtil(alpha, b).run(); + Kokkos::fence(); + /// for comparison send it to host typename ViewType::HostMirror a_host = Kokkos::create_mirror_view(a); typename ViewType::HostMirror b_host = Kokkos::create_mirror_view(b); diff --git a/unit_test/batched/Test_Batched_TeamTrsm.hpp b/unit_test/batched/Test_Batched_TeamTrsm.hpp index 21bdd4d922..229095eb54 100644 --- a/unit_test/batched/Test_Batched_TeamTrsm.hpp +++ b/unit_test/batched/Test_Batched_TeamTrsm.hpp @@ -88,6 +88,8 @@ namespace Test { Kokkos::fill_random(a0, random, value_type(1.0)); Kokkos::fill_random(b0, random, value_type(1.0)); + Kokkos::fence(); + Kokkos::deep_copy(a1, a0); Kokkos::deep_copy(b1, b0); @@ -96,6 +98,8 @@ namespace Test { Functor_TestBatchedTeamTrsm(alpha, a1, b1).run(); + Kokkos::fence(); + /// for comparison send it to host typename ViewType::HostMirror b0_host = Kokkos::create_mirror_view(b0); typename ViewType::HostMirror b1_host = Kokkos::create_mirror_view(b1); diff --git a/unit_test/batched/Test_Batched_TeamTrsv.hpp b/unit_test/batched/Test_Batched_TeamTrsv.hpp index 1f19d3d005..29923f6b9d 100644 --- a/unit_test/batched/Test_Batched_TeamTrsv.hpp +++ b/unit_test/batched/Test_Batched_TeamTrsv.hpp @@ -83,6 +83,8 @@ namespace Test { Kokkos::fill_random(a0, random, value_type(1.0)); Kokkos::fill_random(b0, random, value_type(1.0)); + Kokkos::fence(); + Kokkos::deep_copy(b0, 1.0); Kokkos::deep_copy(a1, a0); @@ -93,6 +95,8 @@ namespace Test { Functor_TestBatchedTeamTrsv(alpha, a1, b1).run(); + Kokkos::fence(); + /// for comparison send it to host typename ViewType::HostMirror b0_host = Kokkos::create_mirror_view(b0); typename ViewType::HostMirror b1_host = Kokkos::create_mirror_view(b1); diff --git a/unit_test/blas/Test_Blas1_asum.hpp b/unit_test/blas/Test_Blas1_asum.hpp index 09f8c8bdb3..8632ca29bf 100644 --- a/unit_test/blas/Test_Blas1_asum.hpp +++ b/unit_test/blas/Test_Blas1_asum.hpp @@ -28,7 +28,7 @@ namespace Test { Kokkos::Random_XorShift64_Pool rand_pool(13718); Kokkos::fill_random(b_a,rand_pool,ScalarA(10)); - + Kokkos::fence(); Kokkos::deep_copy(h_b_a,b_a); typename ViewTypeA::const_type c_a = a; diff --git a/unit_test/blas/Test_Blas1_dot.hpp b/unit_test/blas/Test_Blas1_dot.hpp index 87c4e34515..755e0e8f49 100644 --- a/unit_test/blas/Test_Blas1_dot.hpp +++ b/unit_test/blas/Test_Blas1_dot.hpp @@ -38,6 +38,8 @@ namespace Test { Kokkos::fill_random(b_a,rand_pool,ScalarA(10)); Kokkos::fill_random(b_b,rand_pool,ScalarB(10)); + Kokkos::fence(); + Kokkos::deep_copy(h_b_a,b_a); Kokkos::deep_copy(h_b_b,b_b); @@ -90,6 +92,8 @@ namespace Test { Kokkos::fill_random(b_a,rand_pool,ScalarA(10)); Kokkos::fill_random(b_b,rand_pool,ScalarB(10)); + Kokkos::fence(); + Kokkos::deep_copy(h_b_a,b_a); Kokkos::deep_copy(h_b_b,b_b); diff --git a/unit_test/blas/Test_Blas1_nrm1.hpp b/unit_test/blas/Test_Blas1_nrm1.hpp index c2b1eb47da..bd9d3e6fc7 100644 --- a/unit_test/blas/Test_Blas1_nrm1.hpp +++ b/unit_test/blas/Test_Blas1_nrm1.hpp @@ -29,6 +29,8 @@ namespace Test { Kokkos::fill_random(b_a,rand_pool,ScalarA(10)); + Kokkos::fence(); + Kokkos::deep_copy(h_b_a,b_a); typename ViewTypeA::const_type c_a = a; @@ -68,6 +70,8 @@ namespace Test { Kokkos::fill_random(b_a,rand_pool,ScalarA(10)); + Kokkos::fence(); + Kokkos::deep_copy(h_b_a,b_a); typename ViewTypeA::const_type c_a = a; diff --git a/unit_test/blas/Test_Blas1_nrm2.hpp b/unit_test/blas/Test_Blas1_nrm2.hpp index 2530f02ee4..420e907eb4 100644 --- a/unit_test/blas/Test_Blas1_nrm2.hpp +++ b/unit_test/blas/Test_Blas1_nrm2.hpp @@ -29,6 +29,8 @@ namespace Test { Kokkos::fill_random(b_a,rand_pool,ScalarA(10)); + Kokkos::fence(); + Kokkos::deep_copy(h_b_a,b_a); typename ViewTypeA::const_type c_a = a; @@ -69,6 +71,8 @@ namespace Test { Kokkos::fill_random(b_a,rand_pool,ScalarA(10)); + Kokkos::fence(); + Kokkos::deep_copy(h_b_a,b_a); typename ViewTypeA::const_type c_a = a; diff --git a/unit_test/blas/Test_Blas1_nrm2_squared.hpp b/unit_test/blas/Test_Blas1_nrm2_squared.hpp index c9fb3ff4ab..8eea18e5f5 100644 --- a/unit_test/blas/Test_Blas1_nrm2_squared.hpp +++ b/unit_test/blas/Test_Blas1_nrm2_squared.hpp @@ -29,6 +29,8 @@ namespace Test { Kokkos::fill_random(b_a,rand_pool,ScalarA(10)); + Kokkos::fence(); + Kokkos::deep_copy(h_b_a,b_a); typename ViewTypeA::const_type c_a = a; @@ -68,6 +70,8 @@ namespace Test { Kokkos::fill_random(b_a,rand_pool,ScalarA(10)); + Kokkos::fence(); + Kokkos::deep_copy(h_b_a,b_a); typename ViewTypeA::const_type c_a = a; diff --git a/unit_test/blas/Test_Blas1_nrminf.hpp b/unit_test/blas/Test_Blas1_nrminf.hpp index 755b9d40ce..d76c9bd965 100644 --- a/unit_test/blas/Test_Blas1_nrminf.hpp +++ b/unit_test/blas/Test_Blas1_nrminf.hpp @@ -29,6 +29,8 @@ namespace Test { Kokkos::fill_random(b_a,rand_pool,ScalarA(10)); + Kokkos::fence(); + Kokkos::deep_copy(h_b_a,b_a); typename ViewTypeA::const_type c_a = a; @@ -70,6 +72,8 @@ namespace Test { Kokkos::fill_random(b_a,rand_pool,ScalarA(10)); + Kokkos::fence(); + Kokkos::deep_copy(h_b_a,b_a); typename ViewTypeA::const_type c_a = a; diff --git a/unit_test/blas/Test_Blas1_reciprocal.hpp b/unit_test/blas/Test_Blas1_reciprocal.hpp index 05471999a7..e9249b00e7 100644 --- a/unit_test/blas/Test_Blas1_reciprocal.hpp +++ b/unit_test/blas/Test_Blas1_reciprocal.hpp @@ -45,6 +45,8 @@ namespace Test { Kokkos::fill_random(b_x,rand_pool,ScalarA(10)); Kokkos::fill_random(b_y,rand_pool,ScalarB(10)); + Kokkos::fence(); + Kokkos::deep_copy(b_org_y,b_y); Kokkos::deep_copy(h_b_x,b_x); @@ -95,6 +97,8 @@ namespace Test { Kokkos::fill_random(b_x,rand_pool,ScalarA(10)); Kokkos::fill_random(b_y,rand_pool,ScalarB(10)); + Kokkos::fence(); + Kokkos::deep_copy(b_org_y,b_y); Kokkos::deep_copy(h_b_x,b_x); diff --git a/unit_test/blas/Test_Blas1_scal.hpp b/unit_test/blas/Test_Blas1_scal.hpp index 7ac37c410a..9774ed20e6 100644 --- a/unit_test/blas/Test_Blas1_scal.hpp +++ b/unit_test/blas/Test_Blas1_scal.hpp @@ -46,6 +46,8 @@ namespace Test { Kokkos::fill_random(b_x,rand_pool,ScalarA(10)); Kokkos::fill_random(b_y,rand_pool,ScalarB(10)); + Kokkos::fence(); + Kokkos::deep_copy(b_org_y,b_y); Kokkos::deep_copy(h_b_x,b_x); @@ -95,6 +97,8 @@ namespace Test { Kokkos::fill_random(b_x,rand_pool,ScalarA(10)); Kokkos::fill_random(b_y,rand_pool,ScalarB(10)); + Kokkos::fence(); + Kokkos::deep_copy(b_org_y,b_y); Kokkos::deep_copy(h_b_x,b_x); diff --git a/unit_test/blas/Test_Blas1_sum.hpp b/unit_test/blas/Test_Blas1_sum.hpp index 5b5735c84a..b9804b32d2 100644 --- a/unit_test/blas/Test_Blas1_sum.hpp +++ b/unit_test/blas/Test_Blas1_sum.hpp @@ -28,6 +28,8 @@ namespace Test { Kokkos::fill_random(b_a,rand_pool,ScalarA(10)); + Kokkos::fence(); + Kokkos::deep_copy(h_b_a,b_a); typename ViewTypeA::const_type c_a = a; @@ -67,6 +69,8 @@ namespace Test { Kokkos::fill_random(b_a,rand_pool,ScalarA(10)); + Kokkos::fence(); + Kokkos::deep_copy(h_b_a,b_a); typename ViewTypeA::const_type c_a = a; diff --git a/unit_test/blas/Test_Blas1_update.hpp b/unit_test/blas/Test_Blas1_update.hpp index 888906dbb1..50301d2453 100644 --- a/unit_test/blas/Test_Blas1_update.hpp +++ b/unit_test/blas/Test_Blas1_update.hpp @@ -58,6 +58,8 @@ namespace Test { Kokkos::fill_random(b_y,rand_pool,ScalarB(10)); Kokkos::fill_random(b_z,rand_pool,ScalarC(10)); + Kokkos::fence(); + Kokkos::deep_copy(b_org_z,b_z); Kokkos::deep_copy(h_b_x,b_x); @@ -121,6 +123,8 @@ namespace Test { Kokkos::fill_random(b_y,rand_pool,ScalarB(10)); Kokkos::fill_random(b_z,rand_pool,ScalarC(10)); + Kokkos::fence(); + Kokkos::deep_copy(b_org_z,b_z); Kokkos::deep_copy(h_b_x,b_x); diff --git a/unit_test/blas/Test_Blas2_gemv.hpp b/unit_test/blas/Test_Blas2_gemv.hpp index abcde1f562..43f9187339 100644 --- a/unit_test/blas/Test_Blas2_gemv.hpp +++ b/unit_test/blas/Test_Blas2_gemv.hpp @@ -56,6 +56,8 @@ namespace Test { Kokkos::fill_random(b_y,rand_pool,ScalarY(10)); Kokkos::fill_random(b_A,rand_pool,ScalarA(10)); + Kokkos::fence(); + Kokkos::deep_copy(b_org_y,b_y); Kokkos::deep_copy(h_b_x,b_x);