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
blas_quda.h
Go to the documentation of this file.
1
#ifndef _QUDA_BLAS_H
2
#define _QUDA_BLAS_H
3
4
#include <
quda_internal.h
>
5
#include <
color_spinor_field.h
>
6
7
// ---------- blas_quda.cu ----------
8
9
namespace
quda {
10
// creates and destroys reduction buffers
11
void
initBlas
();
12
void
endBlas
(
void
);
13
14
void
setBlasTuning
(
QudaTune
tune
,
QudaVerbosity
verbose
);
15
void
setBlasParam
(
int
kernel,
int
prec
,
int
threads
,
int
blocks);
16
17
extern
unsigned
long
long
blas_flops
;
18
extern
unsigned
long
long
blas_bytes
;
19
20
// C++ linkage
21
22
// Generic variants
23
24
double
norm2
(
const
ColorSpinorField
&);
25
26
// CUDA variants
27
28
void
zeroCuda
(
cudaColorSpinorField
&a);
29
void
copyCuda
(
cudaColorSpinorField
&dst,
const
cudaColorSpinorField
&src);
30
31
double
axpyNormCuda
(
const
double
&a,
cudaColorSpinorField
&
x
,
cudaColorSpinorField
&y);
32
double
normCuda
(
const
cudaColorSpinorField
&b);
33
double
reDotProductCuda
(
cudaColorSpinorField
&a,
cudaColorSpinorField
&b);
34
double
xmyNormCuda
(
cudaColorSpinorField
&a,
cudaColorSpinorField
&b);
35
36
void
axpbyCuda
(
const
double
&a,
cudaColorSpinorField
&x,
const
double
&b,
cudaColorSpinorField
&y);
37
void
axpyCuda
(
const
double
&a,
cudaColorSpinorField
&x,
cudaColorSpinorField
&y);
38
void
axCuda
(
const
double
&a,
cudaColorSpinorField
&x);
39
void
xpyCuda
(
cudaColorSpinorField
&x,
cudaColorSpinorField
&y);
40
void
xpayCuda
(
cudaColorSpinorField
&x,
const
double
&a,
cudaColorSpinorField
&y);
41
void
mxpyCuda
(
cudaColorSpinorField
&x,
cudaColorSpinorField
&y);
42
43
void
axpyZpbxCuda
(
const
double
&a,
cudaColorSpinorField
&x,
cudaColorSpinorField
&y,
cudaColorSpinorField
&z,
const
double
&b);
44
void
axpyBzpcxCuda
(
const
double
&a,
cudaColorSpinorField
& x,
cudaColorSpinorField
& y,
const
double
&b,
cudaColorSpinorField
& z,
const
double
&c);
45
46
void
caxpbyCuda
(
const
Complex
&a,
cudaColorSpinorField
&x,
const
Complex
&b,
cudaColorSpinorField
&y);
47
void
caxpyCuda
(
const
Complex
&a,
cudaColorSpinorField
&x,
cudaColorSpinorField
&y);
48
void
cxpaypbzCuda
(
cudaColorSpinorField
&,
const
Complex
&b,
cudaColorSpinorField
&y,
const
Complex
&c,
cudaColorSpinorField
&z);
49
void
caxpbypzYmbwCuda
(
const
Complex
&,
cudaColorSpinorField
&,
const
Complex
&,
cudaColorSpinorField
&,
cudaColorSpinorField
&,
cudaColorSpinorField
&);
50
51
Complex
cDotProductCuda
(
cudaColorSpinorField
&,
cudaColorSpinorField
&);
52
Complex
xpaycDotzyCuda
(
cudaColorSpinorField
&x,
const
double
&a,
cudaColorSpinorField
&y,
cudaColorSpinorField
&z);
53
54
double3
cDotProductNormACuda
(
cudaColorSpinorField
&a,
cudaColorSpinorField
&b);
55
double3
cDotProductNormBCuda
(
cudaColorSpinorField
&a,
cudaColorSpinorField
&b);
56
double3
caxpbypzYmbwcDotProductUYNormYCuda
(
const
Complex
&a,
cudaColorSpinorField
&x,
const
Complex
&b,
cudaColorSpinorField
&y,
57
cudaColorSpinorField
&z,
cudaColorSpinorField
&w,
cudaColorSpinorField
&u);
58
59
void
cabxpyAxCuda
(
const
double
&a,
const
Complex
&b,
cudaColorSpinorField
&x,
cudaColorSpinorField
&y);
60
double
caxpyNormCuda
(
const
Complex
&a,
cudaColorSpinorField
&x,
cudaColorSpinorField
&y);
61
void
caxpyXmazCuda
(
const
Complex
&a,
cudaColorSpinorField
&x,
62
cudaColorSpinorField
&y,
cudaColorSpinorField
&z);
63
double
caxpyXmazNormXCuda
(
const
Complex
&a,
cudaColorSpinorField
&x,
64
cudaColorSpinorField
&y,
cudaColorSpinorField
&z);
65
double
cabxpyAxNormCuda
(
const
double
&a,
const
Complex
&b,
cudaColorSpinorField
&x,
cudaColorSpinorField
&y);
66
67
void
caxpbypzCuda
(
const
Complex
&,
cudaColorSpinorField
&,
const
Complex
&,
cudaColorSpinorField
&,
68
cudaColorSpinorField
&);
69
void
caxpbypczpwCuda
(
const
Complex
&,
cudaColorSpinorField
&,
const
Complex
&,
cudaColorSpinorField
&,
70
const
Complex
&,
cudaColorSpinorField
&,
cudaColorSpinorField
&);
71
Complex
caxpyDotzyCuda
(
const
Complex
&a,
cudaColorSpinorField
&x,
cudaColorSpinorField
&y,
72
cudaColorSpinorField
&z);
73
Complex
axpyCGNormCuda
(
const
double
&a,
cudaColorSpinorField
&x,
cudaColorSpinorField
&y);
74
double3
HeavyQuarkResidualNormCuda
(
cudaColorSpinorField
&x,
cudaColorSpinorField
&r);
75
double3
xpyHeavyQuarkResidualNormCuda
(
cudaColorSpinorField
&x,
cudaColorSpinorField
&y,
cudaColorSpinorField
&r);
76
77
void
tripleCGUpdateCuda
(
const
double
&alpha,
const
double
&beta,
cudaColorSpinorField
&q,
78
cudaColorSpinorField
&r,
cudaColorSpinorField
&x,
cudaColorSpinorField
&p);
79
double3
tripleCGReductionCuda
(
cudaColorSpinorField
&x,
cudaColorSpinorField
&y,
cudaColorSpinorField
&z);
80
81
// CPU variants
82
83
double
axpyNormCpu
(
const
double
&a,
const
cpuColorSpinorField
&x,
cpuColorSpinorField
&y);
84
double
normCpu
(
const
cpuColorSpinorField
&b);
85
double
reDotProductCpu
(
const
cpuColorSpinorField
&a,
const
cpuColorSpinorField
&b);
86
double
xmyNormCpu
(
const
cpuColorSpinorField
&a,
cpuColorSpinorField
&b);
87
void
axpbyCpu
(
const
double
&a,
const
cpuColorSpinorField
&x,
const
double
&b,
cpuColorSpinorField
&y);
88
void
axpyCpu
(
const
double
&a,
const
cpuColorSpinorField
&x,
cpuColorSpinorField
&y);
89
void
axCpu
(
const
double
&a,
cpuColorSpinorField
&x);
90
void
xpyCpu
(
const
cpuColorSpinorField
&x,
cpuColorSpinorField
&y);
91
void
xpayCpu
(
const
cpuColorSpinorField
&x,
const
double
&a,
cpuColorSpinorField
&y);
92
void
mxpyCpu
(
const
cpuColorSpinorField
&x,
cpuColorSpinorField
&y);
93
void
axpyZpbxCpu
(
const
double
&a,
cpuColorSpinorField
&x,
cpuColorSpinorField
&y,
94
const
cpuColorSpinorField
&z,
const
double
&b);
95
void
axpyBzpcxCpu
(
const
double
&a,
cpuColorSpinorField
& x,
cpuColorSpinorField
& y,
96
const
double
&b,
const
cpuColorSpinorField
& z,
const
double
&c);
97
98
void
caxpbyCpu
(
const
Complex
&a,
const
cpuColorSpinorField
&x,
const
Complex
&b,
cpuColorSpinorField
&y);
99
void
caxpyCpu
(
const
Complex
&a,
const
cpuColorSpinorField
&x,
cpuColorSpinorField
&y);
100
void
cxpaypbzCpu
(
const
cpuColorSpinorField
&x,
const
Complex
&b,
const
cpuColorSpinorField
&y,
101
const
Complex
&c,
cpuColorSpinorField
&z);
102
void
caxpbypzYmbwCpu
(
const
Complex
&,
const
cpuColorSpinorField
&,
const
Complex
&,
cpuColorSpinorField
&,
103
cpuColorSpinorField
&,
const
cpuColorSpinorField
&);
104
Complex
cDotProductCpu
(
const
cpuColorSpinorField
&,
const
cpuColorSpinorField
&);
105
Complex
xpaycDotzyCpu
(
const
cpuColorSpinorField
&x,
const
double
&a,
cpuColorSpinorField
&y,
106
const
cpuColorSpinorField
&z);
107
double3
cDotProductNormACpu
(
const
cpuColorSpinorField
&a,
const
cpuColorSpinorField
&b);
108
double3
cDotProductNormBCpu
(
const
cpuColorSpinorField
&a,
const
cpuColorSpinorField
&b);
109
double3
caxpbypzYmbwcDotProductUYNormYCpu
(
const
Complex
&a,
const
cpuColorSpinorField
&x,
110
const
Complex
&b,
cpuColorSpinorField
&y,
111
cpuColorSpinorField
&z,
const
cpuColorSpinorField
&w,
112
const
cpuColorSpinorField
&u);
113
114
void
cabxpyAxCpu
(
const
double
&a,
const
Complex
&b,
cpuColorSpinorField
&x,
cpuColorSpinorField
&y);
115
116
double
caxpyNormCpu
(
const
Complex
&a,
cpuColorSpinorField
&x,
cpuColorSpinorField
&y);
117
118
void
caxpyXmazCpu
(
const
Complex
&a,
cpuColorSpinorField
&x,
119
cpuColorSpinorField
&y,
cpuColorSpinorField
&z);
120
double
caxpyXmazNormXCpu
(
const
Complex
&a,
cpuColorSpinorField
&x,
121
cpuColorSpinorField
&y,
cpuColorSpinorField
&z);
122
double
cabxpyAxNormCpu
(
const
double
&a,
const
Complex
&b,
cpuColorSpinorField
&x,
cpuColorSpinorField
&y);
123
124
void
caxpbypzCpu
(
const
Complex
&,
cpuColorSpinorField
&,
const
Complex
&,
cpuColorSpinorField
&,
125
cpuColorSpinorField
&);
126
127
void
caxpbypczpwCpu
(
const
Complex
&,
cpuColorSpinorField
&,
const
Complex
&,
cpuColorSpinorField
&,
128
const
Complex
&,
cpuColorSpinorField
&,
cpuColorSpinorField
&);
129
Complex
caxpyDotzyCpu
(
const
Complex
&a,
cpuColorSpinorField
&x,
cpuColorSpinorField
&y,
130
cpuColorSpinorField
&z);
131
double3
HeavyQuarkResidualNormCpu
(
cpuColorSpinorField
&x,
cpuColorSpinorField
&r);
132
double3
xpyHeavyQuarkResidualNormCpu
(
cpuColorSpinorField
&x,
cpuColorSpinorField
&y,
cpuColorSpinorField
&r);
133
134
}
// namespace quda
135
136
#endif // _QUDA_BLAS_H
Generated on Wed Mar 20 2013 12:52:14 for QUDA by
1.8.2