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

Public Member Functions

 BlasCuda (SpinorX &X, SpinorY &Y, SpinorZ &Z, SpinorW &W, Functor &f, int length, int nParity, const size_t *bytes, const size_t *norm_bytes)
 
virtual ~BlasCuda ()
 
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

unsigned int sharedBytesPerThread () const
 
unsigned int sharedBytesPerBlock (const TuneParam &param) const
 
virtual bool advanceSharedBytes (TuneParam &param) const
 

Private Attributes

BlasArg< SpinorX, SpinorY, SpinorZ, SpinorW, Functor > arg
 
const int nParity
 
char * X_h
 
char * Y_h
 
char * Z_h
 
char * W_h
 
char * Xnorm_h
 
char * Ynorm_h
 
char * Znorm_h
 
char * Wnorm_h
 
const size_tbytes_
 
const size_tnorm_bytes_
 

Detailed Description

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

Definition at line 49 of file blas_core.cuh.

Constructor & Destructor Documentation

◆ BlasCuda()

template<typename FloatN , int M, typename SpinorX , typename SpinorY , typename SpinorZ , typename SpinorW , typename Functor >
BlasCuda< FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Functor >::BlasCuda ( SpinorX &  X,
SpinorY &  Y,
SpinorZ &  Z,
SpinorW &  W,
Functor &  f,
int  length,
int  nParity,
const size_t bytes,
const size_t norm_bytes 
)
inline

Definition at line 77 of file blas_core.cuh.

◆ ~BlasCuda()

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

Definition at line 82 of file blas_core.cuh.

Member Function Documentation

◆ advanceSharedBytes()

template<typename FloatN , int M, typename SpinorX , typename SpinorY , typename SpinorZ , typename SpinorW , typename Functor >
virtual bool BlasCuda< FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Functor >::advanceSharedBytes ( TuneParam &  param) const
inlineprivatevirtual

◆ apply()

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

Definition at line 88 of file blas_core.cuh.

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

Here is the call graph for this function:

◆ bytes()

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

◆ defaultTuneParam()

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

◆ flops()

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

◆ initTuneParam()

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

◆ postTune()

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

◆ preTune()

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

◆ sharedBytesPerBlock()

template<typename FloatN , int M, typename SpinorX , typename SpinorY , typename SpinorZ , typename SpinorW , typename Functor >
unsigned int BlasCuda< FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Functor >::sharedBytesPerBlock ( const TuneParam &  param) const
inlineprivate

Definition at line 64 of file blas_core.cuh.

Referenced by BlasCuda< FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Functor >::advanceSharedBytes().

Here is the caller graph for this function:

◆ sharedBytesPerThread()

template<typename FloatN , int M, typename SpinorX , typename SpinorY , typename SpinorZ , typename SpinorW , typename Functor >
unsigned int BlasCuda< FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Functor >::sharedBytesPerThread ( ) const
inlineprivate

Definition at line 63 of file blas_core.cuh.

Referenced by BlasCuda< FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Functor >::advanceSharedBytes().

Here is the caller graph for this function:

◆ tuneKey()

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

◆ tuningIter()

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

Definition at line 131 of file blas_core.cuh.

Member Data Documentation

◆ arg

template<typename FloatN , int M, typename SpinorX , typename SpinorY , typename SpinorZ , typename SpinorW , typename Functor >
BlasArg<SpinorX,SpinorY,SpinorZ,SpinorW,Functor> BlasCuda< FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Functor >::arg
mutableprivate

◆ bytes_

template<typename FloatN , int M, typename SpinorX , typename SpinorY , typename SpinorZ , typename SpinorW , typename Functor >
const size_t* BlasCuda< FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Functor >::bytes_
private

◆ norm_bytes_

template<typename FloatN , int M, typename SpinorX , typename SpinorY , typename SpinorZ , typename SpinorW , typename Functor >
const size_t* BlasCuda< FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Functor >::norm_bytes_
private

◆ nParity

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

◆ W_h

template<typename FloatN , int M, typename SpinorX , typename SpinorY , typename SpinorZ , typename SpinorW , typename Functor >
char * BlasCuda< FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Functor >::W_h
private

◆ Wnorm_h

template<typename FloatN , int M, typename SpinorX , typename SpinorY , typename SpinorZ , typename SpinorW , typename Functor >
char * BlasCuda< FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Functor >::Wnorm_h
private

◆ X_h

template<typename FloatN , int M, typename SpinorX , typename SpinorY , typename SpinorZ , typename SpinorW , typename Functor >
char* BlasCuda< FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Functor >::X_h
private

◆ Xnorm_h

template<typename FloatN , int M, typename SpinorX , typename SpinorY , typename SpinorZ , typename SpinorW , typename Functor >
char* BlasCuda< FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Functor >::Xnorm_h
private

◆ Y_h

template<typename FloatN , int M, typename SpinorX , typename SpinorY , typename SpinorZ , typename SpinorW , typename Functor >
char * BlasCuda< FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Functor >::Y_h
private

◆ Ynorm_h

template<typename FloatN , int M, typename SpinorX , typename SpinorY , typename SpinorZ , typename SpinorW , typename Functor >
char * BlasCuda< FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Functor >::Ynorm_h
private

◆ Z_h

template<typename FloatN , int M, typename SpinorX , typename SpinorY , typename SpinorZ , typename SpinorW , typename Functor >
char * BlasCuda< FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Functor >::Z_h
private

◆ Znorm_h

template<typename FloatN , int M, typename SpinorX , typename SpinorY , typename SpinorZ , typename SpinorW , typename Functor >
char * BlasCuda< FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Functor >::Znorm_h
private

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