2424
2525#include < tuple> // std::tuple
2626
27- template <typename T, plssvm::kokkos::execution_space exec_space>
27+ template <typename T, bool UAA, plssvm::kokkos::execution_space exec_space>
2828struct kokkos_device_ptr_test_type {
2929 using device_ptr_type = plssvm::kokkos::detail::device_ptr<T>;
3030 using queue_type = plssvm::kokkos::detail::device_wrapper;
31+ constexpr static bool use_usm_allocations = UAA;
3132 constexpr static plssvm::kokkos::execution_space space = exec_space;
3233
3334 static const queue_type &default_queue () {
@@ -37,9 +38,9 @@ struct kokkos_device_ptr_test_type {
3738};
3839
3940template <plssvm::kokkos::execution_space space>
40- using kokkos_device_ptr_test_type_float = kokkos_device_ptr_test_type<float , space>;
41+ using kokkos_device_ptr_test_type_float = kokkos_device_ptr_test_type<float , false , space>;
4142template <plssvm::kokkos::execution_space space>
42- using kokkos_device_ptr_test_type_double = kokkos_device_ptr_test_type<double , space>;
43+ using kokkos_device_ptr_test_type_double = kokkos_device_ptr_test_type<double , false , space>;
4344
4445using kokkos_device_ptr_tuple = util::detail::concat_tuple_types_t <util::create_kokkos_test_tuple_t <kokkos_device_ptr_test_type_float>,
4546 util::create_kokkos_test_tuple_t <kokkos_device_ptr_test_type_double>>;
@@ -53,3 +54,25 @@ INSTANTIATE_TYPED_TEST_SUITE_P(KokkosDevicePtr, DevicePtr, kokkos_device_ptr_typ
5354INSTANTIATE_TYPED_TEST_SUITE_P (KokkosDevicePtr, DevicePtrLayout, kokkos_device_ptr_layout_type_gtest, naming::test_parameter_to_name);
5455
5556INSTANTIATE_TYPED_TEST_SUITE_P (KokkosDevicePtrDeathTest, DevicePtrDeathTest, kokkos_device_ptr_type_gtest, naming::test_parameter_to_name);
57+
58+ //
59+ // test USM pointer
60+ //
61+
62+ template <plssvm::kokkos::execution_space space>
63+ using kokkos_usm_device_ptr_test_type_float = kokkos_device_ptr_test_type<float , true , space>;
64+ template <plssvm::kokkos::execution_space space>
65+ using kokkos_usm_device_ptr_test_type_double = kokkos_device_ptr_test_type<double , true , space>;
66+
67+ using kokkos_device_ptr_usm_tuple = util::detail::concat_tuple_types_t <util::create_kokkos_test_tuple_t <kokkos_usm_device_ptr_test_type_float>,
68+ util::create_kokkos_test_tuple_t <kokkos_usm_device_ptr_test_type_double>>;
69+
70+ // the tests used in the instantiated GTest test suites
71+ using kokkos_device_ptr_usm_type_gtest = util::combine_test_parameters_gtest_t <util::cartesian_type_product_t <kokkos_device_ptr_usm_tuple>>;
72+ using kokkos_device_ptr_usm_layout_type_gtest = util::combine_test_parameters_gtest_t <util::cartesian_type_product_t <kokkos_device_ptr_usm_tuple>, util::layout_type_list>;
73+
74+ // instantiate type-parameterized tests
75+ INSTANTIATE_TYPED_TEST_SUITE_P (KokkosDevicePtrUSM, DevicePtr, kokkos_device_ptr_usm_type_gtest, naming::test_parameter_to_name);
76+ INSTANTIATE_TYPED_TEST_SUITE_P (KokkosDevicePtrUSM, DevicePtrLayout, kokkos_device_ptr_usm_layout_type_gtest, naming::test_parameter_to_name);
77+
78+ INSTANTIATE_TYPED_TEST_SUITE_P (KokkosDevicePtrUSMDeathTest, DevicePtrDeathTest, kokkos_device_ptr_usm_type_gtest, naming::test_parameter_to_name);
0 commit comments