Update Kokkos library in LAMMPS to v4.1.0

This commit is contained in:
Stan Gerald Moore
2023-06-29 10:42:42 -06:00
parent 170173a213
commit 330107b77b
480 changed files with 24051 additions and 23393 deletions

View File

@ -171,7 +171,7 @@ void verify_data(ViewType1 data_view, // contains data
// << std::abs(gold_h(i) - test_view_h(i)) << std::endl;
if (std::is_same<gold_view_value_type, int>::value) {
EXPECT_EQ(gold_h(i), test_view_h(i));
ASSERT_EQ(gold_h(i), test_view_h(i));
} else {
const auto error =
std::abs(static_cast<double>(gold_h(i) - test_view_h(i)));
@ -224,7 +224,7 @@ void run_single_scenario_default_op(const InfoType& scenario_info) {
fill_zero(view_dest);
auto r = KE::inclusive_scan(exespace(), KE::cbegin(view_from),
KE::cend(view_from), KE::begin(view_dest));
EXPECT_EQ(r, KE::end(view_dest));
ASSERT_EQ(r, KE::end(view_dest));
verify_data(view_from, view_dest, default_op());
}
@ -232,21 +232,21 @@ void run_single_scenario_default_op(const InfoType& scenario_info) {
fill_zero(view_dest);
auto r = KE::inclusive_scan("label", exespace(), KE::cbegin(view_from),
KE::cend(view_from), KE::begin(view_dest));
EXPECT_EQ(r, KE::end(view_dest));
ASSERT_EQ(r, KE::end(view_dest));
verify_data(view_from, view_dest, default_op());
}
{
fill_zero(view_dest);
auto r = KE::inclusive_scan(exespace(), view_from, view_dest);
EXPECT_EQ(r, KE::end(view_dest));
ASSERT_EQ(r, KE::end(view_dest));
verify_data(view_from, view_dest, default_op());
}
{
fill_zero(view_dest);
auto r = KE::inclusive_scan("label", exespace(), view_from, view_dest);
EXPECT_EQ(r, KE::end(view_dest));
ASSERT_EQ(r, KE::end(view_dest));
verify_data(view_from, view_dest, default_op());
}
@ -279,7 +279,7 @@ void run_single_scenario_custom_op(const InfoType& scenario_info, BinaryOp bop,
auto r = KE::inclusive_scan(exespace(), KE::cbegin(view_from),
KE::cend(view_from), KE::begin(view_dest), bop,
args...);
EXPECT_EQ(r, KE::end(view_dest));
ASSERT_EQ(r, KE::end(view_dest));
verify_data(view_from, view_dest, bop, args...);
}
@ -288,14 +288,14 @@ void run_single_scenario_custom_op(const InfoType& scenario_info, BinaryOp bop,
auto r = KE::inclusive_scan("label", exespace(), KE::cbegin(view_from),
KE::cend(view_from), KE::begin(view_dest), bop,
args...);
EXPECT_EQ(r, KE::end(view_dest));
ASSERT_EQ(r, KE::end(view_dest));
verify_data(view_from, view_dest, bop, args...);
}
{
fill_zero(view_dest);
auto r = KE::inclusive_scan(exespace(), view_from, view_dest, bop, args...);
EXPECT_EQ(r, KE::end(view_dest));
ASSERT_EQ(r, KE::end(view_dest));
verify_data(view_from, view_dest, bop, args...);
}
@ -303,7 +303,7 @@ void run_single_scenario_custom_op(const InfoType& scenario_info, BinaryOp bop,
fill_zero(view_dest);
auto r = KE::inclusive_scan("label", exespace(), view_from, view_dest, bop,
args...);
EXPECT_EQ(r, KE::end(view_dest));
ASSERT_EQ(r, KE::end(view_dest));
verify_data(view_from, view_dest, bop, args...);
}
@ -353,6 +353,45 @@ TEST(std_algorithms_numeric_ops_test, inclusive_scan) {
run_inclusive_scan_all_scenarios<StridedThreeTag, CustomValueType>();
}
TEST(std_algorithms_numeric_ops_test, inclusive_scan_functor) {
using view_type = Kokkos::View<int*, exespace>;
view_type dummy_view("dummy_view", 0);
using functor_type = Kokkos::Experimental::Impl::InclusiveScanDefaultFunctor<
exespace, int, int, view_type, view_type>;
functor_type functor(dummy_view, dummy_view);
using value_type = functor_type::value_type;
value_type value1;
functor.init(value1);
ASSERT_EQ(value1.val, 0);
ASSERT_EQ(value1.is_initial, true);
value_type value2;
value2.val = 1;
value2.is_initial = false;
functor.join(value1, value2);
ASSERT_EQ(value1.val, 1);
ASSERT_EQ(value1.is_initial, false);
functor.init(value1);
functor.join(value2, value1);
ASSERT_EQ(value2.val, 1);
ASSERT_EQ(value2.is_initial, false);
functor.init(value2);
functor.join(value2, value1);
ASSERT_EQ(value2.val, 0);
ASSERT_EQ(value2.is_initial, true);
value1.val = 1;
value1.is_initial = false;
value2.val = 2;
value2.is_initial = false;
functor.join(value2, value1);
ASSERT_EQ(value2.val, 3);
ASSERT_EQ(value2.is_initial, false);
}
} // namespace IncScan
} // namespace stdalgos
} // namespace Test