QUDA  v1.1.0
A library for QCD on GPUs
Namespaces | Typedefs | Enumerations | Functions
dslash_quda.h File Reference
#include <quda_internal.h>
#include <tune_quda.h>
#include <color_spinor_field.h>
#include <gauge_field.h>
#include <clover_field.h>
#include <worker.h>

Go to the source code of this file.

Namespaces

 quda
 
 quda::dslash
 
 quda::mobius_tensor_core
 
 quda::mobius_eofa
 

Typedefs

using quda::dslash::shmem_sync_t = uint64_t
 type used for shmem signaling More...
 

Enumerations

enum  quda::Dslash5Type {
  quda::DSLASH5_DWF , quda::DSLASH5_MOBIUS_PRE , quda::DSLASH5_MOBIUS , quda::M5_INV_DWF ,
  quda::M5_INV_MOBIUS , quda::M5_INV_ZMOBIUS , quda::M5_EOFA , quda::M5INV_EOFA
}
 
enum class  quda::MdwfFusedDslashType {
  quda::D4_D5INV_D5PRE , quda::D4_D5INV_D5INVDAG , quda::D4DAG_D5PREDAG_D5INVDAG , quda::D4DAG_D5PREDAG ,
  quda::D5PRE
}
 

Functions

void quda::setKernelPackT (bool pack)
 
bool quda::getKernelPackT ()
 
void quda::pushKernelPackT (bool pack)
 
void quda::popKernelPackT ()
 
void quda::setPackComms (const int *dim_pack)
 Helper function that sets which dimensions the packing kernel should be packing for. More...
 
bool quda::getDslashLaunch ()
 
void quda::createDslashEvents ()
 
void quda::destroyDslashEvents ()
 
shmem_sync_t quda::dslash::get_shmem_sync_counter ()
 Get the shmem sync counter. More...
 
shmem_sync_t quda::dslash::set_shmem_sync_counter (shmem_sync_t count)
 Set the shmem sync counter to count. More...
 
shmem_sync_t quda::dslash::inc_shmem_sync_counter ()
 increase the shmem sync counter for the next dslash application More...
 
void quda::ApplyWilson (ColorSpinorField &out, const ColorSpinorField &in, const GaugeField &U, double kappa, const ColorSpinorField &x, int parity, bool dagger, const int *comm_override, TimeProfile &profile)
 Driver for applying the Wilson stencil. More...
 
void quda::ApplyWilsonClover (ColorSpinorField &out, const ColorSpinorField &in, const GaugeField &U, const CloverField &A, double kappa, const ColorSpinorField &x, int parity, bool dagger, const int *comm_override, TimeProfile &profile)
 Driver for applying the Wilson-clover stencil. More...
 
void quda::ApplyWilsonCloverHasenbuschTwist (ColorSpinorField &out, const ColorSpinorField &in, const GaugeField &U, const CloverField &A, double kappa, double mu, const ColorSpinorField &x, int parity, bool dagger, const int *comm_override, TimeProfile &profile)
 Driver for applying the Wilson-clover stencil. More...
 
void quda::ApplyWilsonCloverPreconditioned (ColorSpinorField &out, const ColorSpinorField &in, const GaugeField &U, const CloverField &A, double kappa, const ColorSpinorField &x, int parity, bool dagger, const int *comm_override, TimeProfile &profile)
 Driver for applying the preconditioned Wilson-clover stencil. More...
 
void quda::ApplyWilsonCloverHasenbuschTwistPCClovInv (ColorSpinorField &out, const ColorSpinorField &in, const GaugeField &U, const CloverField &A, double kappa, double mu, const ColorSpinorField &x, int parity, bool dagger, const int *comm_override, TimeProfile &profile)
 Driver for applying the twisted-mass stencil. More...
 
void quda::ApplyWilsonCloverHasenbuschTwistPCNoClovInv (ColorSpinorField &out, const ColorSpinorField &in, const GaugeField &U, const CloverField &A, double kappa, double mu, const ColorSpinorField &x, int parity, bool dagger, const int *comm_override, TimeProfile &profile)
 Driver for applying the Wilson-clover stencil with thist for Hasenbusch. More...
 
void quda::ApplyTwistedMass (ColorSpinorField &out, const ColorSpinorField &in, const GaugeField &U, double a, double b, const ColorSpinorField &x, int parity, bool dagger, const int *comm_override, TimeProfile &profile)
 
void quda::ApplyTwistedMassPreconditioned (ColorSpinorField &out, const ColorSpinorField &in, const GaugeField &U, double a, double b, bool xpay, const ColorSpinorField &x, int parity, bool dagger, bool asymmetric, const int *comm_override, TimeProfile &profile)
 Driver for applying the preconditioned twisted-mass stencil. More...
 
void quda::ApplyNdegTwistedMass (ColorSpinorField &out, const ColorSpinorField &in, const GaugeField &U, double a, double b, double c, const ColorSpinorField &x, int parity, bool dagger, const int *comm_override, TimeProfile &profile)
 Driver for applying the non-degenerate twisted-mass stencil. More...
 
void quda::ApplyNdegTwistedMassPreconditioned (ColorSpinorField &out, const ColorSpinorField &in, const GaugeField &U, double a, double b, double c, bool xpay, const ColorSpinorField &x, int parity, bool dagger, bool asymmetric, const int *comm_override, TimeProfile &profile)
 Driver for applying the preconditioned non-degenerate twisted-mass stencil. More...
 
