MAGMA
1.2.0
MatrixAlgebraonGPUandMulticoreArchitectures
Main Page
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
magmablas_d.h
Go to the documentation of this file.
1
/*
2
* -- MAGMA (version 1.2.0) --
3
* Univ. of Tennessee, Knoxville
4
* Univ. of California, Berkeley
5
* Univ. of Colorado, Denver
6
* May 2012
7
*
8
* @generated d Thu May 10 22:26:24 2012
9
*/
10
11
#ifndef _MAGMABLAS_D_H_
12
#define _MAGMABLAS_D_H_
13
14
#define PRECISION_d
15
16
#ifdef __cplusplus
17
extern
"C"
{
18
#endif
19
20
/*
21
* Interface to clean
22
*/
23
double
cpu_gpu_ddiff
(
int
M,
int
N
,
24
double
* a,
int
lda,
25
double
*da,
int
ldda);
26
void
dzero_32x32_block
(
double
*,
magma_int_t
);
27
void
dzero_nbxnb_block
(
magma_int_t
,
double
*,
magma_int_t
);
28
void
magmablas_dinplace_transpose
(
double
*,
magma_int_t
,
magma_int_t
);
29
void
magmablas_dpermute_long
(
double
*,
magma_int_t
,
30
magma_int_t
*,
magma_int_t
,
magma_int_t
);
31
void
magmablas_dpermute_long2
(
double
*,
magma_int_t
,
32
magma_int_t
*,
magma_int_t
,
magma_int_t
);
33
void
magmablas_dpermute_long3
(
double
*dAT,
int
lda,
34
int
*ipiv,
int
nb,
int
ind );
35
void
magmablas_dtranspose
(
double
*,
magma_int_t
,
36
double
*,
magma_int_t
,
37
magma_int_t
,
magma_int_t
);
38
void
magmablas_dtranspose2
(
double
*,
magma_int_t
,
39
double
*,
magma_int_t
,
40
magma_int_t
,
magma_int_t
);
41
void
magmablas_dtranspose2s
(
double
*odata,
int
ldo,
42
double
*idata,
int
ldi,
43
int
m,
int
n, cudaStream_t *stream );
44
45
void
magmablas_dgetmatrix_transpose
(
int
m,
int
n,
46
double
*dat,
int
ldda,
47
double
*ha,
int
lda,
48
double
*
dB
,
int
lddb,
int
nb );
49
void
magmablas_dgetmatrix_transpose2
(
int
m,
int
n,
50
double
**dat,
int
*ldda,
51
double
*ha,
int
lda,
52
double
**dB,
int
lddb,
int
nb,
53
int
num_gpus, cudaStream_t stream[][2] );
54
void
magmablas_dsetmatrix_transpose
(
int
m,
int
n,
55
double
*ha,
int
lda,
56
double
*dat,
int
ldda,
57
double
*dB,
int
lddb,
int
nb );
58
void
magmablas_dsetmatrix_transpose2
(
int
m,
int
n,
59
double
*ha,
int
lda,
60
double
**dat,
int
*ldda,
61
double
**dB,
int
lddb,
int
nb,
62
int
num_gpus, cudaStream_t stream[][2] );
63
void
magmablas_dgetmatrix_1D_bcyclic
(
int
m,
int
n,
64
double
*da[],
int
ldda,
65
double
*ha,
int
lda,
66
int
num_gpus,
int
nb );
67
void
magmablas_dsetmatrix_1D_bcyclic
(
int
m,
int
n,
68
double
*ha,
int
lda,
69
double
*da[],
int
ldda,
70
int
num_gpus,
int
nb );
71
72
/*
73
* LAPACK auxiliary functions
74
*/
75
void
magmablas_dlacpy
(
char
uplo
,
76
magma_int_t
m,
magma_int_t
n,
77
double
*
A
,
magma_int_t
lda,
78
double
*
B
,
magma_int_t
ldb);
79
double
magmablas_dlange
(
char
norm,
80
magma_int_t
m,
magma_int_t
n,
81
double
*A,
magma_int_t
lda,
double
*WORK);
82
double
magmablas_dlansy
(
char
norm,
char
uplo,
83
magma_int_t
n,
84
double
*A,
magma_int_t
lda,
double
*WORK);
85
double
magmablas_dlansy
(
char
norm,
char
uplo,
86
magma_int_t
n,
87
double
*A,
magma_int_t
lda,
double
*WORK);
88
void
magmablas_dlascl
(
char
type,
int
kl,
int
ku,
89
double
cfrom,
double
cto,
90
int
m,
int
n,
91
double
*A,
int
lda,
int
*info );
92
void
magmablas_dlaset
(
char
uplo,
magma_int_t
m,
magma_int_t
n,
93
double
*A,
magma_int_t
lda);
94
void
magmablas_dlaswp
(
magma_int_t
N,
95
double
*dAT,
magma_int_t
lda,
96
magma_int_t
i1,
magma_int_t
i2,
97
magma_int_t
*ipiv,
magma_int_t
inci );
98
void
magmablas_dlaswpx
(
magma_int_t
N,
99
double
*dAT,
magma_int_t
ldx,
magma_int_t
ldy,
100
magma_int_t
i1,
magma_int_t
i2,
101
magma_int_t
*ipiv,
magma_int_t
inci );
102
103
/*
104
* Level 1 BLAS
105
*/
106
void
magmablas_dswap
(
magma_int_t
N,
107
double
*dA1,
magma_int_t
lda1,
108
double
*dA2,
magma_int_t
lda2 );
109
void
magmablas_dswapblk
(
char
storev,
110
magma_int_t
N,
111
double
*dA1,
magma_int_t
lda1,
112
double
*dA2,
magma_int_t
lda2,
113
magma_int_t
i1,
magma_int_t
i2,
114
magma_int_t
*ipiv,
magma_int_t
inci,
115
magma_int_t
offset);
116
void
magmablas_dswapdblk
(
magma_int_t
n,
magma_int_t
nb,
117
double
*dA1,
magma_int_t
ldda1,
magma_int_t
inca1,
118
double
*dA2,
magma_int_t
ldda2,
magma_int_t
inca2 );
119
120
/*
121
* Level 2 BLAS
122
*/
123
void
magmablas_dgemv
(
char
t,
magma_int_t
M,
magma_int_t
N,
124
double
alpha,
125
double
*A,
magma_int_t
lda,
126
double
* X,
magma_int_t
incX,
127
double
beta,
128
double
*Y,
magma_int_t
incY);
129
#if defined(PRECISION_z) || defined(PRECISION_c)
130
magma_int_t
magmablas_dsymv
(
char
u,
magma_int_t
N,
131
double
alpha,
132
double
*A,
magma_int_t
lda,
133
double
*X,
magma_int_t
incX,
134
double
beta,
135
double
*Y,
magma_int_t
incY);
136
#endif
137
magma_int_t
magmablas_dsymv
(
char
u,
magma_int_t
N,
138
double
alpha,
139
double
*A,
magma_int_t
lda,
140
double
*X,
magma_int_t
incX,
141
double
beta,
142
double
*Y,
magma_int_t
incY);
143
144
/*
145
* Level 3 BLAS
146
*/
147
void
magmablas_dgemm
(
char
tA,
char
tB,
148
magma_int_t
m,
magma_int_t
n,
magma_int_t
k,
149
double
alpha,
150
const
double
*A,
magma_int_t
lda,
151
const
double
*B,
magma_int_t
ldb,
152
double
beta,
153
double
*
C
,
magma_int_t
ldc);
154
void
magmablas_dgemm_fermi80
(
char
tA,
char
tB,
155
magma_int_t
m,
magma_int_t
n,
magma_int_t
k,
156
double
alpha,
157
const
double
*A,
magma_int_t
lda,
158
const
double
*B,
magma_int_t
ldb,
159
double
beta,
160
double
*C,
magma_int_t
ldc);
161
void
magmablas_dgemm_fermi64
(
char
tA,
char
tB,
162
magma_int_t
m,
magma_int_t
n,
magma_int_t
k,
163
double
alpha,
164
const
double
*A,
magma_int_t
lda,
165
const
double
*B,
magma_int_t
ldb,
166
double
beta,
167
double
*C,
magma_int_t
ldc);
168
void
magmablas_dsymm
(
char
s,
char
u,
169
magma_int_t
m,
magma_int_t
n,
170
double
alpha,
171
const
double
*A,
magma_int_t
lda,
172
const
double
*B,
magma_int_t
ldb,
173
double
beta,
174
double
*C,
magma_int_t
ldc);
175
void
magmablas_dsymm
(
char
s,
char
u,
176
magma_int_t
m,
magma_int_t
n,
177
double
alpha,
178
const
double
*A,
magma_int_t
lda,
179
const
double
*B,
magma_int_t
ldb,
180
double
beta,
181
double
*C,
magma_int_t
ldc);
182
void
magmablas_dsyrk
(
char
u,
char
t,
183
magma_int_t
n,
magma_int_t
k,
184
double
alpha,
185
const
double
*A,
magma_int_t
lda,
186
double
beta,
187
double
*C,
magma_int_t
ldc);
188
void
magmablas_dsyrk
(
char
u,
char
t,
189
magma_int_t
n,
magma_int_t
k,
190
double
alpha,
191
const
double
*A,
magma_int_t
lda,
192
double
beta,
193
double
*C,
magma_int_t
ldc);
194
void
magmablas_dsyr2k
(
char
u,
char
t,
195
magma_int_t
n,
magma_int_t
k,
196
double
alpha,
197
const
double
*A,
magma_int_t
lda,
198
const
double
*B,
magma_int_t
ldb,
199
double
beta,
200
double
*C,
magma_int_t
ldc);
201
void
magmablas_dsyr2k
(
char
u,
char
t,
202
magma_int_t
n,
magma_int_t
k,
203
double
alpha,
204
const
double
*A,
magma_int_t
lda,
205
const
double
*B,
magma_int_t
ldb,
206
double
beta,
207
double
*C,
magma_int_t
ldc);
208
void
magmablas_dtrmm
(
char
s,
char
u,
char
t,
char
d,
209
magma_int_t
m,
magma_int_t
n,
210
double
alpha,
211
const
double
*A,
magma_int_t
lda,
212
double
*B,
magma_int_t
ldb);
213
void
magmablas_dtrsm
(
char
s,
char
u,
char
t,
char
d,
214
magma_int_t
m,
magma_int_t
n,
215
double
alpha,
216
/*const*/
double
*A,
magma_int_t
lda,
217
double
*B,
magma_int_t
ldb);
218
219
220
/*
221
* Wrappers for platform independence.
222
* These wrap CUBLAS or AMD OpenCL BLAS functions.
223
*/
224
225
// ========================================
226
// copying vectors
227
// set copies host to device
228
// get copies device to host
229
230
void
magma_dsetvector
(
231
magma_int_t
n,
232
double
const
*hx_src,
magma_int_t
incx,
233
double
*dy_dst,
magma_int_t
incy );
234
235
void
magma_dgetvector
(
236
magma_int_t
n,
237
double
const
*dx_src,
magma_int_t
incx,
238
double
*hy_dst,
magma_int_t
incy );
239
240
void
magma_dsetvector_async
(
241
magma_int_t
n,
242
double
const
*hx_src,
magma_int_t
incx,
243
double
*dy_dst,
magma_int_t
incy,
244
magma_stream_t
stream );
245
246
void
magma_dgetvector_async
(
247
magma_int_t
n,
248
double
const
*dx_src,
magma_int_t
incx,
249
double
*hy_dst,
magma_int_t
incy,
250
magma_stream_t
stream );
251
252
253
// ========================================
254
// copying sub-matrices (contiguous columns)
255
// set copies host to device
256
// get copies device to host
257
// cpy copies device to device (with CUDA unified addressing, can be same or different devices)
258
259
void
magma_dsetmatrix
(
260
magma_int_t
m,
magma_int_t
n,
261
double
const
*hA_src,
magma_int_t
lda,
262
double
*dB_dst,
magma_int_t
ldb );
263
264
void
magma_dgetmatrix
(
265
magma_int_t
m,
magma_int_t
n,
266
double
const
*dA_src,
magma_int_t
lda,
267
double
*hB_dst,
magma_int_t
ldb );
268
269
void
magma_dsetmatrix_async
(
270
magma_int_t
m,
magma_int_t
n,
271
double
const
*hA_src,
magma_int_t
lda,
272
double
*dB_dst,
magma_int_t
ldb,
273
magma_stream_t
stream );
274
275
void
magma_dgetmatrix_async
(
276
magma_int_t
m,
magma_int_t
n,
277
double
const
*dA_src,
magma_int_t
lda,
278
double
*hB_dst,
magma_int_t
ldb,
279
magma_stream_t
stream );
280
281
void
magma_dcopymatrix
(
282
magma_int_t
m,
magma_int_t
n,
283
double
const
*dA_src,
magma_int_t
lda,
284
double
*dB_dst,
magma_int_t
ldb );
285
286
void
magma_dcopymatrix_async
(
287
magma_int_t
m,
magma_int_t
n,
288
double
const
*dA_src,
magma_int_t
lda,
289
double
*dB_dst,
magma_int_t
ldb,
290
magma_stream_t
stream );
291
292
293
// ========================================
294
// Level 1 BLAS
295
296
void
magma_dswap
(
297
magma_int_t
n,
298
double
*dx,
magma_int_t
incx,
299
double
*dy,
magma_int_t
incy );
300
301
magma_int_t
magma_idamax
(
302
magma_int_t
n,
303
double
*dx,
magma_int_t
incx );
304
305
// ========================================
306
// Level 2 BLAS
307
308
void
magma_dgemv
(
309
magma_trans_t
transA,
310
magma_int_t
m,
magma_int_t
n,
311
double
alpha,
double
const
*
dA
,
magma_int_t
lda,
312
double
const
*dx,
magma_int_t
incx,
313
double
beta,
double
*dy,
magma_int_t
incy );
314
315
void
magma_dsymv
(
316
magma_uplo_t
uplo,
317
magma_int_t
n,
318
double
alpha,
double
const
*dA,
magma_int_t
lda,
319
double
const
*dx,
magma_int_t
incx,
320
double
beta,
double
*dy,
magma_int_t
incy );
321
322
void
magma_dtrsv
(
323
magma_uplo_t
uplo,
magma_trans_t
trans
,
magma_diag_t
diag
,
324
magma_int_t
n,
325
double
const
*dA,
magma_int_t
lda,
326
double
*dx,
magma_int_t
incx );
327
328
// ========================================
329
// Level 3 BLAS
330
331
void
magma_dgemm
(
332
magma_trans_t
transA,
magma_trans_t
transB,
333
magma_int_t
m,
magma_int_t
n,
magma_int_t
k,
334
double
alpha,
double
const
*dA,
magma_int_t
lda,
335
double
const
*dB,
magma_int_t
ldb,
336
double
beta,
double
*
dC
,
magma_int_t
ldc );
337
338
void
magma_dsymm
(
339
magma_side_t
side
,
magma_uplo_t
uplo,
340
magma_int_t
m,
magma_int_t
n,
341
double
alpha,
double
const
*dA,
magma_int_t
lda,
342
double
const
*dB,
magma_int_t
ldb,
343
double
beta,
double
*dC,
magma_int_t
ldc );
344
345
void
magma_dsyrk
(
346
magma_uplo_t
uplo,
magma_trans_t
trans,
347
magma_int_t
n,
magma_int_t
k,
348
double
alpha,
double
const
*dA,
magma_int_t
lda,
349
double
beta,
double
*dC,
magma_int_t
ldc );
350
351
void
magma_dsyr2k
(
352
magma_uplo_t
uplo,
magma_trans_t
trans,
353
magma_int_t
n,
magma_int_t
k,
354
double
alpha,
double
const
*dA,
magma_int_t
lda,
355
double
const
*dB,
magma_int_t
ldb,
356
double
beta,
double
*dC,
magma_int_t
ldc );
357
358
void
magma_dtrmm
(
359
magma_side_t
side,
magma_uplo_t
uplo,
magma_trans_t
trans,
magma_diag_t
diag,
360
magma_int_t
m,
magma_int_t
n,
361
double
alpha,
double
const
*dA,
magma_int_t
lda,
362
double
*dB,
magma_int_t
ldb );
363
364
void
magma_dtrsm
(
365
magma_side_t
side,
magma_uplo_t
uplo,
magma_trans_t
trans,
magma_diag_t
diag,
366
magma_int_t
m,
magma_int_t
n,
367
double
alpha,
double
const
*dA,
magma_int_t
lda,
368
double
*dB,
magma_int_t
ldb );
369
370
#ifdef __cplusplus
371
}
372
#endif
373
374
#undef PRECISION_d
375
#endif
magma-1.2.0
include
magmablas_d.h
Generated on Mon May 21 2012 16:42:20 for MAGMA by
1.8.1