QUDA  v0.7.0
A library for QCD on GPUs
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
llfat_quda.h
Go to the documentation of this file.
1 #ifndef _LLFAT_QUDA_H
2 #define _LLFAT_QUDA_H
3 
4 #include "quda.h"
5 #include "quda_internal.h"
6 
7 #define LLFAT_INTERIOR_KERNEL 0
8 #define LLFAT_EXTERIOR_KERNEL_FWD_X 1
9 #define LLFAT_EXTERIOR_KERNEL_BACK_X 2
10 #define LLFAT_EXTERIOR_KERNEL_FWD_Y 3
11 #define LLFAT_EXTERIOR_KERNEL_BACK_Y 4
12 #define LLFAT_EXTERIOR_KERNEL_FWD_Z 5
13 #define LLFAT_EXTERIOR_KERNEL_BACK_Z 6
14 #define LLFAT_EXTERIOR_KERNEL_FWD_T 7
15 #define LLFAT_EXTERIOR_KERNEL_BACK_T 8
16 
17 namespace quda {
18 
19  typedef struct llfat_kernel_param_s {
20  unsigned long threads;
21  int ghostDim[4]; // Whether a ghost zone has been allocated for a given dimension
23 
24  //use in extended kernels
25  int D1, D2,D3, D4, D1h;
26  dim3 blockDim;
28  int base_idx;
29 
31 
32 
34  cudaGaugeField* cudaLongLink,
35  cudaGaugeField& cudaSiteLink,
36  cudaGaugeField& cudaStaple, cudaGaugeField& cudaStaple1,
37  QudaGaugeParam* param, double* act_path_coeff);
38 
40  cudaGaugeField* cudaLongLink,
41  cudaGaugeField& cudaSiteLink,
42  cudaGaugeField& cudaStaple, cudaGaugeField& cudaStaple1,
43  QudaGaugeParam* param, double* act_path_coeff);
44 
46  void llfat_init_cuda_ex(QudaGaugeParam* param_ex);
47 
48  void computeLongLinkCuda(void* outEven, void* outOdd,
49  const void* const inEven, const void* const inOdd,
51  dim3 halfGridDim, llfat_kernel_param_t kparam);
52 
53 
54  void computeGenStapleFieldParityKernel(void* staple_even, void* staple_odd,
55  const void* sitelink_even, const void* sitelink_odd,
56  void* fatlink_even, void* fatlink_odd,
57  const void* mulink_even, const void* mulink_odd,
58  int mu, int nu, int save_staple,
59  double mycoeff,
61  dim3 halfGridDim, llfat_kernel_param_t kparam,
62  cudaStream_t* stream);
63  void computeGenStapleFieldParityKernel_ex(void* staple_even, void* staple_odd,
64  const void* sitelink_even, const void* sitelink_odd,
65  void* fatlink_even, void* fatlink_odd,
66  const void* mulink_even, const void* mulink_odd,
67  int mu, int nu, int save_staple,
68  double mycoeff,
71  void siteComputeGenStapleParityKernel(void* staple_even, void* staple_odd,
72  const void* sitelink_even, const void* sitelink_odd,
73  void* fatlink_even, void* fatlink_odd,
74  int mu, int nu, double mycoeff,
76  dim3 halfGridDim, llfat_kernel_param_t kparam,
77  cudaStream_t* stream);
78  void siteComputeGenStapleParityKernel_ex(void* staple_even, void* staple_odd,
79  const void* sitelink_even, const void* sitelink_odd,
80  void* fatlink_even, void* fatlink_odd,
81  int mu, int nu, double mycoeff,
85  cudaGaugeField& cudaStaple, cudaGaugeField& cudaStaple1,
86  QudaGaugeParam* param, double* act_path_coeff);
88  cudaGaugeField& cudaStaple, cudaGaugeField& cudaStaple1,
89  QudaGaugeParam* param, double* act_path_coeff,
91 
92 
93  void computeFatLinkCore(cudaGaugeField* cudaSiteLink, double* act_path_coeff,
94  QudaGaugeParam* qudaGaugeParam, QudaComputeFatMethod method,
95  cudaGaugeField* cudaFatLink, cudaGaugeField* cudaLongLink,
96  TimeProfile& profile);
97 
98 } // namespace quda
99 
100 #endif // _LLFAT_QUDA_H
__global__ void FloatM * staple_odd
Definition: llfat_core.h:800
__global__ void FloatM const FloatN const FloatN FloatM * fatlink_even
Definition: llfat_core.h:800
__global__ void FloatM const FloatN const FloatN * sitelink_odd
Definition: llfat_core.h:800
void llfat_cuda(cudaGaugeField *cudaFatLink, cudaGaugeField *cudaLongLink, cudaGaugeField &cudaSiteLink, cudaGaugeField &cudaStaple, cudaGaugeField &cudaStaple1, QudaGaugeParam *param, double *act_path_coeff)
enum QudaPrecision_s QudaPrecision
struct quda::llfat_kernel_param_s llfat_kernel_param_t
__global__ void FloatM const FloatN const FloatN FloatM FloatM * fatlink_odd
Definition: llfat_core.h:800
__global__ void const RealA *const const RealA *const const RealA *const const RealB *const const RealB *const int int mu
cudaStream_t * stream
void computeLongLinkCuda(void *outEven, void *outOdd, const void *const inEven, const void *const inOdd, double coeff, QudaReconstructType recon, QudaPrecision prec, dim3 halfGridDim, llfat_kernel_param_t kparam)
__global__ void FloatM const FloatN const FloatN FloatM FloatM const FloatM * mulink_even
Definition: llfat_core.h:943
void computeFatLinkCore(cudaGaugeField *cudaSiteLink, double *act_path_coeff, QudaGaugeParam *qudaGaugeParam, QudaComputeFatMethod method, cudaGaugeField *cudaFatLink, cudaGaugeField *cudaLongLink, TimeProfile &profile)
void llfat_init_cuda_ex(QudaGaugeParam *param_ex)
QudaGaugeParam param
Definition: pack_test.cpp:17
void siteComputeGenStapleParityKernel_ex(void *staple_even, void *staple_odd, const void *sitelink_even, const void *sitelink_odd, void *fatlink_even, void *fatlink_odd, int mu, int nu, double mycoeff, QudaReconstructType recon, QudaPrecision prec, llfat_kernel_param_t kparam)
void llfatOneLinkKernel(cudaGaugeField &cudaFatLink, cudaGaugeField &cudaSiteLink, cudaGaugeField &cudaStaple, cudaGaugeField &cudaStaple1, QudaGaugeParam *param, double *act_path_coeff)
Definition: llfat_quda.cu:1187
void computeGenStapleFieldParityKernel_ex(void *staple_even, void *staple_odd, const void *sitelink_even, const void *sitelink_odd, void *fatlink_even, void *fatlink_odd, const void *mulink_even, const void *mulink_odd, int mu, int nu, int save_staple, double mycoeff, QudaReconstructType recon, QudaPrecision prec, llfat_kernel_param_t kparam)
void llfat_cuda_ex(cudaGaugeField *cudaFatLink, cudaGaugeField *cudaLongLink, cudaGaugeField &cudaSiteLink, cudaGaugeField &cudaStaple, cudaGaugeField &cudaStaple1, QudaGaugeParam *param, double *act_path_coeff)
cudaGaugeField * cudaFatLink
void computeGenStapleFieldParityKernel(void *staple_even, void *staple_odd, const void *sitelink_even, const void *sitelink_odd, void *fatlink_even, void *fatlink_odd, const void *mulink_even, const void *mulink_odd, int mu, int nu, int save_staple, double mycoeff, QudaReconstructType recon, QudaPrecision prec, dim3 halfGridDim, llfat_kernel_param_t kparam, cudaStream_t *stream)
__constant__ double coeff
void siteComputeGenStapleParityKernel(void *staple_even, void *staple_odd, const void *sitelink_even, const void *sitelink_odd, void *fatlink_even, void *fatlink_odd, int mu, int nu, double mycoeff, QudaReconstructType recon, QudaPrecision prec, dim3 halfGridDim, llfat_kernel_param_t kparam, cudaStream_t *stream)
__global__ void const RealA *const const RealA *const const RealA *const const RealB *const const RealB *const int int RealTypeId< RealA >::Type RealA *const RealA *const RealA *const RealA *const RealA *const RealA *const RealA *const RealA *const hisq_kernel_param_t kparam
enum QudaReconstructType_s QudaReconstructType
Main header file for the QUDA library.
__global__ void FloatM const FloatN * sitelink_even
Definition: llfat_core.h:800
__global__ void FloatM const FloatN const FloatN FloatM FloatM const FloatM const FloatM * mulink_odd
Definition: llfat_core.h:943
void llfat_init_cuda(QudaGaugeParam *param)
RealTypeId< RealA >::Type mycoeff
QudaPrecision prec
Definition: test_util.cpp:1551
void llfatOneLinkKernel_ex(cudaGaugeField &cudaFatLink, cudaGaugeField &cudaSiteLink, cudaGaugeField &cudaStaple, cudaGaugeField &cudaStaple1, QudaGaugeParam *param, double *act_path_coeff, llfat_kernel_param_t kparam)
Definition: llfat_quda.cu:1232
enum QudaComputeFatMethod_s QudaComputeFatMethod