QUDA  1.0.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
DslashCuda Class Reference
Inheritance diagram for DslashCuda:
Inheritance graph
[legend]
Collaboration diagram for DslashCuda:
Collaboration graph
[legend]

Public Member Functions

 DslashCuda (cudaColorSpinorField *out, const cudaColorSpinorField *in, const cudaColorSpinorField *x, const GaugeField &gauge, const int parity, const int dagger, const int *commOverride)
 
virtual ~DslashCuda ()
 
virtual TuneKey tuneKey () const
 
const char * getAux (KernelType type) const
 
void setAux (KernelType type, const char *aux_)
 
void augmentAux (KernelType type, const char *extra)
 
virtual int Nface () const
 
int Dagger () const
 
virtual void preTune ()
 
virtual void postTune ()
 
virtual long long flops () const
 
virtual long long bytes () const
 

Public Attributes

DslashParam dslashParam
 

Protected Member Functions

unsigned int sharedBytesPerBlock (const TuneParam &param) const
 
bool tuneGridDim () const
 
bool tuneAuxDim () const
 
unsigned int minThreads () const
 
void fillAuxBase ()
 Set the base strings used by the different dslash kernel types for autotuning. More...
 
void fillAux (KernelType kernel_type, const char *kernel_str)
 Specialize the auxiliary strings for each kernel type. More...
 
void setParam ()
 Set the dslashParam for the current multi-GPU parameters (set these at the last minute to ensure we always use the correct ones while policy autotuning). More...
 

Protected Attributes

cudaColorSpinorField * out
 
const cudaColorSpinorField * in
 
const cudaColorSpinorField * x
 
const GaugeField & gauge
 
const QudaReconstructType reconstruct
 
char * saveOut
 
char * saveOutNorm
 
const int dagger
 
char aux_base [TuneKey::aux_n]
 
char aux [8][TuneKey::aux_n]
 

Static Protected Attributes

static bool init = false
 
static char ghost_str [TuneKey::aux_n]
 

Detailed Description

Definition at line 381 of file dslash_quda.cuh.

Constructor & Destructor Documentation

◆ DslashCuda()

DslashCuda::DslashCuda ( cudaColorSpinorField *  out,
const cudaColorSpinorField *  in,
const cudaColorSpinorField *  x,
const GaugeField &  gauge,
const int  parity,
const int  dagger,
const int *  commOverride 
)
inline

◆ ~DslashCuda()

virtual DslashCuda::~DslashCuda ( )
inlinevirtual

Definition at line 569 of file dslash_quda.cuh.

Member Function Documentation

◆ augmentAux()

void DslashCuda::augmentAux ( KernelType  type,
const char *  extra 
)
inline

Definition at line 581 of file dslash_quda.cuh.

◆ bytes()

virtual long long DslashCuda::bytes ( ) const
inlinevirtual

◆ Dagger()

int DslashCuda::Dagger ( ) const
inline

Definition at line 587 of file dslash_quda.cuh.

References dagger, param, and X.

◆ fillAux()

void DslashCuda::fillAux ( KernelType  kernel_type,
const char *  kernel_str 
)
inlineprotected

Specialize the auxiliary strings for each kernel type.

Parameters
[in]kernel_typeThe kernel_type we are generating the string got
[in]kernel_strString corresponding to the kernel type

Definition at line 434 of file dslash_quda.cuh.

References quda::INTERIOR_KERNEL.

Referenced by DslashCuda().

Here is the caller graph for this function:

◆ fillAuxBase()

void DslashCuda::fillAuxBase ( )
inlineprotected

Set the base strings used by the different dslash kernel types for autotuning.

Definition at line 406 of file dslash_quda.cuh.

References DslashParam::commDim, dslashParam, QUDA_RECONSTRUCT_12, QUDA_RECONSTRUCT_13, QUDA_RECONSTRUCT_8, QUDA_RECONSTRUCT_9, and QUDA_RECONSTRUCT_NO.

Referenced by DslashCuda().

Here is the caller graph for this function:

◆ flops()

virtual long long DslashCuda::flops ( ) const
inlinevirtual

◆ getAux()

const char* DslashCuda::getAux ( KernelType  type) const
inline

