QUDA v0.3.2
A library for QCD on GPUs
Defines | Functions

quda/lib/dslash_quda.cu File Reference

#include <stdlib.h>
#include <stdio.h>
#include <quda_internal.h>
#include <dslash_quda.h>
#include <dslash_textures.h>
#include <dslash_constants.h>
#include <staggered_dslash_def.h>
#include <wilson_dslash_def.h>
#include <dw_dslash_def.h>
#include <tm_dslash_def.h>
#include <dslash_core/tm_core.h>
#include <clover_def.h>
#include <blas_quda.h>

Go to the source code of this file.

Defines

#define DIRECT_ACCESS_FAT_LINK
#define BLOCK_DIM   64
#define SHARED_FLOATS_PER_THREAD   0

Functions

__global__ void dummyKernel ()
void initCache ()
int dslashCudaSharedBytes (QudaPrecision precision)
template<int spinorN, typename spinorFloat , typename gaugeFloat >
void dslashCuda (spinorFloat *out, float *outNorm, const gaugeFloat *gauge0, const gaugeFloat *gauge1, const QudaReconstructType reconstruct, const spinorFloat *in, const float *inNorm, const int parity, const int dagger, const spinorFloat *x, const float *xNorm, const double &a, const int volume, const int length)
void dslashCuda (void *out, void *outNorm, const FullGauge gauge, const void *in, const void *inNorm, const int parity, const int dagger, const void *x, const void *xNorm, const double k, const int volume, const int length, const QudaPrecision precision)
template<int N, typename spinorFloat , typename cloverFloat >
void cloverCuda (spinorFloat *out, float *outNorm, const cloverFloat *clover, const float *cloverNorm, const spinorFloat *in, const float *inNorm, const int parity, const int volume, const int length)
void cloverCuda (void *out, void *outNorm, const FullGauge gauge, const FullClover clover, const void *in, const void *inNorm, const int parity, const int volume, const int length, const QudaPrecision precision)
template<int N, typename spinorFloat , typename cloverFloat , typename gaugeFloat >
void cloverDslashCuda (spinorFloat *out, float *outNorm, const gaugeFloat gauge0, const gaugeFloat gauge1, const QudaReconstructType reconstruct, const cloverFloat *clover, const float *cloverNorm, const spinorFloat *in, const float *inNorm, const int parity, const int dagger, const spinorFloat *x, const float *xNorm, const double &a, const int volume, const int length)
void cloverDslashCuda (void *out, void *outNorm, const FullGauge gauge, const FullClover cloverInv, const void *in, const void *inNorm, const int parity, const int dagger, const void *x, const void *xNorm, const double a, const int volume, const int length, const QudaPrecision precision)
template<int N, typename spinorFloat , typename gaugeFloat >
void domainWallDslashCuda (spinorFloat *out, float *outNorm, const gaugeFloat gauge0, const gaugeFloat gauge1, const QudaReconstructType reconstruct, const spinorFloat *in, const float *inNorm, const int parity, const int dagger, const spinorFloat *x, const float *xNorm, const double &m_f, const double &k2, const int volume_5d, const int length)
void domainWallDslashCuda (void *out, void *outNorm, const FullGauge gauge, const void *in, const void *inNorm, const int parity, const int dagger, const void *x, const void *xNorm, const double m_f, const double k2, const int volume5d, const int length, const QudaPrecision precision)
template<int spinorN, typename spinorFloat , typename fatGaugeFloat , typename longGaugeFloat >
void staggeredDslashCuda (spinorFloat *out, float *outNorm, const fatGaugeFloat *fatGauge0, const fatGaugeFloat *fatGauge1, const longGaugeFloat *longGauge0, const longGaugeFloat *longGauge1, const QudaReconstructType reconstruct, const spinorFloat *in, const float *inNorm, const int parity, const int dagger, const spinorFloat *x, const float *xNorm, const double &a, const int volume, const int length, const QudaPrecision precision)
template<int spinorN, typename spinorFloat , typename fatGaugeFloat , typename longGaugeFloat >
void staggeredDslashNoReconCuda (spinorFloat *out, float *outNorm, const fatGaugeFloat *fatGauge0, const fatGaugeFloat *fatGauge1, const longGaugeFloat *longGauge0, const longGaugeFloat *longGauge1, const QudaReconstructType reconstruct, const spinorFloat *in, const float *inNorm, const int parity, const int dagger, const spinorFloat *x, const float *xNorm, const double &a, const int volume, const int length, const QudaPrecision precision)
void staggeredDslashCuda (void *out, void *outNorm, const FullGauge fatGauge, const FullGauge longGauge, const void *in, const void *inNorm, const int parity, const int dagger, const void *x, const void *xNorm, const double k, const int volume, const int length, const QudaPrecision precision)
void setTwistParam (double &a, double &b, const double &kappa, const double &mu, const int dagger, const QudaTwistGamma5Type twist)
template<int N, typename spinorFloat >
void twistGamma5Cuda (spinorFloat *out, float *outNorm, const spinorFloat *in, const float *inNorm, const int dagger, const double &kappa, const double &mu, const int volume, const int length, const QudaTwistGamma5Type twist)
void twistGamma5Cuda (void *out, void *outNorm, const void *in, const void *inNorm, const int dagger, const double kappa, const double mu, const int volume, const int length, const QudaPrecision precision, const QudaTwistGamma5Type twist)
template<int N, typename spinorFloat , typename gaugeFloat >
void twistedMassDslashCuda (spinorFloat *out, float *outNorm, const gaugeFloat gauge0, const gaugeFloat gauge1, const QudaReconstructType reconstruct, const spinorFloat *in, const float *inNorm, const int parity, const int dagger, const spinorFloat *x, const float *xNorm, const double &kappa, const double &mu, const double &k, const int volume, const int length)
void twistedMassDslashCuda (void *out, void *outNorm, const FullGauge gauge, const void *in, const void *inNorm, const int parity, const int dagger, const void *x, const void *xNorm, const double kappa, const double mu, const double a, const int volume, const int length, const QudaPrecision precision)

