QUDA
v0.5.0
A library for QCD on GPUs
Main Page
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
quda
include
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
21
int
kernel_type
;
22
23
//use in extended kernels
24
int
D1
,
D2
,
D3
,
D4
,
D1h
;
25
dim3
blockDim
;
26
dim3
halfGridDim
;
27
int
base_idx
;
28
29
}
llfat_kernel_param_t
;
30
31
32
void
llfat_cuda
(
cudaGaugeField
&
cudaFatLink
,
cudaGaugeField
& cudaSiteLink,
33
cudaGaugeField
& cudaStaple,
cudaGaugeField
& cudaStaple1,
34
QudaGaugeParam
*
param
,
double
* act_path_coeff);
35
void
llfat_cuda_ex
(
cudaGaugeField
&
cudaFatLink
,
cudaGaugeField
& cudaSiteLink,
36
cudaGaugeField
& cudaStaple,
cudaGaugeField
& cudaStaple1,
37
QudaGaugeParam
*
param
,
double
* act_path_coeff);
38
39
void
llfat_init_cuda
(
QudaGaugeParam
*
param
);
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
,
48
QudaReconstructType
recon,
QudaPrecision
prec
,
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
,
57
QudaReconstructType
recon,
QudaPrecision
prec
,
58
llfat_kernel_param_t
kparam
);
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
,
63
QudaReconstructType
recon,
QudaPrecision
prec
,
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
,
70
QudaReconstructType
recon,
QudaPrecision
prec
,
71
llfat_kernel_param_t
kparam
);
72
void
llfatOneLinkKernel
(
cudaGaugeField
&
cudaFatLink
,
cudaGaugeField
& cudaSiteLink,
73
cudaGaugeField
& cudaStaple,
cudaGaugeField
& cudaStaple1,
74
QudaGaugeParam
*
param
,
double
* act_path_coeff);
75
void
llfatOneLinkKernel_ex
(
cudaGaugeField
&
cudaFatLink
,
cudaGaugeField
& cudaSiteLink,
76
cudaGaugeField
& cudaStaple,
cudaGaugeField
& cudaStaple1,
77
QudaGaugeParam
*
param
,
double
* act_path_coeff,
78
llfat_kernel_param_t
kparam
);
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
Generated on Wed Mar 20 2013 12:52:14 for QUDA by
1.8.2