void quda::ApplyTwistedClover (ColorSpinorField &out, const ColorSpinorField &in, const GaugeField &U, const CloverField &C, double a, double b, const ColorSpinorField &x, int parity, bool dagger, const int *comm_override, TimeProfile &profile)
 Driver for applying the twisted-clover stencil. More...
 
void quda::ApplyTwistedCloverPreconditioned (ColorSpinorField &out, const ColorSpinorField &in, const GaugeField &U, const CloverField &C, double a, double b, bool xpay, const ColorSpinorField &x, int parity, bool dagger, const int *comm_override, TimeProfile &profile)
 Driver for applying the preconditioned twisted-clover stencil. More...
 
void quda::ApplyDomainWall5D (ColorSpinorField &out, const ColorSpinorField &in, const GaugeField &U, double a, double m_f, const ColorSpinorField &x, int parity, bool dagger, const int *comm_override, TimeProfile &profile)
 Driver for applying the Domain-wall 5-d stencil to a 5-d vector with 5-d preconditioned data order. More...
 
void quda::ApplyDomainWall4D (ColorSpinorField &out, const ColorSpinorField &in, const GaugeField &U, double a, double m_5, const Complex *b_5, const Complex *c_5, const ColorSpinorField &x, int parity, bool dagger, const int *comm_override, TimeProfile &profile)
 Driver for applying the batched Wilson 4-d stencil to a 5-d vector with 4-d preconditioned data order. More...
 
void quda::ApplyDslash5 (ColorSpinorField &out, const ColorSpinorField &in, const ColorSpinorField &x, double m_f, double m_5, const Complex *b_5, const Complex *c_5, double a, bool dagger, Dslash5Type type)
 Apply either the domain-wall / mobius Dslash5 operator or the M5 inverse operator. In the current implementation, it is expected that the color-spinor fields are 4-d preconditioned. More...
 
void quda::mobius_tensor_core::apply_fused_dslash (ColorSpinorField &out, const ColorSpinorField &in, const GaugeField &U, ColorSpinorField &y, const ColorSpinorField &x, double m_f, double m_5, const Complex *b_5, const Complex *c_5, bool dagger, int parity, int shift[4], int halo_shift[4], MdwfFusedDslashType type)
 
void quda::mobius_eofa::apply_dslash5 (ColorSpinorField &out, const ColorSpinorField &in, const ColorSpinorField &x, double m_f, double m_5, const Complex *b_5, const Complex *c_5, double a, int eofa_pm, double inv, double kappa, const double *eofa_u, const double *eofa_x, const double *eofa_y, double sherman_morrison, bool dagger, Dslash5Type type)
 
void quda::ApplyLaplace (ColorSpinorField &out, const ColorSpinorField &in, const GaugeField &U, int dir, double a, double b, const ColorSpinorField &x, int parity, bool dagger, const int *comm_override, TimeProfile &profile)
 Driver for applying the Laplace stencil. More...
 
void quda::ApplyCovDev (ColorSpinorField &out, const ColorSpinorField &in, const GaugeField &U, int mu, int parity, bool dagger, const int *comm_override, TimeProfile &profile)
 Driver for applying the covariant derivative. More...
 
void quda::ApplyClover (ColorSpinorField &out, const ColorSpinorField &in, const CloverField &clover, bool inverse, int parity)
 Apply clover-matrix field to a color-spinor field. More...
 
void quda::ApplyStaggered (ColorSpinorField &out, const ColorSpinorField &in, const GaugeField &U, double a, const ColorSpinorField &x, int parity, bool dagger, const int *comm_override, TimeProfile &profile)
 Apply the staggered dslash operator to a color-spinor field. More...
 
void quda::ApplyImprovedStaggered (ColorSpinorField &out, const ColorSpinorField &in, const GaugeField &U, const GaugeField &L, double a, const ColorSpinorField &x, int parity, bool dagger, const int *comm_override, TimeProfile &profile)
 Apply the improved staggered dslash operator to a color-spinor field. More...
 
void quda::ApplyStaggeredKahlerDiracInverse (ColorSpinorField &out, const ColorSpinorField &in, const GaugeField &Xinv, bool dagger)
 Apply the (improved) staggered Kahler-Dirac inverse block to a color-spinor field. More...
 
void quda::ApplyTwistGamma (ColorSpinorField &out, const ColorSpinorField &in, int d, double kappa, double mu, double epsilon, int dagger, QudaTwistGamma5Type type)
 Apply the twisted-mass gamma operator to a color-spinor field. More...
 
void quda::ApplyTwistClover (ColorSpinorField &out, const ColorSpinorField &in, const CloverField &clover, double kappa, double mu, double epsilon, int parity, int dagger, QudaTwistGamma5Type twist)
 Apply twisted clover-matrix field to a color-spinor field. More...
 
void quda::PackGhost (void *ghost[2 *QUDA_MAX_DIM], const ColorSpinorField &field, MemoryLocation location, int nFace, bool dagger, int parity, bool spin_project, double a, double b, double c, int shmem, const qudaStream_t &stream)
 Dslash face packing routine. More...
 
void quda::gamma5 (ColorSpinorField &out, const ColorSpinorField &in)
 Applies a gamma5 matrix to a spinor (wrapper to ApplyGamma) More...