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_dgemm_tile.c
Go to the documentation of this file.
1
6
#define _TYPE double
7
#define _PREC double
8
#define _LAMCH LAPACKE_dlamch_work
9
10
#define _NAME "PLASMA_dgemm_Tile"
11
/* See Lawn 41 page 120 */
12
#define _FMULS FMULS_GEMM(M, N, K)
13
#define _FADDS FADDS_GEMM(M, N, K)
14
15
#include "
./timing.c
"
16
17
static
int
18
RunTest(
int
*iparam,
double
*dparam,
real_Double_t
*t_)
19
{
20
double
alpha, beta;
21
PASTE_CODE_IPARAM_LOCALS
( iparam );
22
23
LDB =
max
(K, iparam[
IPARAM_LDB
]);
24
LDC =
max
(M, iparam[
IPARAM_LDC
]);
25
26
/* Allocate Data */
27
PASTE_CODE_ALLOCATE_MATRIX_TILE
( descA, 1,
double
,
PlasmaRealDouble
, LDA, M, K );
28
PASTE_CODE_ALLOCATE_MATRIX_TILE
( descB, 1,
double
,
PlasmaRealDouble
, LDB, K, N );
29
PASTE_CODE_ALLOCATE_MATRIX_TILE
( descC, 1,
double
,
PlasmaRealDouble
, LDC, M, N );
30
31
/* Initialiaze Data */
32
PLASMA_dplrnt_Tile
( descA, 5373 );
33
PLASMA_dplrnt_Tile
( descB, 7672 );
34
PLASMA_dplrnt_Tile
( descC, 6387 );
35
36
LAPACKE_dlarnv_work(1,
ISEED
, 1, &alpha);
37
LAPACKE_dlarnv_work(1,
ISEED
, 1, &beta);
38
39
/* Save C for check */
40
PASTE_TILE_TO_LAPACK
( descC, C2, check,
double
, LDC, N );
41
42
START_TIMING
();
43
PLASMA_dgemm_Tile
(
PlasmaNoTrans
,
PlasmaNoTrans
, alpha, descA, descB, beta, descC );
44
STOP_TIMING
();
45
46
/* Check the solution */
47
if
(check)
48
{
49
PASTE_TILE_TO_LAPACK
( descA,
A
, check,
double
, LDA, K );
50
PASTE_TILE_TO_LAPACK
( descB,
B
, check,
double
, LDB, N );
51
PASTE_TILE_TO_LAPACK
( descC,
C
, check,
double
, LDC, N );
52
53
dparam[
IPARAM_RES
] =
d_check_gemm
(
PlasmaNoTrans
,
PlasmaNoTrans
, M, N, K,
54
alpha,
A
, LDA,
B
, LDB, beta,
C
, C2, LDC,
55
&(dparam[
IPARAM_ANORM
]),
56
&(dparam[
IPARAM_BNORM
]),
57
&(dparam[
IPARAM_XNORM
]));
58
free(C2);
59
}
60
61
PASTE_CODE_FREE_MATRIX
( descA );
62
PASTE_CODE_FREE_MATRIX
( descB );
63
PASTE_CODE_FREE_MATRIX
( descC );
64
return
0;
65
}
plasma_2.4.5
timing
time_dgemm_tile.c
Generated on Mon Jul 9 2012 12:45:07 for PLASMA by
1.8.1