19 #include <cusp/format.h> 20 #include <cusp/csr_matrix.h> 21 #include <cusp/detail/functional.h> 28 #include "Teuchos_TimeMonitor.hpp" 40 template <
typename Matrix,
51 TEUCHOS_FUNC_TIME_MONITOR(
"CUSP Matrix block-apply");
53 cudaDeviceSynchronize();
59 template <
typename Matrix,
70 TEUCHOS_FUNC_TIME_MONITOR(
"CUSP Operator block-apply");
72 cudaDeviceSynchronize();
78 template <
typename Matrix1,
88 TEUCHOS_FUNC_TIME_MONITOR(
"CUSP Dense-diag");
90 cudaDeviceSynchronize();
98 template <
typename MV,
105 TEUCHOS_FUNC_TIME_MONITOR(
"CUSP dot");
107 cudaDeviceSynchronize();
113 template <
typename ValueType,
116 void axpby(
const ValueType& A,
const MV1& X,
const ValueType& B,
120 TEUCHOS_FUNC_TIME_MONITOR(
"CUSP axpby");
122 cudaDeviceSynchronize();
129 template <
typename Matrix,
130 typename MatrixOrVector1,
131 typename MatrixOrVector2>
133 const MatrixOrVector1& B,
137 typename Matrix::format(),
138 typename MatrixOrVector1::format(),
139 typename MatrixOrVector2::format());
142 template <
typename Matrix,
143 typename MatrixOrVector1,
144 typename MatrixOrVector2>
146 const MatrixOrVector1& B,
150 typename Matrix::format(),
151 typename MatrixOrVector1::format(),
152 typename MatrixOrVector2::format());
void spmm_MVdot(const Vector1 &A, const Vector2 &x, Vector3 &y)
void MVmultiply(const Matrix &A, const Vector1 &B, Vector2 &C, cusp::sparse_format, cusp::array2d_format, cusp::array2d_format)
void spmm_csr_vector(const Matrix &A, const Vector2 &x, Vector3 &y)
void OVmultiply(const Matrix &A, const Vector1 &B, Vector2 &C, cusp::sparse_format, cusp::array2d_format, cusp::array2d_format)
void spmm_axpby(const ValueType &a, const Vector1 &x, const ValueType &b, const Vector1 &y, Vector2 &z)
void spmm_dense_diag(const Vector1 &A, const Vector2 &x, Vector3 &y)
void axpby(const ValueType &A, const MV1 &X, const ValueType &B, const MV1 &Y, MV2 &Z)
void MVdot(const MV &A, const MV1 &B, MV2 &C)