PLASMA
2.4.5
PLASMA - Parallel Linear Algebra for Scalable Multi-core Architectures
Main Page
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
time_dlapack2tile.c
Go to the documentation of this file.
1
6
#define _TYPE double
7
#define _PREC double
8
#define _LAMCH LAPACKE_dlamch
9
10
#define _NAME "PLASMA_dlapack_to_tile"
11
/* See Lawn 41 page 120 */
12
#define _FMULS (0.0)
13
#define _FADDS (M * N * sizeof(_TYPE))
14
15
#include "
./timing.c
"
16
17
int
d_check_conversion
(
int
m,
int
n,
int
mba,
int
nba,
int
mbb,
int
nbb,
18
double
*
A
,
double
*
B
,
19
int
(*mapA)(
int
,
int
,
int
,
int
,
int
,
int
),
int
(*mapB)(
int
,
int
,
int
,
int
,
int
,
int
)) {
20
int
i, j;
21
22
for
( j=0; j<n; j++) {
23
for
(i=0; i<m; i++) {
24
if
(A[ mapA(m, n, mba, nba, i, j) ] != B[ mapB(m, n, mbb, nbb, i, j) ] ) {
25
return
-1;
26
}
27
}
28
}
29
return
0;
30
}
31
32
static
int
33
RunTest(
int
*iparam,
_PREC
*dparam,
real_Double_t
*t_)
34
{
35
PASTE_CODE_IPARAM_LOCALS
( iparam );
36
37
LDA = M;
38
39
dparam[
IPARAM_ANORM
] = (
_PREC
)M;
40
dparam[
IPARAM_BNORM
] = (
_PREC
)
_FADDS
;
41
42
/* Allocate Data */
43
PASTE_CODE_ALLOCATE_MATRIX
( A, 1,
double
, LDA, N );
44
PASTE_CODE_ALLOCATE_MATRIX_TILE
( descA, 1,
double
,
PlasmaRealDouble
, LDA, M, N );
45
46
/* Initialize Data */
47
PLASMA_dplrnt
(M, N, A, LDA, 3456);
48
49
START_TIMING
();
50
PLASMA_Lapack_to_Tile
( (
void
*)A, LDA, descA);
51
STOP_TIMING
();
52
53
/* Check the solution */
54
if
(check)
55
{
56
dparam[
IPARAM_RES
] = (
_PREC
)
d_check_conversion
(M, N, M, 1, MB, NB, A, descA->mat,
map_CM
,
map_CCRB
);
57
}
58
59
PASTE_CODE_FREE_MATRIX
( descA );
60
free( A );
61
62
return
0;
63
}
plasma_2.4.5
timing
time_dlapack2tile.c
Generated on Mon Jul 9 2012 12:45:07 for PLASMA by
1.8.1