template<int NXZ, typename FloatN, int M, typename SpinorX, typename SpinorY, typename SpinorZ, typename SpinorW, typename Functor, typename T>
class quda::blas::MultiBlas< NXZ, FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Functor, T >
Definition at line 47 of file multi_blas_quda.cu.
template<int NXZ, typename FloatN, int M, typename SpinorX, typename SpinorY, typename SpinorZ, typename SpinorW, typename Functor, typename T>
quda::blas::MultiBlas< NXZ, FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Functor, T >::MultiBlas |
( |
SpinorX |
X[], |
|
|
SpinorY |
Y[], |
|
|
SpinorZ |
Z[], |
|
|
SpinorW |
W[], |
|
|
Functor & |
f, |
|
|
const coeff_array< T > & |
a, |
|
|
const coeff_array< T > & |
b, |
|
|
const coeff_array< T > & |
c, |
|
|
std::vector< ColorSpinorField *> & |
x, |
|
|
std::vector< ColorSpinorField *> & |
y, |
|
|
std::vector< ColorSpinorField *> & |
z, |
|
|
std::vector< ColorSpinorField *> & |
w, |
|
|
int |
NYW, |
|
|
int |
length |
|
) |
| |
|
inline |
template<int NXZ, typename FloatN, int M, typename SpinorX, typename SpinorY, typename SpinorZ, typename SpinorW, typename Functor, typename T>
template<int NXZ, typename FloatN, int M, typename SpinorX, typename SpinorY, typename SpinorZ, typename SpinorW, typename Functor, typename T>
void quda::blas::MultiBlas< NXZ, FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Functor, T >::apply |
( |
const cudaStream_t & |
stream | ) |
|
|
inlinevirtual |
Implements quda::Tunable.
Definition at line 111 of file multi_blas_quda.cu.
References quda::blas::Amatrix_d, quda::arg(), quda::blas::arg_buffer, quda::TuneParam::block, quda::blas::Bmatrix_d, quda::blas::Cmatrix_d, quda::blas::coeff_array< T >::data, quda::blas::getStream(), getTuning(), getVerbosity(), quda::TuneParam::grid, MAX_MATRIX_SIZE, MAX_MULTI_BLAS_N, quda::TuneParam::shared_bytes, quda::tuneLaunch(), and quda::blas::coeff_array< T >::use_const.
Referenced by quda::blas::multiBlas().
template<int NXZ, typename FloatN, int M, typename SpinorX, typename SpinorY, typename SpinorZ, typename SpinorW, typename Functor, typename T>
long long quda::blas::MultiBlas< NXZ, FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Functor, T >::bytes |
( |
| ) |
const |
|
inlinevirtual |
template<int NXZ, typename FloatN, int M, typename SpinorX, typename SpinorY, typename SpinorZ, typename SpinorW, typename Functor, typename T>
template<int NXZ, typename FloatN, int M, typename SpinorX, typename SpinorY, typename SpinorZ, typename SpinorW, typename Functor, typename T>
long long quda::blas::MultiBlas< NXZ, FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Functor, T >::flops |
( |
| ) |
const |
|
inlinevirtual |
Implements quda::Tunable.
Definition at line 232 of file multi_blas_quda.cu.
References quda::blas::MultiBlasArg< NXZ, SpinorX, SpinorY, SpinorZ, SpinorW, Functor >::f, and quda::blas::MultiBlasArg< NXZ, SpinorX, SpinorY, SpinorZ, SpinorW, Functor >::length.
Referenced by quda::blas::multiBlas().
template<int NXZ, typename FloatN, int M, typename SpinorX, typename SpinorY, typename SpinorZ, typename SpinorW, typename Functor, typename T>
template<int NXZ, typename FloatN, int M, typename SpinorX, typename SpinorY, typename SpinorZ, typename SpinorW, typename Functor, typename T>
void quda::blas::MultiBlas< NXZ, FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Functor, T >::postTune |
( |
| ) |
|
|
inlinevirtual |
Reimplemented from quda::Tunable.
Definition at line 212 of file multi_blas_quda.cu.
References quda::blas::MultiBlasArg< NXZ, SpinorX, SpinorY, SpinorZ, SpinorW, Functor >::W, and quda::blas::MultiBlasArg< NXZ, SpinorX, SpinorY, SpinorZ, SpinorW, Functor >::Y.
template<int NXZ, typename FloatN, int M, typename SpinorX, typename SpinorY, typename SpinorZ, typename SpinorW, typename Functor, typename T>
void quda::blas::MultiBlas< NXZ, FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Functor, T >::preTune |
( |
| ) |
|
|
inlinevirtual |
Reimplemented from quda::Tunable.
Definition at line 204 of file multi_blas_quda.cu.
References quda::blas::MultiBlasArg< NXZ, SpinorX, SpinorY, SpinorZ, SpinorW, Functor >::W, and quda::blas::MultiBlasArg< NXZ, SpinorX, SpinorY, SpinorZ, SpinorW, Functor >::Y.
template<int NXZ, typename FloatN, int M, typename SpinorX, typename SpinorY, typename SpinorZ, typename SpinorW, typename Functor, typename T>
template<int NXZ, typename FloatN, int M, typename SpinorX, typename SpinorY, typename SpinorZ, typename SpinorW, typename Functor, typename T>
bool quda::blas::MultiBlas< NXZ, FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Functor, T >::tuneSharedBytes |
( |
| ) |
const |
|
inlineprivatevirtual |
template<int NXZ, typename FloatN, int M, typename SpinorX, typename SpinorY, typename SpinorZ, typename SpinorW, typename Functor, typename T>
int quda::blas::MultiBlas< NXZ, FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Functor, T >::tuningIter |
( |
| ) |
const |
|
inlinevirtual |
template<int NXZ, typename FloatN, int M, typename SpinorX, typename SpinorY, typename SpinorZ, typename SpinorW, typename Functor, typename T>
MultiBlasArg<NXZ, SpinorX, SpinorY, SpinorZ, SpinorW, Functor> quda::blas::MultiBlas< NXZ, FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Functor, T >::arg |
|
mutableprivate |
template<int NXZ, typename FloatN, int M, typename SpinorX, typename SpinorY, typename SpinorZ, typename SpinorW, typename Functor, typename T>
const int quda::blas::MultiBlas< NXZ, FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Functor, T >::nParity |
|
private |
template<int NXZ, typename FloatN, int M, typename SpinorX, typename SpinorY, typename SpinorZ, typename SpinorW, typename Functor, typename T>