diff --git a/tests/kokkos-based/CMakeLists.txt b/tests/kokkos-based/CMakeLists.txt index b0840a75..a0c805d5 100644 --- a/tests/kokkos-based/CMakeLists.txt +++ b/tests/kokkos-based/CMakeLists.txt @@ -83,6 +83,7 @@ linalg_add_test_kokkos( linalg_add_test_kokkos( vector_sum_of_squares_kokkos "vector_sum_of_squares: kokkos impl") + linalg_add_test_kokkos( vector_abs_sum_kokkos "vector_abs_sum: kokkos impl") @@ -106,3 +107,131 @@ linalg_add_test_kokkos( linalg_add_test_kokkos( copy_kokkos "copy: kokkos impl") + +# +# blas2 (according to P1673) +# + +linalg_add_test_kokkos( + overwriting_matrix_vector_product + "overwriting_matrix_vector_product: kokkos impl") +linalg_add_test_kokkos( + updating_matrix_vector_product + "updating_matrix_vector_product: kokkos impl") + +# symmetric_matrix_vector_product +linalg_add_test_kokkos( + overwriting_symmetric_matrix_vector_product + "overwriting_symmetric_matrix_vector_product_lower: kokkos impl" USE_LOWER lower) +linalg_add_test_kokkos( + overwriting_symmetric_matrix_vector_product + "overwriting_symmetric_matrix_vector_product_upper: kokkos impl" USE_UPPER upper) +linalg_add_test_kokkos( + updating_symmetric_matrix_vector_product + "updating_symmetric_matrix_vector_product_lower: kokkos impl" USE_LOWER lower) +linalg_add_test_kokkos( + updating_symmetric_matrix_vector_product + "updating_symmetric_matrix_vector_product_upper: kokkos impl" USE_UPPER upper) + +# hermitian_matrix_vector_product +linalg_add_test_kokkos( + overwriting_hermitian_matrix_vector_product + "overwriting_hermitian_matrix_vector_product_lower: kokkos impl" USE_LOWER lower) +linalg_add_test_kokkos( + overwriting_hermitian_matrix_vector_product + "overwriting_hermitian_matrix_vector_product_upper: kokkos impl" USE_UPPER upper) +linalg_add_test_kokkos( + updating_hermitian_matrix_vector_product + "updating_hermitian_matrix_vector_product_lower: kokkos impl" USE_LOWER lower) +linalg_add_test_kokkos( + updating_hermitian_matrix_vector_product + "updating_hermitian_matrix_vector_product_upper: kokkos impl" USE_UPPER upper) + +# triangular_matrix_vector_product +linalg_add_test_kokkos( + overwriting_triangular_matrix_vector_product + "overwriting_triangular_matrix_vector_product_lower: kokkos impl" USE_LOWER lower) +linalg_add_test_kokkos( + overwriting_triangular_matrix_vector_product + "overwriting_triangular_matrix_vector_product_upper: kokkos impl" USE_UPPER upper) +linalg_add_test_kokkos( + updating_triangular_matrix_vector_product + "updating_triangular_matrix_vector_product_lower: kokkos impl" USE_LOWER lower) +linalg_add_test_kokkos( + updating_triangular_matrix_vector_product + "updating_triangular_matrix_vector_product_upper: kokkos impl" USE_UPPER upper) + +linalg_add_test_kokkos( + matrix_rank1_update_kokkos + "matrix_rank1_update: kokkos impl") + +linalg_add_test_kokkos( + symmetric_matrix_rank1_update_kokkos + "symmetric_matrix_rank1_update: kokkos impl") +linalg_add_test_kokkos( + hermitian_matrix_rank1_update_kokkos + "hermitian_matrix_rank1_update: kokkos impl") + +linalg_add_test_kokkos( + symmetric_matrix_rank2_update_kokkos + "symmetric_matrix_rank2_update: kokkos impl") +linalg_add_test_kokkos( + hermitian_matrix_rank2_update_kokkos + "hermitian_matrix_rank2_update: kokkos impl") + +# +# blas3 (according to P1673) +# + +# matrix_product +linalg_add_test_kokkos( + gemm_C_AB + "gemm_C_AB_product: kokkos impl") +linalg_add_test_kokkos( + gemm_C_ABT + "gemm_C_ABT_product: kokkos impl") +linalg_add_test_kokkos( + gemm_C_ATB + "gemm_C_ATB_product: kokkos impl") + +linalg_add_test_kokkos( + triangular_matrix_left_product_kokkos + "triangular_matrix_left_product_kokkos: kokkos impl") +linalg_add_test_kokkos( + triangular_matrix_right_product_kokkos + "triangular_matrix_right_product_kokkos: kokkos impl") + +# {symmetric,hermitian}_matrix_{left} +linalg_add_test_kokkos( + symmetric_matrix_left_product_kokkos + "symmetric_matrix_left_product: kokkos impl") +linalg_add_test_kokkos( + symmetric_matrix_right_product_kokkos + "symmetric_matrix_right_product: kokkos impl") +linalg_add_test_kokkos( + hermitian_matrix_left_product_kokkos + "hermitian_matrix_left_product: kokkos impl") +linalg_add_test_kokkos( + hermitian_matrix_right_product_kokkos + "hermitian_matrix_right_product: kokkos impl") + +linalg_add_test_kokkos( + triangular_matrix_matrix_left_solve + "triangular_matrix_matrix_left_solve: kokkos impl") +linalg_add_test_kokkos( + triangular_matrix_matrix_right_solve + "triangular_matrix_matrix_right_solve: kokkos impl") + +linalg_add_test_kokkos( + symmetric_matrix_rank_2k_update_kokkos + "symmetric_matrix_rank_2k_update: kokkos impl") +linalg_add_test_kokkos( + hermitian_matrix_rank_2k_update_kokkos + "hermitian_matrix_rank_2k_update: kokkos impl") + +linalg_add_test_kokkos( + symmetric_matrix_rank_k_update_kokkos + "symmetric_matrix_rank_k_update: kokkos impl") +linalg_add_test_kokkos( + hermitian_matrix_rank_k_update_kokkos + "hermitian_matrix_rank_k_update: kokkos impl") \ No newline at end of file diff --git a/tpl-implementations/include/experimental/linalg_kokkoskernels b/tpl-implementations/include/experimental/linalg_kokkoskernels index 47494f58..468780f6 100644 --- a/tpl-implementations/include/experimental/linalg_kokkoskernels +++ b/tpl-implementations/include/experimental/linalg_kokkoskernels @@ -23,3 +23,12 @@ #include "__p1673_bits/kokkos-kernels/blas2_matrix_rank_2_update.hpp" #include "__p1673_bits/kokkos-kernels/blas2_gemv_kk.hpp" #include "__p1673_bits/kokkos-kernels/blas2_symv_kk.hpp" +#include "__p1673_bits/kokkos-kernels/blas2_hemv_kk.hpp" +#include "__p1673_bits/kokkos-kernels/blas2_triangular_mat_vec_product.hpp" + +// blas3 (according to P1673) +#include "__p1673_bits/kokkos-kernels/blas3_overwriting_gemm_kk.hpp" +#include "__p1673_bits/kokkos-kernels/blas3_matrix_rank_k_update.hpp" +#include "__p1673_bits/kokkos-kernels/blas3_matrix_rank_2k_update.hpp" +#include "__p1673_bits/kokkos-kernels/blas3_matrix_product_kk.hpp" +#include "__p1673_bits/kokkos-kernels/blas3_triangular_matrix_matrix_solve.hpp"