QUDA  v0.5.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 
6 #define LLFAT_INTERIOR_KERNEL 0
7 #define LLFAT_EXTERIOR_KERNEL_FWD_X 1
8 #define LLFAT_EXTERIOR_KERNEL_BACK_X 2
9 #define LLFAT_EXTERIOR_KERNEL_FWD_Y 3
10 #define LLFAT_EXTERIOR_KERNEL_BACK_Y 4
11 #define LLFAT_EXTERIOR_KERNEL_FWD_Z 5
12 #define LLFAT_EXTERIOR_KERNEL_BACK_Z 6
13 #define LLFAT_EXTERIOR_KERNEL_FWD_T 7
14 #define LLFAT_EXTERIOR_KERNEL_BACK_T 8
15 
16 namespace quda {
17 
18  typedef struct llfat_kernel_param_s {
19  unsigned long threads;
20  int ghostDim[4]; // Whether a ghost zone has been allocated for a given dimension
22 
23  //use in extended kernels
24  int D1, D2,D3, D4, D1h;
25  dim3 blockDim;
27  int base_idx;
28 
30 
31 
33  cudaGaugeField& cudaStaple, cudaGaugeField& cudaStaple1,
34  QudaGaugeParam* param, double* act_path_coeff);
36  cudaGaugeField& cudaStaple, cudaGaugeField& cudaStaple1,
37  QudaGaugeParam* param, double* act_path_coeff);
38 
40  void llfat_init_cuda_ex(QudaGaugeParam* param_ex);
41 
42  void computeGenStapleFieldParityKernel(void* staple_even, void* staple_odd,
43  const void* sitelink_even, const void* sitelink_odd,
44  void* fatlink_even, void* fatlink_odd,
45  const void* mulink_even, const void* mulink_odd,
46  int mu, int nu, int save_staple,
47  double mycoeff,
49  dim3 halfGridDim, llfat_kernel_param_t kparam,
50  cudaStream_t* stream);
51  void computeGenStapleFieldParityKernel_ex(void* staple_even, void* staple_odd,
52  const void* sitelink_even, const void* sitelink_odd,
53  void* fatlink_even, void* fatlink_odd,
54  const void* mulink_even, const void* mulink_odd,
55  int mu, int nu, int save_staple,
56  double mycoeff,
59  void siteComputeGenStapleParityKernel(void* staple_even, void* staple_odd,
60  const void* sitelink_even, const void* sitelink_odd,
61  void* fatlink_even, void* fatlink_odd,
62  int mu, int nu, double mycoeff,
64  dim3 halfGridDim, llfat_kernel_param_t kparam,
65  cudaStream_t* stream);
66  void siteComputeGenStapleParityKernel_ex(void* staple_even, void* staple_odd,
67  const void* sitelink_even, const void* sitelink_odd,
68  void* fatlink_even, void* fatlink_odd,
69  int mu, int nu, double mycoeff,
73  cudaGaugeField& cudaStaple, cudaGaugeField& cudaStaple1,
74  QudaGaugeParam* param, double* act_path_coeff);
76  cudaGaugeField& cudaStaple, cudaGaugeField& cudaStaple1,
77  QudaGaugeParam* param, double* act_path_coeff,
79 
80 
81  void computeFatLinkCore(cudaGaugeField* cudaSiteLink, double* act_path_coeff,
82  QudaGaugeParam* qudaGaugeParam, QudaComputeFatMethod method,
83  cudaGaugeField* cudaFatLink, struct timeval time_array[]);
84 
85 } // namespace quda
86 
87 #endif // _LLFAT_QUDA_H