Definition at line 573 of file dslash_quda.cuh.

◆ minThreads()

unsigned int DslashCuda::minThreads ( ) const
inlineprotected

Definition at line 397 of file dslash_quda.cuh.

References dslashParam, and DslashParam::threads.

◆ Nface()

virtual int DslashCuda::Nface ( ) const
inlinevirtual

Definition at line 585 of file dslash_quda.cuh.

◆ postTune()

virtual void DslashCuda::postTune ( )
inlinevirtual

Definition at line 643 of file dslash_quda.cuh.

◆ preTune()

virtual void DslashCuda::preTune ( )
inlinevirtual

Definition at line 638 of file dslash_quda.cuh.

◆ setAux()

void DslashCuda::setAux ( KernelType  type,
const char *  aux_ 
)
inline

Definition at line 577 of file dslash_quda.cuh.

◆ setParam()

void DslashCuda::setParam ( )
inlineprotected

Set the dslashParam for the current multi-GPU parameters (set these at the last minute to ensure we always use the correct ones while policy autotuning).

Definition at line 445 of file dslash_quda.cuh.

References comm_peer2peer_enabled(), DslashParam::commDim, dslashParam, quda::getKernelPackT(), DslashParam::ghost, DslashParam::ghostNorm, quda::INTERIOR_KERNEL, DslashParam::kernel_type, DslashParam::tProjScale, and DslashParam::tProjScale_f.

Here is the call graph for this function:

◆ sharedBytesPerBlock()

unsigned int DslashCuda::sharedBytesPerBlock ( const TuneParam &  param) const
inlineprotected

Definition at line 393 of file dslash_quda.cuh.

Referenced by bytes().

Here is the caller graph for this function:

◆ tuneAuxDim()

bool DslashCuda::tuneAuxDim ( ) const
inlineprotected

Definition at line 395 of file dslash_quda.cuh.

◆ tuneGridDim()

bool DslashCuda::tuneGridDim ( ) const
inlineprotected

Definition at line 394 of file dslash_quda.cuh.

◆ tuneKey()

virtual TuneKey DslashCuda::tuneKey ( ) const
inlinevirtual

Definition at line 570 of file dslash_quda.cuh.

References DslashParam::kernel_type.

Member Data Documentation

◆ aux

char DslashCuda::aux[8][TuneKey::aux_n]
protected

Definition at line 399 of file dslash_quda.cuh.

◆ aux_base

char DslashCuda::aux_base[TuneKey::aux_n]
protected

Definition at line 398 of file dslash_quda.cuh.

◆ dagger

const int DslashCuda::dagger
protected

Definition at line 390 of file dslash_quda.cuh.

Referenced by bytes(), and Dagger().

◆ dslashParam

DslashParam DslashCuda::dslashParam

Definition at line 475 of file dslash_quda.cuh.

Referenced by bytes(), fillAuxBase(), minThreads(), and setParam().

◆ gauge

const GaugeField& DslashCuda::gauge
protected

Definition at line 387 of file dslash_quda.cuh.

Referenced by bytes().

◆ ghost_str

char DslashCuda::ghost_str
staticprotected

Definition at line 400 of file dslash_quda.cuh.

Referenced by bytes().

◆ in

const cudaColorSpinorField* DslashCuda::in
protected

Definition at line 385 of file dslash_quda.cuh.

Referenced by bytes().

◆ init

bool DslashCuda::init = false
staticprotected

Definition at line 391 of file dslash_quda.cuh.

Referenced by bytes().

◆ out

cudaColorSpinorField* DslashCuda::out
protected

Definition at line 384 of file dslash_quda.cuh.

Referenced by bytes().

◆ reconstruct

const QudaReconstructType DslashCuda::reconstruct
protected

Definition at line 388 of file dslash_quda.cuh.

◆ saveOut

char* DslashCuda::saveOut
protected

Definition at line 389 of file dslash_quda.cuh.

◆ saveOutNorm

char * DslashCuda::saveOutNorm
protected

Definition at line 389 of file dslash_quda.cuh.

◆ x

const cudaColorSpinorField* DslashCuda::x
protected

Definition at line 386 of file dslash_quda.cuh.

Referenced by bytes().


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