QUDA  0.9.0
Public Member Functions | Private Member Functions | Private Attributes | List of all members
MultiBlasCuda< NXZ, FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Functor > Class Template Reference
Inheritance diagram for MultiBlasCuda< NXZ, FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Functor >:
Inheritance graph
[legend]
Collaboration diagram for MultiBlasCuda< NXZ, FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Functor >:
Collaboration graph
[legend]

Public Member Functions

 MultiBlasCuda (SpinorX X[], SpinorY Y[], SpinorZ Z[], SpinorW W[], Functor &f, int NYW, int length, int nParity, std::vector< ColorSpinorField *> &y, std::vector< ColorSpinorField *> &w)
 
virtual ~MultiBlasCuda ()
 
TuneKey tuneKey () const
 
void apply (const cudaStream_t &stream)
 
void preTune ()
 
void postTune ()
 
void initTuneParam (TuneParam &param) const
 
void defaultTuneParam (TuneParam &param) const
 
long long flops () const
 
long long bytes () const
 
int tuningIter () const
 

Private Member Functions

bool tuneSharedBytes () const
 

Private Attributes

const int NYW
 
MultiBlasArg< NXZ, SpinorX, SpinorY, SpinorZ, SpinorW, Functor > arg
 
const int nParity
 
char * Y_h [MAX_MULTI_BLAS_N]
 
char * W_h [MAX_MULTI_BLAS_N]
 
char * Ynorm_h [MAX_MULTI_BLAS_N]
 
char * Wnorm_h [MAX_MULTI_BLAS_N]
 
std::vector< ColorSpinorField * > & y
 
std::vector< ColorSpinorField * > & w
 

Detailed Description

template<int NXZ, typename FloatN, int M, typename SpinorX, typename SpinorY, typename SpinorZ, typename SpinorW, typename Functor>
class MultiBlasCuda< NXZ, FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Functor >

Definition at line 160 of file multi_blas_core.cuh.

Constructor & Destructor Documentation

◆ MultiBlasCuda()

template<int NXZ, typename FloatN , int M, typename SpinorX , typename SpinorY , typename SpinorZ , typename SpinorW , typename Functor >
MultiBlasCuda< NXZ, FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Functor >::MultiBlasCuda ( SpinorX  X[],
SpinorY  Y[],
SpinorZ  Z[],
SpinorW  W[],
Functor &  f,
int  NYW,
int  length,
int  nParity,
std::vector< ColorSpinorField *> &  y,
std::vector< ColorSpinorField *> &  w 
)
inline

Definition at line 175 of file multi_blas_core.cuh.

◆ ~MultiBlasCuda()

template<int NXZ, typename FloatN , int M, typename SpinorX , typename SpinorY , typename SpinorZ , typename SpinorW , typename Functor >
virtual MultiBlasCuda< NXZ, FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Functor >::~MultiBlasCuda ( )
inlinevirtual

Definition at line 181 of file multi_blas_core.cuh.

Member Function Documentation

◆ apply()

template<int NXZ, typename FloatN , int M, typename SpinorX , typename SpinorY , typename SpinorZ , typename SpinorW , typename Functor >
void MultiBlasCuda< NXZ, FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Functor >::apply ( const cudaStream_t &  stream)
inline

Definition at line 191 of file multi_blas_core.cuh.

References MultiBlasCuda< NXZ, FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Functor >::arg, getTuning(), getVerbosity(), stream, and quda::tuneLaunch().

Referenced by multiblasCuda().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bytes()

template<int NXZ, typename FloatN , int M, typename SpinorX , typename SpinorY , typename SpinorZ , typename SpinorW , typename Functor >
long long MultiBlasCuda< NXZ, FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Functor >::bytes ( ) const
inline

◆ defaultTuneParam()

template<int NXZ, typename FloatN , int M, typename SpinorX , typename SpinorY , typename SpinorZ , typename SpinorW , typename Functor >
void MultiBlasCuda< NXZ, FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Functor >::defaultTuneParam ( TuneParam &  param) const
inline

◆ flops()

template<int NXZ, typename FloatN , int M, typename SpinorX , typename SpinorY , typename SpinorZ , typename SpinorW , typename Functor >
long long MultiBlasCuda< NXZ, FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Functor >::flops ( ) const
inline

◆ initTuneParam()