Define Documentation

#define BLOCK_DIM   64

Definition at line 19 of file dslash_quda.cu.

#define DIRECT_ACCESS_FAT_LINK

Definition at line 11 of file dslash_quda.cu.

#define SHARED_FLOATS_PER_THREAD   0

Definition at line 32 of file dslash_quda.cu.


Function Documentation

template<int N, typename spinorFloat , typename cloverFloat >
void cloverCuda ( spinorFloat *  out,
float *  outNorm,
const cloverFloat *  clover,
const float *  cloverNorm,
const spinorFloat *  in,
const float *  inNorm,
const int  parity,
const int  volume,
const int  length 
)

Definition at line 169 of file dslash_quda.cu.

void cloverCuda ( void *  out,
void *  outNorm,
const FullGauge  gauge,
const FullClover  clover,
const void *  in,
const void *  inNorm,
const int  parity,
const int  volume,
const int  length,
const QudaPrecision  precision 
)

Definition at line 182 of file dslash_quda.cu.

template<int N, typename spinorFloat , typename cloverFloat , typename gaugeFloat >
void cloverDslashCuda ( spinorFloat *  out,
float *  outNorm,
const gaugeFloat  gauge0,
const gaugeFloat  gauge1,
const QudaReconstructType  reconstruct,
const cloverFloat *  clover,
const float *  cloverNorm,
const spinorFloat *  in,
const float *  inNorm,
const int  parity,
const int  dagger,
const spinorFloat *  x,
const float *  xNorm,
const double &  a,
const int  volume,
const int  length 
)

Definition at line 221 of file dslash_quda.cu.

void cloverDslashCuda ( void *  out,
void *  outNorm,
const FullGauge  gauge,
const FullClover  cloverInv,
const void *  in,
const void *  inNorm,
const int  parity,
const int  dagger,
const void *  x,
const void *  xNorm,
const double  a,
const int  volume,
const int  length,
const QudaPrecision  precision 
)

Definition at line 289 of file dslash_quda.cu.

template<int N, typename spinorFloat , typename gaugeFloat >
void domainWallDslashCuda ( spinorFloat *  out,
float *  outNorm,
const gaugeFloat  gauge0,
const gaugeFloat  gauge1,
const QudaReconstructType  reconstruct,
const spinorFloat *  in,
const float *  inNorm,
const int  parity,
const int  dagger,
const spinorFloat *  x,
const float *  xNorm,
const double &  m_f,
const double &  k2,
const int  volume_5d,
const int  length 
)

Definition at line 339 of file dslash_quda.cu.

void domainWallDslashCuda ( void *  out,
void *  outNorm,
const FullGauge  gauge,
const void *  in,
const void *  inNorm,
const int  parity,
const int  dagger,
const void *  x,
const void *  xNorm,
const double  m_f,
const double  k2,
const int  volume5d,
const int  length,
const QudaPrecision  precision 
)

Definition at line 407 of file dslash_quda.cu.

void dslashCuda ( void *  out,
void *  outNorm,
const FullGauge  gauge,
const void *  in,
const void *  inNorm,
const int  parity,
const int  dagger,
const void *  x,
const void *  xNorm,
const double  k,
const int  volume,
const int  length,
const QudaPrecision  precision 
)

