Mentions légales du service

Skip to content
Snippets Groups Projects
Commit e5041b0e authored by Mathieu Faverge's avatar Mathieu Faverge
Browse files

testing/norms: replace flops computation by bytes to get GB/s

parent 36fe358a
No related branches found
No related tags found
1 merge request!273Add an option to switch between standard and descriptor API
......@@ -26,28 +26,30 @@ static cham_fixdbl_t
flops_zlange( cham_normtype_t ntype, int M, int N )
{
cham_fixdbl_t flops = 0.;
double coefabs = 1.;
cham_fixdbl_t coefabs = 1.;
cham_fixdbl_t size;
#if defined( PRECISION_z ) || defined( PRECISION_c )
coefabs = 3.;
#endif
size = (cham_fixdbl_t)M * (cham_fixdbl_t)N;
switch ( ntype ) {
case ChamMaxNorm:
flops = coefabs * M * N;
flops = coefabs * size;
break;
case ChamOneNorm:
flops = coefabs * M * N + M * ( N - 1 );
flops = coefabs * size + M * ( N - 1 );
break;
case ChamInfNorm:
flops = coefabs * M * N + N * ( M - 1 );
flops = coefabs * size + N * ( M - 1 );
break;
case ChamFrobeniusNorm:
flops = ( coefabs + 1. ) * M * N;
flops = ( coefabs + 1. ) * size;
break;
default:;
}
return sizeof( CHAMELEON_Complex64_t ) * (double)M * (double)N;
//return flops;
(void)flops;
return sizeof( CHAMELEON_Complex64_t ) * size;
}
int
......
......@@ -25,25 +25,28 @@ static cham_fixdbl_t
flops_zlanhe( cham_normtype_t ntype, int N )
{
cham_fixdbl_t flops = 0.;
double coefabs = 1.;
cham_fixdbl_t coefabs = 1.;
cham_fixdbl_t size;
#if defined( PRECISION_z ) || defined( PRECISION_c )
coefabs = 3.;
#endif
size = ( (cham_fixdbl_t)N * ( (cham_fixdbl_t)N + 1. ) ) / 2.;
switch ( ntype ) {
case ChamMaxNorm:
flops = coefabs * ( N * ( N + 1 ) ) / 2.;
flops = coefabs * size;
break;
case ChamOneNorm:
case ChamInfNorm:
flops = coefabs * ( N * ( N + 1 ) ) / 2. + N * ( N - 1 );
flops = coefabs * size + N * ( N - 1 );
break;
case ChamFrobeniusNorm:
flops = ( coefabs + 1. ) * ( N * ( N + 1 ) ) / 2.;
flops = ( coefabs + 1. ) * size;
break;
default:;
}
return flops;
(void)flops;
return sizeof( CHAMELEON_Complex64_t ) * size;
}
int
......
......@@ -25,26 +25,28 @@ static cham_fixdbl_t
flops_zlansy( cham_normtype_t ntype, int N )
{
cham_fixdbl_t flops = 0.;
double coefabs = 1.;
cham_fixdbl_t coefabs = 1.;
cham_fixdbl_t size;
#if defined( PRECISION_z ) || defined( PRECISION_c )
coefabs = 3.;
#endif
size = ( (cham_fixdbl_t)N * ( (cham_fixdbl_t)N + 1. ) ) / 2.;
switch ( ntype ) {
case ChamMaxNorm:
flops = coefabs * ( N * ( N + 1 ) ) / 2.;
flops = coefabs * size;
break;
case ChamOneNorm:
case ChamInfNorm:
flops = coefabs * ( N * ( N + 1 ) ) / 2. + N * ( N - 1 );
flops = coefabs * size + N * ( N - 1 );
break;
case ChamFrobeniusNorm:
flops = ( coefabs + 1. ) * ( N * ( N + 1 ) ) / 2.;
flops = ( coefabs + 1. ) * size;
break;
default:;
}
return sizeof( CHAMELEON_Complex64_t ) * (double)N * (double)N / 2.;
//return flops;
(void)flops;
return sizeof( CHAMELEON_Complex64_t ) * size;
}
int
......
......@@ -25,7 +25,8 @@ static cham_fixdbl_t
flops_zlantr( cham_normtype_t ntype, cham_uplo_t uplo, int M, int N )
{
cham_fixdbl_t flops = 0.;
double coefabs = 1.;
cham_fixdbl_t coefabs = 1.;
cham_fixdbl_t size;
#if defined( PRECISION_z ) || defined( PRECISION_c )
coefabs = 3.;
#endif
......@@ -33,25 +34,25 @@ flops_zlantr( cham_normtype_t ntype, cham_uplo_t uplo, int M, int N )
switch ( uplo ) {
case ChamUpper:
if ( N > M ) {
flops = ( M * ( M + 1 ) / 2 ) + M * ( N - M );
size = ( M * ( M + 1 ) / 2 ) + M * ( N - M );
}
else {
flops = N * ( N + 1 ) / 2;
size = N * ( N + 1 ) / 2;
}
break;
case ChamLower:
if ( M > N ) {
flops = ( N * ( N + 1 ) / 2 ) + N * ( M - N );
size = ( N * ( N + 1 ) / 2 ) + N * ( M - N );
}
else {
flops = M * ( M + 1 ) / 2;
size = M * ( M + 1 ) / 2;
}
break;
case ChamUpperLower:
default:
flops = M * N;
size = M * N;
}
flops *= coefabs;
flops = size * coefabs;
switch ( ntype ) {
case ChamOneNorm:
......@@ -61,10 +62,14 @@ flops_zlantr( cham_normtype_t ntype, cham_uplo_t uplo, int M, int N )
flops += M;
break;
case ChamMaxNorm:
break;
case ChamFrobeniusNorm:
flops += size;
break;
default:;
}
return flops;
(void)flops;
return size;
}
int
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment