9 #include <cusp/multiply.h>
24 template <
typename Matrix>
27 SpmvCusp(Matrix& A) : m_A(A), m_time(0), m_count(0) {}
38 double avgTime = m_time / m_count;
39 return 2 * m_A.num_entries / (1e6 * avgTime);
43 template <
typename Array>
48 cusp::multiply(m_A, v, Av);
virtual double getElapsed()
Definition: timer.h:62
GPU timer.
Definition: timer.h:35
CPU and GPU timer classes.
virtual void Start()
Definition: timer.h:53
void operator()(const Array &v, Array &Av)
Implementation of the SPMV functor using cusp::multiply().
Definition: spmv.h:44
Default SPMV functor class.
Definition: spmv.h:25
double getTime() const
Cummulative time for all SPMV calls (ms).
Definition: spmv.h:30
double getCount() const
Total number of calls to the SPMV functor.
Definition: spmv.h:33
SpmvCusp(Matrix &A)
Definition: spmv.h:27
virtual void Stop()
Definition: timer.h:57
double getGFlops() const
Average GFLOP/s over all SPMV calls.
Definition: spmv.h:36