template<int NXZ, typename FloatN , int M, typename SpinorX , typename SpinorY , typename SpinorZ , typename SpinorW , typename Functor >
void MultiBlasCuda< NXZ, FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Functor >::initTuneParam ( TuneParam &  param) const
inline

◆ postTune()

template<int NXZ, typename FloatN , int M, typename SpinorX , typename SpinorY , typename SpinorZ , typename SpinorW , typename Functor >
void MultiBlasCuda< NXZ, FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Functor >::postTune ( )
inline

◆ preTune()

template<int NXZ, typename FloatN , int M, typename SpinorX , typename SpinorY , typename SpinorZ , typename SpinorW , typename Functor >
void MultiBlasCuda< NXZ, FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Functor >::preTune ( )
inline

◆ tuneKey()

template<int NXZ, typename FloatN , int M, typename SpinorX , typename SpinorY , typename SpinorZ , typename SpinorW , typename Functor >
TuneKey MultiBlasCuda< NXZ, FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Functor >::tuneKey ( ) const
inline

◆ tuneSharedBytes()

template<int NXZ, typename FloatN , int M, typename SpinorX , typename SpinorY , typename SpinorZ , typename SpinorW , typename Functor >
bool MultiBlasCuda< NXZ, FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Functor >::tuneSharedBytes ( ) const
inlineprivate

Definition at line 172 of file multi_blas_core.cuh.

◆ tuningIter()

template<int NXZ, typename FloatN , int M, typename SpinorX , typename SpinorY , typename SpinorZ , typename SpinorW , typename Functor >
int MultiBlasCuda< NXZ, FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Functor >::tuningIter ( ) const
inline

Definition at line 236 of file multi_blas_core.cuh.

Member Data Documentation

◆ arg

template<int NXZ, typename FloatN , int M, typename SpinorX , typename SpinorY , typename SpinorZ , typename SpinorW , typename Functor >
MultiBlasArg<NXZ,SpinorX,SpinorY,SpinorZ,SpinorW,Functor> MultiBlasCuda< NXZ, FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Functor >::arg
mutableprivate

◆ nParity

template<int NXZ, typename FloatN , int M, typename SpinorX , typename SpinorY , typename SpinorZ , typename SpinorW , typename Functor >
const int MultiBlasCuda< NXZ, FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Functor >::nParity
private

◆ NYW

template<int NXZ, typename FloatN , int M, typename SpinorX , typename SpinorY , typename SpinorZ , typename SpinorW , typename Functor >
const int MultiBlasCuda< NXZ, FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Functor >::NYW
private

◆ w

template<int NXZ, typename FloatN , int M, typename SpinorX , typename SpinorY , typename SpinorZ , typename SpinorW , typename Functor >
std::vector<ColorSpinorField*> & MultiBlasCuda< NXZ, FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Functor >::w
private

◆ W_h

template<int NXZ, typename FloatN , int M, typename SpinorX , typename SpinorY , typename SpinorZ , typename SpinorW , typename Functor >
char * MultiBlasCuda< NXZ, FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Functor >::W_h[MAX_MULTI_BLAS_N]
private

◆ Wnorm_h

template<int NXZ, typename FloatN , int M, typename SpinorX , typename SpinorY , typename SpinorZ , typename SpinorW , typename Functor >
char * MultiBlasCuda< NXZ, FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Functor >::Wnorm_h[MAX_MULTI_BLAS_N]
private

◆ y

template<int NXZ, typename FloatN , int M, typename SpinorX , typename SpinorY , typename SpinorZ , typename SpinorW , typename Functor >
std::vector<ColorSpinorField*>& MultiBlasCuda< NXZ, FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Functor >::y
private

◆ Y_h

template<int NXZ, typename FloatN , int M, typename SpinorX , typename SpinorY , typename SpinorZ , typename SpinorW , typename Functor >
char* MultiBlasCuda< NXZ, FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Functor >::Y_h[MAX_MULTI_BLAS_N]
private

◆ Ynorm_h

template<int NXZ, typename FloatN , int M, typename SpinorX , typename SpinorY , typename SpinorZ , typename SpinorW , typename Functor >
char * MultiBlasCuda< NXZ, FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Functor >::Ynorm_h[MAX_MULTI_BLAS_N]
private

The documentation for this class was generated from the following file: