QUDA  0.9.0
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 365 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 552 of file dslash_quda.cuh.

References gauge, and unbindGaugeTex().

Here is the call graph for this function:

Member Function Documentation

◆ augmentAux()

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

Definition at line 564 of file dslash_quda.cuh.

References aux, and strcat().

Here is the call graph for this function:

◆ bytes()

virtual long long DslashCuda::bytes ( ) const
inlinevirtual

◆ Dagger()

int DslashCuda::Dagger ( ) const
inline

Definition at line 570 of file dslash_quda.cuh.

References dagger.

◆ 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 418 of file dslash_quda.cuh.

References aux, aux_base, ghost_str, INTERIOR_KERNEL, strcat(), and strcpy().

Referenced by DslashCuda().

Here is the call graph for this function:
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 390 of file dslash_quda.cuh.

References aux_base, DslashParam::commDim, dagger, dslashParam, QUDA_RECONSTRUCT_12, QUDA_RECONSTRUCT_13, QUDA_RECONSTRUCT_8, QUDA_RECONSTRUCT_9, QUDA_RECONSTRUCT_NO, reconstruct, strcat(), strcpy(), and x.

Referenced by DslashCuda().

Here is the call graph for this function:
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 556 of file dslash_quda.cuh.

References aux.

◆ minThreads()

unsigned int DslashCuda::minThreads ( ) const
inlineprotected

Definition at line 381 of file dslash_quda.cuh.

References dslashParam, and DslashParam::threads.

◆ Nface()

virtual int DslashCuda::Nface ( ) const
inlinevirtual

Definition at line 568 of file dslash_quda.cuh.

◆ postTune()

virtual void DslashCuda::postTune ( )
inlinevirtual

Definition at line 626 of file dslash_quda.cuh.

References out.

◆ preTune()

virtual void DslashCuda::preTune ( )
inlinevirtual

Definition at line 621 of file dslash_quda.cuh.

References out.

◆ setAux()

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

Definition at line 560 of file dslash_quda.cuh.

References aux, and strcpy().

Here is the call graph for this function:

◆ 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 429 of file dslash_quda.cuh.

References comm_peer2peer_enabled(), dim, dslashParam, float, quda::getKernelPackT(), DslashParam::ghost, DslashParam::ghostNorm, in, 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 377 of file dslash_quda.cuh.

◆ tuneAuxDim()

bool DslashCuda::tuneAuxDim ( ) const
inlineprotected

Definition at line 379 of file dslash_quda.cuh.

◆ tuneGridDim()

bool DslashCuda::tuneGridDim ( ) const
inlineprotected

Definition at line 378 of file dslash_quda.cuh.

◆ tuneKey()

virtual TuneKey DslashCuda::tuneKey ( ) const
inlinevirtual

Definition at line 553 of file dslash_quda.cuh.

References aux, dslashParam, in, and DslashParam::kernel_type.

Member Data Documentation

◆ aux

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

Definition at line 383 of file dslash_quda.cuh.

Referenced by augmentAux(), fillAux(), getAux(), setAux(), and tuneKey().

◆ aux_base

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

Definition at line 382 of file dslash_quda.cuh.

Referenced by fillAux(), and fillAuxBase().

◆ dagger

const int DslashCuda::dagger
protected

Definition at line 374 of file dslash_quda.cuh.

Referenced by Dagger(), and fillAuxBase().

◆ dslashParam

DslashParam DslashCuda::dslashParam

Definition at line 458 of file dslash_quda.cuh.

Referenced by bytes(), DslashCuda(), fillAuxBase(), flops(), minThreads(), setParam(), and tuneKey().

◆ gauge

const GaugeField& DslashCuda::gauge
protected

Definition at line 371 of file dslash_quda.cuh.

Referenced by DslashCuda(), and ~DslashCuda().

◆ ghost_str

char DslashCuda::ghost_str
staticprotected

Definition at line 384 of file dslash_quda.cuh.

Referenced by DslashCuda(), and fillAux().

◆ in

const cudaColorSpinorField* DslashCuda::in
protected

Definition at line 369 of file dslash_quda.cuh.

Referenced by bytes(), DslashCuda(), flops(), setParam(), and tuneKey().

◆ init

bool DslashCuda::init = false
staticprotected

Definition at line 375 of file dslash_quda.cuh.

Referenced by DslashCuda().

◆ out

cudaColorSpinorField* DslashCuda::out
protected

Definition at line 368 of file dslash_quda.cuh.

Referenced by DslashCuda(), postTune(), and preTune().

◆ reconstruct

const QudaReconstructType DslashCuda::reconstruct
protected

Definition at line 372 of file dslash_quda.cuh.

Referenced by bytes(), and fillAuxBase().

◆ saveOut

char* DslashCuda::saveOut
protected

Definition at line 373 of file dslash_quda.cuh.

◆ saveOutNorm

char * DslashCuda::saveOutNorm
protected

Definition at line 373 of file dslash_quda.cuh.

◆ x

const cudaColorSpinorField* DslashCuda::x
protected

Definition at line 370 of file dslash_quda.cuh.

Referenced by bytes(), DslashCuda(), fillAuxBase(), and flops().


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