63 using mv_scalar_type =
64 typename LocalOperator<MultiVectorScalar, Device>::scalar_type;
65 using matrix_scalar_type =
66 typename LocalOperator<MatrixScalar, Device>::scalar_type;
68 typename LocalOperator<MultiVectorScalar, Device>::array_layout;
70 typename LocalOperator<MultiVectorScalar, Device>::device_type;
73 using execution_space =
typename Device::execution_space;
75 using local_matrix_device_type =
76 KokkosSparse::CrsMatrix<matrix_scalar_type,
83 using local_cusparse_matrix_type =
84 KokkosSparse::CrsMatrix<matrix_scalar_type,
89 using local_graph_device_type =
typename local_matrix_device_type::StaticCrsGraphType;
92 using ordinal_view_type =
typename local_graph_device_type::entries_type::non_const_type;
99 apply (Kokkos::View<
const mv_scalar_type**, array_layout,
100 device_type, Kokkos::MemoryTraits<Kokkos::Unmanaged> >
X,
101 Kokkos::View<mv_scalar_type**, array_layout,
102 device_type, Kokkos::MemoryTraits<Kokkos::Unmanaged> >
Y,
103 const Teuchos::ETransp
mode,
104 const mv_scalar_type
alpha,
105 const mv_scalar_type
beta)
const override;
109 Kokkos::View<
const mv_scalar_type**, array_layout,
110 device_type, Kokkos::MemoryTraits<Kokkos::Unmanaged> >
X,
111 Kokkos::View<mv_scalar_type**, array_layout,
112 device_type, Kokkos::MemoryTraits<Kokkos::Unmanaged> >
Y,
113 const Teuchos::ETransp
mode,
114 const mv_scalar_type
alpha,
115 const mv_scalar_type
beta)
const;
117 bool hasTransposeApply ()
const override;
119 const local_matrix_device_type& getLocalMatrixDevice ()
const;
122 std::shared_ptr<local_matrix_device_type> A_;
123 local_cusparse_matrix_type A_cusparse;
124 const bool have_A_cusparse;
void applyImbalancedRows(Kokkos::View< const mv_scalar_type **, array_layout, device_type, Kokkos::MemoryTraits< Kokkos::Unmanaged > > X, Kokkos::View< mv_scalar_type **, array_layout, device_type, Kokkos::MemoryTraits< Kokkos::Unmanaged > > Y, const Teuchos::ETransp mode, const mv_scalar_type alpha, const mv_scalar_type beta) const
Same behavior as apply() above, except give KokkosKernels a hint to use an SPMV algorithm that can ef...