Definition at line 130 of file dslash_quda.cu.

template<int spinorN, typename spinorFloat , typename gaugeFloat >
void dslashCuda ( spinorFloat *  out,
float *  outNorm,
const gaugeFloat *  gauge0,
const gaugeFloat *  gauge1,
const QudaReconstructType  reconstruct,
const spinorFloat *  in,
const float *  inNorm,
const int  parity,
const int  dagger,
const spinorFloat *  x,
const float *  xNorm,
const double &  a,
const int  volume,
const int  length 
)

Definition at line 61 of file dslash_quda.cu.

int dslashCudaSharedBytes ( QudaPrecision  precision)

Definition at line 56 of file dslash_quda.cu.

__global__ void dummyKernel ( )

Definition at line 37 of file dslash_quda.cu.

void initCache ( )

Definition at line 41 of file dslash_quda.cu.

void setTwistParam ( double &  a,
double &  b,
const double &  kappa,
const double &  mu,
const int  dagger,
const QudaTwistGamma5Type  twist 
)

Definition at line 622 of file dslash_quda.cu.

void staggeredDslashCuda ( void *  out,
void *  outNorm,
const FullGauge  fatGauge,
const FullGauge  longGauge,
const void *  in,
const void *  inNorm,
const int  parity,
const int  dagger,
const void *  x,
const void *  xNorm,
const double  k,
const int  volume,
const int  length,
const QudaPrecision  precision 
)

Definition at line 553 of file dslash_quda.cu.

template<int spinorN, typename spinorFloat , typename fatGaugeFloat , typename longGaugeFloat >
void staggeredDslashCuda ( spinorFloat *  out,
float *  outNorm,
const fatGaugeFloat *  fatGauge0,
const fatGaugeFloat *  fatGauge1,
const longGaugeFloat *  longGauge0,
const longGaugeFloat *  longGauge1,
const QudaReconstructType  reconstruct,
const spinorFloat *  in,
const float *  inNorm,
const int  parity,
const int  dagger,
const spinorFloat *  x,
const float *  xNorm,
const double &  a,
const int  volume,
const int  length,
const QudaPrecision  precision 
)

Definition at line 447 of file dslash_quda.cu.

template<int spinorN, typename spinorFloat , typename fatGaugeFloat , typename longGaugeFloat >
void staggeredDslashNoReconCuda ( spinorFloat *  out,
float *  outNorm,
const fatGaugeFloat *  fatGauge0,
const fatGaugeFloat *  fatGauge1,
const longGaugeFloat *  longGauge0,
const longGaugeFloat *  longGauge1,
const QudaReconstructType  reconstruct,
const spinorFloat *  in,
const float *  inNorm,
const int  parity,
const int  dagger,
const spinorFloat *  x,
const float *  xNorm,
const double &  a,
const int  volume,
const int  length,
const QudaPrecision  precision 
)

Definition at line 513 of file dslash_quda.cu.

void twistedMassDslashCuda ( void *  out,
void *  outNorm,
const FullGauge  gauge,
const void *  in,
const void *  inNorm,
const int  parity,
const int  dagger,
const void *  x,
const void *  xNorm,
const double  kappa,
const double  mu,
const double  a,
const int  volume,
const int  length,
const QudaPrecision  precision 
)

Definition at line 757 of file dslash_quda.cu.

template<int N, typename spinorFloat , typename gaugeFloat >
void twistedMassDslashCuda ( spinorFloat *  out,
float *  outNorm,
const gaugeFloat  gauge0,
const gaugeFloat  gauge1,
const QudaReconstructType  reconstruct,
const spinorFloat *  in,
const float *  inNorm,
const int  parity,
const int  dagger,
const spinorFloat *  x,
const float *  xNorm,
const double &  kappa,
const double &  mu,
const double &  k,
const int  volume,
const int  length 
)

Definition at line 683 of file dslash_quda.cu.

void twistGamma5Cuda ( void *  out,
void *  outNorm,
const void *  in,
const void *  inNorm,
const int  dagger,
const double  kappa,
const double  mu,
const int  volume,
const int  length,
const QudaPrecision  precision,
const QudaTwistGamma5Type  twist 
)

Definition at line 654 of file dslash_quda.cu.

template<int N, typename spinorFloat >
void twistGamma5Cuda ( spinorFloat *  out,
float *  outNorm,
const spinorFloat *  in,
const float *  inNorm,
const int  dagger,
const double &  kappa,
const double &  mu,
const int  volume,
const int  length,
const QudaTwistGamma5Type  twist 
)

Definition at line 638 of file dslash_quda.cu.

 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Defines