@@ -869,8 +869,46 @@ void spmv_block_impl_rocsparse(
869
869
rocsparse_mat_info info;
870
870
KOKKOS_ROCSPARSE_SAFE_CALL_IMPL (rocsparse_create_mat_info (&info));
871
871
872
+ // *_ex* functions deprecated in introduced in 6+
873
+ #if KOKKOSSPARSE_IMPL_ROCM_VERSION >= 60000
874
+ if constexpr (std::is_same_v<value_type, float >) {
875
+ KOKKOS_ROCSPARSE_SAFE_CALL_IMPL (rocsparse_sbsrmv_analysis (
876
+ handle, dir, trans, mb, nb, nnzb, descr, bsr_val, bsr_row_ptr,
877
+ bsr_col_ind, block_dim, info));
878
+ KOKKOS_ROCSPARSE_SAFE_CALL_IMPL (rocsparse_sbsrmv (
879
+ handle, dir, trans, mb, nb, nnzb, alpha_, descr, bsr_val, bsr_row_ptr,
880
+ bsr_col_ind, block_dim, info, x_, beta_, y_));
881
+ KOKKOS_ROCSPARSE_SAFE_CALL_IMPL (rocsparse_bsrsv_clear (handle, info));
882
+ } else if constexpr (std::is_same_v<value_type, double >) {
883
+ KOKKOS_ROCSPARSE_SAFE_CALL_IMPL (rocsparse_dbsrmv_analysis (
884
+ handle, dir, trans, mb, nb, nnzb, descr, bsr_val, bsr_row_ptr,
885
+ bsr_col_ind, block_dim, info));
886
+ KOKKOS_ROCSPARSE_SAFE_CALL_IMPL (rocsparse_dbsrmv (
887
+ handle, dir, trans, mb, nb, nnzb, alpha_, descr, bsr_val, bsr_row_ptr,
888
+ bsr_col_ind, block_dim, info, x_, beta_, y_));
889
+ KOKKOS_ROCSPARSE_SAFE_CALL_IMPL (rocsparse_bsrsv_clear (handle, info));
890
+ } else if constexpr (std::is_same_v<value_type, Kokkos::complex<float >>) {
891
+ KOKKOS_ROCSPARSE_SAFE_CALL_IMPL (rocsparse_cbsrmv_analysis (
892
+ handle, dir, trans, mb, nb, nnzb, descr, bsr_val, bsr_row_ptr,
893
+ bsr_col_ind, block_dim, info));
894
+ KOKKOS_ROCSPARSE_SAFE_CALL_IMPL (rocsparse_cbsrmv (
895
+ handle, dir, trans, mb, nb, nnzb, alpha_, descr, bsr_val, bsr_row_ptr,
896
+ bsr_col_ind, block_dim, info, x_, beta_, y_));
897
+ KOKKOS_ROCSPARSE_SAFE_CALL_IMPL (rocsparse_bsrsv_clear (handle, info));
898
+ } else if constexpr (std::is_same_v<value_type, Kokkos::complex<double >>) {
899
+ KOKKOS_ROCSPARSE_SAFE_CALL_IMPL (rocsparse_zbsrmv_analysis (
900
+ handle, dir, trans, mb, nb, nnzb, descr, bsr_val, bsr_row_ptr,
901
+ bsr_col_ind, block_dim, info));
902
+ KOKKOS_ROCSPARSE_SAFE_CALL_IMPL (rocsparse_zbsrmv (
903
+ handle, dir, trans, mb, nb, nnzb, alpha_, descr, bsr_val, bsr_row_ptr,
904
+ bsr_col_ind, block_dim, info, x_, beta_, y_));
905
+ KOKKOS_ROCSPARSE_SAFE_CALL_IMPL (rocsparse_bsrsv_clear (handle, info));
906
+ } else {
907
+ static_assert (KokkosKernels::Impl::always_false_v<value_type>,
908
+ " unsupported value type for rocsparse_*bsrmv" );
909
+ }
872
910
// *_ex* functions introduced in 5.4.0
873
- #if KOKKOSSPARSE_IMPL_ROCM_VERSION < 50400
911
+ #elif KOKKOSSPARSE_IMPL_ROCM_VERSION < 50400
874
912
if constexpr (std::is_same_v<value_type, float >) {
875
913
KOKKOS_ROCSPARSE_SAFE_CALL_IMPL (rocsparse_sbsrmv (
876
914
handle, dir, trans, mb, nb, nnzb, alpha_, descr, bsr_val, bsr_row_ptr,
0 commit comments