Mentions légales du service

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

Add an mtxfmt parameter to switch between the different allocation mode (Fix issue #94)

parent 955620e9
No related branches found
No related tags found
No related merge requests found
This commit is part of merge request !199. Comments created here will be created in the context of that merge request.
Showing
with 251 additions and 231 deletions
......@@ -40,6 +40,7 @@ static parameter_t parameters[] = {
{ "niter", "Perform multiple iteration per test", 'l', PARAM_OPTION, 1, 0, TestValInt, {1}, NULL, pread_int, sprint_int },
{ "trace", "Enable the trace generation", -30, PARAM_OPTION, 0, 0, TestValInt, {0}, NULL, pread_int, sprint_int },
{ "nowarmup", "Disable the warmup run to load libraries", -31, PARAM_OPTION, 0, 0, TestValInt, {0}, NULL, pread_int, sprint_int },
{ "mtxfmt", "Change the way the matrix is stored (0: global, 1: tiles, 2: OOC)", -32, PARAM_OPTION | PARAM_INPUT | PARAM_OUTPUT, 1, 6, TestValInt, {0}, NULL, pread_int, sprint_int },
{ NULL, "Machine parameters", 0, PARAM_OPTION, 0, 0, 0, {0}, NULL, NULL, NULL },
{ "threads", "Number of CPU workers per node", 't', PARAM_OPTION | PARAM_OUTPUT, 1, 7, TestValInt, {-1}, NULL, pread_int, sprint_int },
......
......@@ -42,16 +42,17 @@ testing_zgeadd( run_arg_list_t *args, int check )
CHAM_desc_t *descA, *descB;
/* Read arguments */
int nb = run_arg_get_int( args, "nb", 320 );
int P = parameters_getvalue_int( "P" );
cham_trans_t trans = run_arg_get_trans( args, "trans", ChamNoTrans );
int N = run_arg_get_int( args, "N", 1000 );
int M = run_arg_get_int( args, "M", N );
int LDA = run_arg_get_int( args, "LDA", ( ( trans == ChamNoTrans ) ? M : N ) );
int LDB = run_arg_get_int( args, "LDB", M );
int seedA = run_arg_get_int( args, "seedA", random() );
int seedB = run_arg_get_int( args, "seedB", random() );
int Q = parameters_compute_q( P );
intptr_t mtxfmt = parameters_getvalue_int( "mtxfmt" );
int nb = run_arg_get_int( args, "nb", 320 );
int P = parameters_getvalue_int( "P" );
cham_trans_t trans = run_arg_get_trans( args, "trans", ChamNoTrans );
int N = run_arg_get_int( args, "N", 1000 );
int M = run_arg_get_int( args, "M", N );
int LDA = run_arg_get_int( args, "LDA", ( ( trans == ChamNoTrans ) ? M : N ) );
int LDB = run_arg_get_int( args, "LDB", M );
int seedA = run_arg_get_int( args, "seedA", random() );
int seedB = run_arg_get_int( args, "seedB", random() );
int Q = parameters_compute_q( P );
CHAMELEON_Complex64_t alpha = testing_zalea();
CHAMELEON_Complex64_t beta = testing_zalea();
cham_fixdbl_t t, gflops;
......@@ -73,9 +74,9 @@ testing_zgeadd( run_arg_list_t *args, int check )
/* Create the matrices */
CHAMELEON_Desc_Create(
&descA, NULL, ChamComplexDouble, nb, nb, nb * nb, LDA, An, 0, 0, Am, An, P, Q );
&descA, (void*)(-mtxfmt), ChamComplexDouble, nb, nb, nb * nb, LDA, An, 0, 0, Am, An, P, Q );
CHAMELEON_Desc_Create(
&descB, NULL, ChamComplexDouble, nb, nb, nb * nb, LDB, N, 0, 0, M, N, P, Q );
&descB, (void*)(-mtxfmt), ChamComplexDouble, nb, nb, nb * nb, LDB, N, 0, 0, M, N, P, Q );
/* Fill the matrix with random values */
CHAMELEON_zplrnt_Tile( descA, seedA );
......@@ -106,7 +107,7 @@ testing_zgeadd( run_arg_list_t *args, int check )
}
testing_t test_zgeadd;
const char *zgeadd_params[] = { "nb", "trans", "m", "n", "lda", "ldb",
const char *zgeadd_params[] = { "mtxfmt", "nb", "trans", "m", "n", "lda", "ldb",
"alpha", "beta", "seedA", "seedB", NULL };
const char *zgeadd_output[] = { NULL };
const char *zgeadd_outchk[] = { "RETURN", NULL };
......
......@@ -27,15 +27,16 @@ testing_zgelqf( run_arg_list_t *args, int check )
CHAM_desc_t *descA, *descT;
/* Reads arguments */
int nb = run_arg_get_int( args, "nb", 320 );
int ib = run_arg_get_int( args, "ib", 48 );
int P = parameters_getvalue_int( "P" );
int N = run_arg_get_int( args, "N", 1000 );
int M = run_arg_get_int( args, "M", N );
int LDA = run_arg_get_int( args, "LDA", M );
int RH = run_arg_get_int( args, "qra", 4 );
int seedA = run_arg_get_int( args, "seedA", random() );
int Q = parameters_compute_q( P );
intptr_t mtxfmt = parameters_getvalue_int( "mtxfmt" );
int nb = run_arg_get_int( args, "nb", 320 );
int ib = run_arg_get_int( args, "ib", 48 );
int P = parameters_getvalue_int( "P" );
int N = run_arg_get_int( args, "N", 1000 );
int M = run_arg_get_int( args, "M", N );
int LDA = run_arg_get_int( args, "LDA", M );
int RH = run_arg_get_int( args, "qra", 4 );
int seedA = run_arg_get_int( args, "seedA", random() );
int Q = parameters_compute_q( P );
cham_fixdbl_t t, gflops;
cham_fixdbl_t flops = flops_zgelqf( M, N );
......@@ -52,7 +53,7 @@ testing_zgelqf( run_arg_list_t *args, int check )
/* Creates the matrices */
CHAMELEON_Desc_Create(
&descA, NULL, ChamComplexDouble, nb, nb, nb * nb, LDA, N, 0, 0, M, N, P, Q );
&descA, (void*)(-mtxfmt), ChamComplexDouble, nb, nb, nb * nb, LDA, N, 0, 0, M, N, P, Q );
CHAMELEON_Alloc_Workspace_zgels( M, N, &descT, P, Q );
/* Fills the matrix with random values */
......@@ -72,7 +73,7 @@ testing_zgelqf( run_arg_list_t *args, int check )
CHAM_desc_t *descA0 = CHAMELEON_Desc_Copy( descA, NULL );
CHAMELEON_Desc_Create(
&descQ, NULL, ChamComplexDouble, nb, nb, nb * nb, N, N, 0, 0, N, N, P, Q );
&descQ, (void*)(-mtxfmt), ChamComplexDouble, nb, nb, nb * nb, N, N, 0, 0, N, N, P, Q );
CHAMELEON_zplrnt_Tile( descA0, seedA );
CHAMELEON_zunglq_Tile( descA, descT, descQ );
......@@ -91,7 +92,7 @@ testing_zgelqf( run_arg_list_t *args, int check )
}
testing_t test_zgelqf;
const char *zgelqf_params[] = { "nb", "ib", "m", "n", "lda", "qra", "seedA", NULL };
const char *zgelqf_params[] = { "mtxfmt", "nb","ib", "m", "n", "lda", "qra", "seedA", NULL };
const char *zgelqf_output[] = { NULL };
const char *zgelqf_outchk[] = { "||A||", "||I-QQ'||", "||A-fact(A)||", "RETURN", NULL };
......
......@@ -27,19 +27,20 @@ testing_zgelqf_hqr( run_arg_list_t *args, int check )
CHAM_desc_t *descA, *descTS, *descTT;
/* Reads arguments */
int nb = run_arg_get_int( args, "nb", 320 );
int ib = run_arg_get_int( args, "ib", 48 );
int P = parameters_getvalue_int( "P" );
int N = run_arg_get_int( args, "N", 1000 );
int M = run_arg_get_int( args, "M", N );
int LDA = run_arg_get_int( args, "LDA", M );
int qr_a = run_arg_get_int( args, "qra", -1 );
int qr_p = run_arg_get_int( args, "qrp", -1 );
int llvl = run_arg_get_int( args, "llvl", -1 );
int hlvl = run_arg_get_int( args, "hlvl", -1 );
int domino = run_arg_get_int( args, "domino", -1 );
int seedA = run_arg_get_int( args, "seedA", random() );
int Q = parameters_compute_q( P );
intptr_t mtxfmt = parameters_getvalue_int( "mtxfmt" );
int nb = run_arg_get_int( args, "nb", 320 );
int ib = run_arg_get_int( args, "ib", 48 );
int P = parameters_getvalue_int( "P" );
int N = run_arg_get_int( args, "N", 1000 );
int M = run_arg_get_int( args, "M", N );
int LDA = run_arg_get_int( args, "LDA", M );
int qr_a = run_arg_get_int( args, "qra", -1 );
int qr_p = run_arg_get_int( args, "qrp", -1 );
int llvl = run_arg_get_int( args, "llvl", -1 );
int hlvl = run_arg_get_int( args, "hlvl", -1 );
int domino = run_arg_get_int( args, "domino", -1 );
int seedA = run_arg_get_int( args, "seedA", random() );
int Q = parameters_compute_q( P );
cham_fixdbl_t t, gflops;
cham_fixdbl_t flops = flops_zgelqf( M, N );
......@@ -51,7 +52,7 @@ testing_zgelqf_hqr( run_arg_list_t *args, int check )
/* Creates the matrices */
CHAMELEON_Desc_Create(
&descA, NULL, ChamComplexDouble, nb, nb, nb * nb, LDA, N, 0, 0, M, N, P, Q );
&descA, (void*)(-mtxfmt), ChamComplexDouble, nb, nb, nb * nb, LDA, N, 0, 0, M, N, P, Q );
CHAMELEON_Alloc_Workspace_zgels( M, N, &descTS, P, Q );
CHAMELEON_Alloc_Workspace_zgels( M, N, &descTT, P, Q );
......@@ -80,7 +81,7 @@ testing_zgelqf_hqr( run_arg_list_t *args, int check )
CHAM_desc_t *descA0 = CHAMELEON_Desc_Copy( descA, NULL );
CHAMELEON_Desc_Create(
&descQ, NULL, ChamComplexDouble, nb, nb, nb * nb, N, N, 0, 0, N, N, P, Q );
&descQ, (void*)(-mtxfmt), ChamComplexDouble, nb, nb, nb * nb, N, N, 0, 0, N, N, P, Q );
CHAMELEON_zplrnt_Tile( descA0, seedA );
CHAMELEON_zunglq_param_Tile( &qrtree, descA, descTS, descTT, descQ );
......@@ -101,7 +102,7 @@ testing_zgelqf_hqr( run_arg_list_t *args, int check )
}
testing_t test_zgelqf_hqr;
const char *zgelqf_hqr_params[] = { "nb", "ib", "m", "n", "lda", "qra",
const char *zgelqf_hqr_params[] = { "mtxfmt", "nb", "ib", "m", "n", "lda", "qra",
"qrp", "llvl", "hlvl", "domino", "seedA", NULL };
const char *zgelqf_hqr_output[] = { NULL };
const char *zgelqf_hqr_outchk[] = { "||A||", "||I-QQ'||", "||A-fact(A)||", "RETURN", NULL };
......
......@@ -35,18 +35,19 @@ testing_zgelqs( run_arg_list_t *args, int check )
CHAM_desc_t *descA1, *descA2, *descB1, *descB2, *descT, *descQ, *descX;
/* Reads arguments */
int nb = run_arg_get_int( args, "nb", 320 );
int ib = run_arg_get_int( args, "ib", 48 );
int P = parameters_getvalue_int( "P" );
int N = run_arg_get_int( args, "N", 1000 );
int M = run_arg_get_int( args, "M", N );
int NRHS = run_arg_get_int( args, "NRHS", 1 );
int LDA = run_arg_get_int( args, "LDA", M );
int LDB = run_arg_get_int( args, "LDB", M );
int RH = run_arg_get_int( args, "qra", 0 );
int seedA = run_arg_get_int( args, "seedA", random() );
int seedB = run_arg_get_int( args, "seedB", random() );
int Q = parameters_compute_q( P );
intptr_t mtxfmt = parameters_getvalue_int( "mtxfmt" );
int nb = run_arg_get_int( args, "nb", 320 );
int ib = run_arg_get_int( args, "ib", 48 );
int P = parameters_getvalue_int( "P" );
int N = run_arg_get_int( args, "N", 1000 );
int M = run_arg_get_int( args, "M", N );
int NRHS = run_arg_get_int( args, "NRHS", 1 );
int LDA = run_arg_get_int( args, "LDA", M );
int LDB = run_arg_get_int( args, "LDB", M );
int RH = run_arg_get_int( args, "qra", 0 );
int seedA = run_arg_get_int( args, "seedA", random() );
int seedB = run_arg_get_int( args, "seedB", random() );
int Q = parameters_compute_q( P );
cham_fixdbl_t t, gflops;
cham_fixdbl_t flops = flops_zgelqs();
......@@ -70,9 +71,9 @@ testing_zgelqs( run_arg_list_t *args, int check )
/* Creates the matrices */
CHAMELEON_Desc_Create(
&descA, NULL, ChamComplexDouble, nb, nb, nb * nb, LDA, N, 0, 0, M, N, P, Q );
&descA, (void*)(-mtxfmt), ChamComplexDouble, nb, nb, nb * nb, LDA, N, 0, 0, M, N, P, Q );
CHAMELEON_Desc_Create(
&descX, NULL, ChamComplexDouble, nb, nb, nb * nb, LDB, K, 0, 0, M, K, P, Q );
&descX, (void*)(-mtxfmt), ChamComplexDouble, nb, nb, nb * nb, LDB, K, 0, 0, M, K, P, Q );
CHAMELEON_Alloc_Workspace_zgels( M, N, &descT, P, Q );
/* Fills the matrix with random values */
......@@ -108,7 +109,7 @@ testing_zgelqs( run_arg_list_t *args, int check )
}
testing_t test_zgelqs;
const char *zgelqs_params[] = { "nb", "ib", "m", "n", "k", "lda",
const char *zgelqs_params[] = { "mtxfmt", "nb", "ib", "m", "n", "k", "lda",
"ldb", "qra", "seedA", "seedB", NULL };
const char *zgelqs_output[] = { NULL };
const char *zgelqs_outchk[] = { "RETURN", NULL };
......
......@@ -39,20 +39,21 @@ testing_zgels( run_arg_list_t *args, int check )
CHAM_desc_t *descA, *descX, *descT;
/* Reads arguments */
int nb = run_arg_get_int( args, "nb", 320 );
int ib = run_arg_get_int( args, "ib", 48 );
int P = parameters_getvalue_int( "P" );
cham_trans_t trans = run_arg_get_trans( args, "trans", ChamNoTrans );
int N = run_arg_get_int( args, "N", 1000 );
int M = run_arg_get_int( args, "M", N );
int maxMN = chameleon_max( M, N );
int NRHS = run_arg_get_int( args, "NRHS", 1 );
int LDA = run_arg_get_int( args, "LDA", M );
int LDB = run_arg_get_int( args, "LDB", maxMN );
int RH = run_arg_get_int( args, "qra", 4 );
int seedA = run_arg_get_int( args, "seedA", random() );
int seedB = run_arg_get_int( args, "seedB", random() );
int Q = parameters_compute_q( P );
intptr_t mtxfmt = parameters_getvalue_int( "mtxfmt" );
int nb = run_arg_get_int( args, "nb", 320 );
int ib = run_arg_get_int( args, "ib", 48 );
int P = parameters_getvalue_int( "P" );
cham_trans_t trans = run_arg_get_trans( args, "trans", ChamNoTrans );
int N = run_arg_get_int( args, "N", 1000 );
int M = run_arg_get_int( args, "M", N );
int maxMN = chameleon_max( M, N );
int NRHS = run_arg_get_int( args, "NRHS", 1 );
int LDA = run_arg_get_int( args, "LDA", M );
int LDB = run_arg_get_int( args, "LDB", maxMN );
int RH = run_arg_get_int( args, "qra", 4 );
int seedA = run_arg_get_int( args, "seedA", random() );
int seedB = run_arg_get_int( args, "seedB", random() );
int Q = parameters_compute_q( P );
cham_fixdbl_t t, gflops;
cham_fixdbl_t flops = flops_zgels( trans, M, N, NRHS );
......@@ -72,9 +73,9 @@ testing_zgels( run_arg_list_t *args, int check )
/* Creates the matrices */
CHAMELEON_Desc_Create(
&descA, NULL, ChamComplexDouble, nb, nb, nb * nb, LDA, N, 0, 0, M, N, P, Q );
&descA, (void*)(-mtxfmt), ChamComplexDouble, nb, nb, nb * nb, LDA, N, 0, 0, M, N, P, Q );
CHAMELEON_Desc_Create(
&descX, NULL, ChamComplexDouble, nb, nb, nb * nb, LDB, NRHS, 0, 0, maxMN, NRHS, P, Q );
&descX, (void*)(-mtxfmt), ChamComplexDouble, nb, nb, nb * nb, LDB, NRHS, 0, 0, maxMN, NRHS, P, Q );
CHAMELEON_Alloc_Workspace_zgels( M, N, &descT, P, Q );
/* Fills the matrix with random values */
......@@ -94,9 +95,9 @@ testing_zgels( run_arg_list_t *args, int check )
CHAM_desc_t *subX, *subB;
CHAMELEON_Desc_Create(
&descA0, NULL, ChamComplexDouble, nb, nb, nb * nb, LDA, N, 0, 0, M, N, P, Q );
&descA0, (void*)(-mtxfmt), ChamComplexDouble, nb, nb, nb * nb, LDA, N, 0, 0, M, N, P, Q );
CHAMELEON_Desc_Create(
&descB, NULL, ChamComplexDouble, nb, nb, nb * nb, LDB, NRHS, 0, 0, maxMN, NRHS, P, Q );
&descB, (void*)(-mtxfmt), ChamComplexDouble, nb, nb, nb * nb, LDB, NRHS, 0, 0, maxMN, NRHS, P, Q );
CHAMELEON_zplrnt_Tile( descA0, seedA );
CHAMELEON_zplrnt_Tile( descB, seedB );
......@@ -128,7 +129,7 @@ testing_zgels( run_arg_list_t *args, int check )
}
testing_t test_zgels;
const char *zgels_params[] = { "nb", "ib", "trans", "m", "n", "k",
const char *zgels_params[] = { "mtxfmt", "nb", "ib", "trans", "m", "n", "k",
"lda", "ldb", "qra", "seedA", "seedB", NULL };
const char *zgels_output[] = { NULL };
const char *zgels_outchk[] = { "RETURN", NULL };
......
......@@ -39,6 +39,7 @@ testing_zgels_hqr( run_arg_list_t *args, int check )
CHAM_desc_t *descA, *descX, *descTS, *descTT;
/* Reads arguments */
intptr_t mtxfmt = parameters_getvalue_int( "mtxfmt" );
int nb = run_arg_get_int( args, "nb", 320 );
int ib = run_arg_get_int( args, "ib", 48 );
int P = parameters_getvalue_int( "P" );
......@@ -68,9 +69,9 @@ testing_zgels_hqr( run_arg_list_t *args, int check )
/* Creates the matrices */
CHAMELEON_Desc_Create(
&descA, NULL, ChamComplexDouble, nb, nb, nb * nb, LDA, N, 0, 0, M, N, P, Q );
&descA, (void*)(-mtxfmt), ChamComplexDouble, nb, nb, nb * nb, LDA, N, 0, 0, M, N, P, Q );
CHAMELEON_Desc_Create(
&descX, NULL, ChamComplexDouble, nb, nb, nb * nb, LDB, NRHS, 0, 0, maxMN, NRHS, P, Q );
&descX, (void*)(-mtxfmt), ChamComplexDouble, nb, nb, nb * nb, LDB, NRHS, 0, 0, maxMN, NRHS, P, Q );
CHAMELEON_Alloc_Workspace_zgels( M, N, &descTS, P, Q );
CHAMELEON_Alloc_Workspace_zgels( M, N, &descTT, P, Q );
......@@ -100,9 +101,9 @@ testing_zgels_hqr( run_arg_list_t *args, int check )
CHAM_desc_t *subX, *subB;
CHAMELEON_Desc_Create(
&descA0, NULL, ChamComplexDouble, nb, nb, nb * nb, LDA, N, 0, 0, M, N, P, Q );
&descA0, (void*)(-mtxfmt), ChamComplexDouble, nb, nb, nb * nb, LDA, N, 0, 0, M, N, P, Q );
CHAMELEON_Desc_Create(
&descB, NULL, ChamComplexDouble, nb, nb, nb * nb, LDB, NRHS, 0, 0, maxMN, NRHS, P, Q );
&descB, (void*)(-mtxfmt), ChamComplexDouble, nb, nb, nb * nb, LDB, NRHS, 0, 0, maxMN, NRHS, P, Q );
CHAMELEON_zplrnt_Tile( descA0, seedA );
CHAMELEON_zplrnt_Tile( descB, seedB );
......@@ -136,7 +137,7 @@ testing_zgels_hqr( run_arg_list_t *args, int check )
}
testing_t test_zgels_hqr;
const char *zgels_hqr_params[] = { "nb", "ib", "trans", "m", "n", "k",
const char *zgels_hqr_params[] = { "mtxfmt", "nb", "ib", "trans", "m", "n", "k",
"lda", "ldb", "qra", "qra", "qrp", "llvl",
"hlvl", "domino", "seedA", "seedB", NULL };
const char *zgels_hqr_output[] = { NULL };
......
......@@ -28,6 +28,7 @@ testing_zgemm( run_arg_list_t *args, int check )
CHAM_desc_t *descA, *descB, *descC, *descCinit;
/* Read arguments */
intptr_t mtxfmt = parameters_getvalue_int( "mtxfmt" );
int nb = run_arg_get_int( args, "nb", 320 );
int P = parameters_getvalue_int( "P" );
cham_trans_t transA = run_arg_get_trans( args, "transA", ChamNoTrans );
......@@ -72,11 +73,11 @@ testing_zgemm( run_arg_list_t *args, int check )
/* Create the matrices */
CHAMELEON_Desc_Create(
&descA, NULL, ChamComplexDouble, nb, nb, nb * nb, LDA, An, 0, 0, Am, An, P, Q );
&descA, (void*)(-mtxfmt), ChamComplexDouble, nb, nb, nb * nb, LDA, An, 0, 0, Am, An, P, Q );
CHAMELEON_Desc_Create(
&descB, NULL, ChamComplexDouble, nb, nb, nb * nb, LDB, Bn, 0, 0, Bm, Bn, P, Q );
&descB, (void*)(-mtxfmt), ChamComplexDouble, nb, nb, nb * nb, LDB, Bn, 0, 0, Bm, Bn, P, Q );
CHAMELEON_Desc_Create(
&descC, NULL, ChamComplexDouble, nb, nb, nb * nb, LDC, N, 0, 0, M, N, P, Q );
&descC, (void*)(-mtxfmt), ChamComplexDouble, nb, nb, nb * nb, LDC, N, 0, 0, M, N, P, Q );
/* Fill the matrices with random values */
CHAMELEON_zplrnt_Tile( descA, seedA );
......@@ -94,7 +95,7 @@ testing_zgemm( run_arg_list_t *args, int check )
/* Check the solution */
if ( check ) {
CHAMELEON_Desc_Create(
&descCinit, NULL, ChamComplexDouble, nb, nb, nb * nb, LDC, N, 0, 0, M, N, P, Q );
&descCinit, (void*)(-mtxfmt), ChamComplexDouble, nb, nb, nb * nb, LDC, N, 0, 0, M, N, P, Q );
CHAMELEON_zplrnt_Tile( descCinit, seedC );
hres += check_zgemm( args, transA, transB, alpha, descA, descB, beta, descCinit, descC );
......@@ -110,7 +111,7 @@ testing_zgemm( run_arg_list_t *args, int check )
}
testing_t test_zgemm;
const char *zgemm_params[] = { "nb", "transA", "transB", "m", "n", "k", "lda", "ldb",
const char *zgemm_params[] = { "mtxfmt", "nb", "transA", "transB", "m", "n", "k", "lda", "ldb",
"ldc", "alpha", "beta", "seedA", "seedB", "seedC", NULL };
const char *zgemm_output[] = { NULL };
const char *zgemm_outchk[] = { "RETURN", NULL };
......
......@@ -27,15 +27,16 @@ testing_zgeqrf( run_arg_list_t *args, int check )
CHAM_desc_t *descA, *descT;
/* Reads arguments */
int nb = run_arg_get_int( args, "nb", 320 );
int ib = run_arg_get_int( args, "ib", 48 );
int P = parameters_getvalue_int( "P" );
int N = run_arg_get_int( args, "N", 1000 );
int M = run_arg_get_int( args, "M", N );
int LDA = run_arg_get_int( args, "LDA", M );
int RH = run_arg_get_int( args, "qra", 4 );
int seedA = run_arg_get_int( args, "seedA", random() );
int Q = parameters_compute_q( P );
intptr_t mtxfmt = parameters_getvalue_int( "mtxfmt" );
int nb = run_arg_get_int( args, "nb", 320 );
int ib = run_arg_get_int( args, "ib", 48 );
int P = parameters_getvalue_int( "P" );
int N = run_arg_get_int( args, "N", 1000 );
int M = run_arg_get_int( args, "M", N );
int LDA = run_arg_get_int( args, "LDA", M );
int RH = run_arg_get_int( args, "qra", 4 );
int seedA = run_arg_get_int( args, "seedA", random() );
int Q = parameters_compute_q( P );
cham_fixdbl_t t, gflops;
cham_fixdbl_t flops = flops_zgeqrf( M, N );
......@@ -52,7 +53,7 @@ testing_zgeqrf( run_arg_list_t *args, int check )
/* Creates the matrices */
CHAMELEON_Desc_Create(
&descA, NULL, ChamComplexDouble, nb, nb, nb * nb, LDA, N, 0, 0, M, N, P, Q );
&descA, (void*)(-mtxfmt), ChamComplexDouble, nb, nb, nb * nb, LDA, N, 0, 0, M, N, P, Q );
CHAMELEON_Alloc_Workspace_zgels( M, N, &descT, P, Q );
/* Fills the matrix with random values */
......@@ -72,7 +73,7 @@ testing_zgeqrf( run_arg_list_t *args, int check )
CHAM_desc_t *descA0 = CHAMELEON_Desc_Copy( descA, NULL );
CHAMELEON_Desc_Create(
&descQ, NULL, ChamComplexDouble, nb, nb, nb * nb, M, M, 0, 0, M, M, P, Q );
&descQ, (void*)(-mtxfmt), ChamComplexDouble, nb, nb, nb * nb, M, M, 0, 0, M, M, P, Q );
CHAMELEON_zplrnt_Tile( descA0, seedA );
CHAMELEON_zungqr_Tile( descA, descT, descQ );
......@@ -91,7 +92,7 @@ testing_zgeqrf( run_arg_list_t *args, int check )
}
testing_t test_zgeqrf;
const char *zgeqrf_params[] = { "nb", "ib", "m", "n", "lda", "qra", "seedA", NULL };
const char *zgeqrf_params[] = { "mtxfmt", "nb","ib", "m", "n", "lda", "qra", "seedA", NULL };
const char *zgeqrf_output[] = { NULL };
const char *zgeqrf_outchk[] = { "||A||", "||I-QQ'||", "||A-fact(A)||", "RETURN", NULL };
......
......@@ -27,19 +27,20 @@ testing_zgeqrf_hqr( run_arg_list_t *args, int check )
CHAM_desc_t *descA, *descTS, *descTT;
/* Reads arguments */
int nb = run_arg_get_int( args, "nb", 320 );
int ib = run_arg_get_int( args, "ib", 48 );
int P = parameters_getvalue_int( "P" );
int N = run_arg_get_int( args, "N", 1000 );
int M = run_arg_get_int( args, "M", N );
int LDA = run_arg_get_int( args, "LDA", M );
int qr_a = run_arg_get_int( args, "qra", -1 );
int qr_p = run_arg_get_int( args, "qrp", -1 );
int llvl = run_arg_get_int( args, "llvl", -1 );
int hlvl = run_arg_get_int( args, "hlvl", -1 );
int domino = run_arg_get_int( args, "domino", -1 );
int seedA = run_arg_get_int( args, "seedA", random() );
int Q = parameters_compute_q( P );
intptr_t mtxfmt = parameters_getvalue_int( "mtxfmt" );
int nb = run_arg_get_int( args, "nb", 320 );
int ib = run_arg_get_int( args, "ib", 48 );
int P = parameters_getvalue_int( "P" );
int N = run_arg_get_int( args, "N", 1000 );
int M = run_arg_get_int( args, "M", N );
int LDA = run_arg_get_int( args, "LDA", M );
int qr_a = run_arg_get_int( args, "qra", -1 );
int qr_p = run_arg_get_int( args, "qrp", -1 );
int llvl = run_arg_get_int( args, "llvl", -1 );
int hlvl = run_arg_get_int( args, "hlvl", -1 );
int domino = run_arg_get_int( args, "domino", -1 );
int seedA = run_arg_get_int( args, "seedA", random() );
int Q = parameters_compute_q( P );
cham_fixdbl_t t, gflops;
cham_fixdbl_t flops = flops_zgeqrf( M, N );
......@@ -51,7 +52,7 @@ testing_zgeqrf_hqr( run_arg_list_t *args, int check )
/* Creates the matrices */
CHAMELEON_Desc_Create(
&descA, NULL, ChamComplexDouble, nb, nb, nb * nb, LDA, N, 0, 0, M, N, P, Q );
&descA, (void*)(-mtxfmt), ChamComplexDouble, nb, nb, nb * nb, LDA, N, 0, 0, M, N, P, Q );
CHAMELEON_Alloc_Workspace_zgels( M, N, &descTS, P, Q );
CHAMELEON_Alloc_Workspace_zgels( M, N, &descTT, P, Q );
......@@ -80,7 +81,7 @@ testing_zgeqrf_hqr( run_arg_list_t *args, int check )
CHAM_desc_t *descA0 = CHAMELEON_Desc_Copy( descA, NULL );
CHAMELEON_Desc_Create(
&descQ, NULL, ChamComplexDouble, nb, nb, nb * nb, M, M, 0, 0, M, M, P, Q );
&descQ, (void*)(-mtxfmt), ChamComplexDouble, nb, nb, nb * nb, M, M, 0, 0, M, M, P, Q );
CHAMELEON_zplrnt_Tile( descA0, seedA );
CHAMELEON_zungqr_param_Tile( &qrtree, descA, descTS, descTT, descQ );
......@@ -101,7 +102,7 @@ testing_zgeqrf_hqr( run_arg_list_t *args, int check )
}
testing_t test_zgeqrf_hqr;
const char *zgeqrf_hqr_params[] = { "nb", "ib", "m", "n", "lda", "qra",
const char *zgeqrf_hqr_params[] = { "mtxfmt", "nb", "ib", "m", "n", "lda", "qra",
"qrp", "llvl", "hlvl", "domino", "seedA", NULL };
const char *zgeqrf_hqr_output[] = { NULL };
const char *zgeqrf_hqr_outchk[] = { "||A||", "||I-QQ'||", "||A-fact(A)||", "RETURN", NULL };
......
......@@ -28,18 +28,19 @@ testing_zgeqrs( run_arg_list_t *args, int check )
CHAM_desc_t *descA, *descX, *descT;
/* Reads arguments */
int nb = run_arg_get_int( args, "nb", 320 );
int ib = run_arg_get_int( args, "ib", 48 );
int P = parameters_getvalue_int( "P" );
int N = run_arg_get_int( args, "N", 1000 );
int M = run_arg_get_int( args, "M", N );
int NRHS = run_arg_get_int( args, "NRHS", 1 );
int LDA = run_arg_get_int( args, "LDA", M );
int LDB = run_arg_get_int( args, "LDB", M );
int RH = run_arg_get_int( args, "qra", 0 );
int seedA = run_arg_get_int( args, "seedA", random() );
int seedB = run_arg_get_int( args, "seedB", random() );
int Q = parameters_compute_q( P );
intptr_t mtxfmt = parameters_getvalue_int( "mtxfmt" );
int nb = run_arg_get_int( args, "nb", 320 );
int ib = run_arg_get_int( args, "ib", 48 );
int P = parameters_getvalue_int( "P" );
int N = run_arg_get_int( args, "N", 1000 );
int M = run_arg_get_int( args, "M", N );
int NRHS = run_arg_get_int( args, "NRHS", 1 );
int LDA = run_arg_get_int( args, "LDA", M );
int LDB = run_arg_get_int( args, "LDB", M );
int RH = run_arg_get_int( args, "qra", 0 );
int seedA = run_arg_get_int( args, "seedA", random() );
int seedB = run_arg_get_int( args, "seedB", random() );
int Q = parameters_compute_q( P );
cham_fixdbl_t t, gflops;
cham_fixdbl_t flops = flops_zgeqrs( M, N, NRHS );
......@@ -63,9 +64,9 @@ testing_zgeqrs( run_arg_list_t *args, int check )
/* Creates the matrices */
CHAMELEON_Desc_Create(
&descA, NULL, ChamComplexDouble, nb, nb, nb * nb, LDA, N, 0, 0, M, N, P, Q );
&descA, (void*)(-mtxfmt), ChamComplexDouble, nb, nb, nb * nb, LDA, N, 0, 0, M, N, P, Q );
CHAMELEON_Desc_Create(
&descX, NULL, ChamComplexDouble, nb, nb, nb * nb, LDB, NRHS, 0, 0, M, NRHS, P, Q );
&descX, (void*)(-mtxfmt), ChamComplexDouble, nb, nb, nb * nb, LDB, NRHS, 0, 0, M, NRHS, P, Q );
CHAMELEON_Alloc_Workspace_zgels( M, N, &descT, P, Q );
/* Fills the matrix with random values */
......@@ -108,7 +109,7 @@ testing_zgeqrs( run_arg_list_t *args, int check )
}
testing_t test_zgeqrs;
const char *zgeqrs_params[] = { "nb", "ib", "m", "n", "k", "lda",
const char *zgeqrs_params[] = { "mtxfmt", "nb", "ib", "m", "n", "k", "lda",
"ldb", "qra", "seedA", "seedB", NULL };
const char *zgeqrs_output[] = { NULL };
const char *zgeqrs_outchk[] = { "RETURN", NULL };
......
......@@ -34,15 +34,16 @@ testing_zgesv( run_arg_list_t *args, int check )
CHAM_desc_t *descA, *descX;
/* Reads arguments */
int nb = run_arg_get_int( args, "nb", 320 );
int P = parameters_getvalue_int( "P" );
int N = run_arg_get_int( args, "N", 1000 );
int NRHS = run_arg_get_int( args, "NRHS", 1 );
int LDA = run_arg_get_int( args, "LDA", N );
int LDB = run_arg_get_int( args, "LDB", N );
int seedA = run_arg_get_int( args, "seedA", random() );
int seedB = run_arg_get_int( args, "seedB", random() );
int Q = parameters_compute_q( P );
intptr_t mtxfmt = parameters_getvalue_int( "mtxfmt" );
int nb = run_arg_get_int( args, "nb", 320 );
int P = parameters_getvalue_int( "P" );
int N = run_arg_get_int( args, "N", 1000 );
int NRHS = run_arg_get_int( args, "NRHS", 1 );
int LDA = run_arg_get_int( args, "LDA", N );
int LDB = run_arg_get_int( args, "LDB", N );
int seedA = run_arg_get_int( args, "seedA", random() );
int seedB = run_arg_get_int( args, "seedB", random() );
int Q = parameters_compute_q( P );
cham_fixdbl_t t, gflops;
cham_fixdbl_t flops = flops_zgesv( N, NRHS );
......@@ -50,9 +51,9 @@ testing_zgesv( run_arg_list_t *args, int check )
/* Creates the matrices */
CHAMELEON_Desc_Create(
&descA, NULL, ChamComplexDouble, nb, nb, nb * nb, LDA, N, 0, 0, N, N, P, Q );
&descA, (void*)(-mtxfmt), ChamComplexDouble, nb, nb, nb * nb, LDA, N, 0, 0, N, N, P, Q );
CHAMELEON_Desc_Create(
&descX, NULL, ChamComplexDouble, nb, nb, nb * nb, LDB, NRHS, 0, 0, N, NRHS, P, Q );
&descX, (void*)(-mtxfmt), ChamComplexDouble, nb, nb, nb * nb, LDB, NRHS, 0, 0, N, NRHS, P, Q );
/* Fills the matrix with random values */
CHAMELEON_zplrnt_Tile( descA, seedA );
......@@ -94,7 +95,7 @@ testing_zgesv( run_arg_list_t *args, int check )
}
testing_t test_zgesv;
const char *zgesv_params[] = { "nb", "n", "nrhs", "lda", "ldb", "seedA", "seedB", NULL };
const char *zgesv_params[] = { "mtxfmt", "nb","n", "nrhs", "lda", "ldb", "seedA", "seedB", NULL };
const char *zgesv_output[] = { NULL };
const char *zgesv_outchk[] = { "RETURN", NULL };
......
......@@ -27,13 +27,14 @@ testing_zgetrf( run_arg_list_t *args, int check )
CHAM_desc_t *descA;
/* Reads arguments */
int nb = run_arg_get_int( args, "nb", 320 );
int P = parameters_getvalue_int( "P" );
int N = run_arg_get_int( args, "N", 1000 );
int M = run_arg_get_int( args, "M", N );
int LDA = run_arg_get_int( args, "LDA", M );
int seedA = run_arg_get_int( args, "seedA", random() );
int Q = parameters_compute_q( P );
intptr_t mtxfmt = parameters_getvalue_int( "mtxfmt" );
int nb = run_arg_get_int( args, "nb", 320 );
int P = parameters_getvalue_int( "P" );
int N = run_arg_get_int( args, "N", 1000 );
int M = run_arg_get_int( args, "M", N );
int LDA = run_arg_get_int( args, "LDA", M );
int seedA = run_arg_get_int( args, "seedA", random() );
int Q = parameters_compute_q( P );
cham_fixdbl_t t, gflops;
cham_fixdbl_t flops = flops_zgetrf( M, N );
......@@ -41,7 +42,7 @@ testing_zgetrf( run_arg_list_t *args, int check )
/* Creates the matrices */
CHAMELEON_Desc_Create(
&descA, NULL, ChamComplexDouble, nb, nb, nb * nb, LDA, N, 0, 0, M, N, P, Q );
&descA, (void*)(-mtxfmt), ChamComplexDouble, nb, nb, nb * nb, LDA, N, 0, 0, M, N, P, Q );
/* Fills the matrix with random values */
CHAMELEON_zplrnt_Tile( descA, seedA );
......@@ -70,7 +71,7 @@ testing_zgetrf( run_arg_list_t *args, int check )
}
testing_t test_zgetrf;
const char *zgetrf_params[] = { "nb", "m", "n", "lda", "seedA", NULL };
const char *zgetrf_params[] = { "mtxfmt", "nb","m", "n", "lda", "seedA", NULL };
const char *zgetrf_output[] = { NULL };
const char *zgetrf_outchk[] = { "||A||", "||A-fact(A)||", "RETURN", NULL };
......
......@@ -28,15 +28,16 @@ testing_zgetrs( run_arg_list_t *args, int check )
CHAM_desc_t *descA, *descX;
/* Reads arguments */
int nb = run_arg_get_int( args, "nb", 320 );
int P = parameters_getvalue_int( "P" );
int N = run_arg_get_int( args, "N", 1000 );
int NRHS = run_arg_get_int( args, "NRHS", 1 );
int LDA = run_arg_get_int( args, "LDA", N );
int LDB = run_arg_get_int( args, "LDB", N );
int seedA = run_arg_get_int( args, "seedA", random() );
int seedB = run_arg_get_int( args, "seedB", random() );
int Q = parameters_compute_q( P );
intptr_t mtxfmt = parameters_getvalue_int( "mtxfmt" );
int nb = run_arg_get_int( args, "nb", 320 );
int P = parameters_getvalue_int( "P" );
int N = run_arg_get_int( args, "N", 1000 );
int NRHS = run_arg_get_int( args, "NRHS", 1 );
int LDA = run_arg_get_int( args, "LDA", N );
int LDB = run_arg_get_int( args, "LDB", N );
int seedA = run_arg_get_int( args, "seedA", random() );
int seedB = run_arg_get_int( args, "seedB", random() );
int Q = parameters_compute_q( P );
cham_fixdbl_t t, gflops;
cham_fixdbl_t flops = flops_zgetrs( N, NRHS );
......@@ -44,9 +45,9 @@ testing_zgetrs( run_arg_list_t *args, int check )
/* Creates the matrices */
CHAMELEON_Desc_Create(
&descA, NULL, ChamComplexDouble, nb, nb, nb * nb, LDA, N, 0, 0, N, N, P, Q );
&descA, (void*)(-mtxfmt), ChamComplexDouble, nb, nb, nb * nb, LDA, N, 0, 0, N, N, P, Q );
CHAMELEON_Desc_Create(
&descX, NULL, ChamComplexDouble, nb, nb, nb * nb, LDB, NRHS, 0, 0, N, NRHS, P, Q );
&descX, (void*)(-mtxfmt), ChamComplexDouble, nb, nb, nb * nb, LDB, NRHS, 0, 0, N, NRHS, P, Q );
/* Fills the matrix with random values */
CHAMELEON_zplrnt_Tile( descA, seedA );
......@@ -84,7 +85,7 @@ testing_zgetrs( run_arg_list_t *args, int check )
}
testing_t test_zgetrs;
const char *zgetrs_params[] = { "nb", "n", "nrhs", "lda", "ldb", "seedA", "seedB", NULL };
const char *zgetrs_params[] = { "mtxfmt", "nb","n", "nrhs", "lda", "ldb", "seedA", "seedB", NULL };
const char *zgetrs_output[] = { NULL };
const char *zgetrs_outchk[] = { "RETURN", NULL };
......
......@@ -28,23 +28,24 @@ testing_zhemm( run_arg_list_t *args, int check )
CHAM_desc_t *descA, *descB, *descC, *descCinit;
/* Reads arguments */
int nb = run_arg_get_int( args, "nb", 320 );
int P = parameters_getvalue_int( "P" );
cham_side_t side = run_arg_get_uplo( args, "side", ChamLeft );
cham_uplo_t uplo = run_arg_get_uplo( args, "uplo", ChamUpper );
int N = run_arg_get_int( args, "N", 1000 );
int M = run_arg_get_int( args, "M", N );
int LDA = run_arg_get_int( args, "LDA", ( ( side == ChamLeft ) ? M : N ) );
int LDB = run_arg_get_int( args, "LDB", M );
int LDC = run_arg_get_int( args, "LDC", M );
CHAMELEON_Complex64_t alpha = testing_zalea();
CHAMELEON_Complex64_t beta = testing_zalea();
int seedA = run_arg_get_int( args, "seedA", random() );
int seedB = run_arg_get_int( args, "seedB", random() );
int seedC = run_arg_get_int( args, "seedC", random() );
double bump = testing_dalea();
bump = run_arg_get_double( args, "bump", bump );
int Q = parameters_compute_q( P );
intptr_t mtxfmt = parameters_getvalue_int( "mtxfmt" );
int nb = run_arg_get_int( args, "nb", 320 );
int P = parameters_getvalue_int( "P" );
cham_side_t side = run_arg_get_uplo( args, "side", ChamLeft );
cham_uplo_t uplo = run_arg_get_uplo( args, "uplo", ChamUpper );
int N = run_arg_get_int( args, "N", 1000 );
int M = run_arg_get_int( args, "M", N );
int LDA = run_arg_get_int( args, "LDA", ( ( side == ChamLeft ) ? M : N ) );
int LDB = run_arg_get_int( args, "LDB", M );
int LDC = run_arg_get_int( args, "LDC", M );
CHAMELEON_Complex64_t alpha = testing_zalea();
CHAMELEON_Complex64_t beta = testing_zalea();
int seedA = run_arg_get_int( args, "seedA", random() );
int seedB = run_arg_get_int( args, "seedB", random() );
int seedC = run_arg_get_int( args, "seedC", random() );
double bump = testing_dalea();
bump = run_arg_get_double( args, "bump", bump );
int Q = parameters_compute_q( P );
cham_fixdbl_t t, gflops;
cham_fixdbl_t flops = flops_zhemm( side, M, N );
......@@ -63,11 +64,11 @@ testing_zhemm( run_arg_list_t *args, int check )
/* Create the matrices */
CHAMELEON_Desc_Create(
&descA, NULL, ChamComplexDouble, nb, nb, nb * nb, LDA, Am, 0, 0, Am, Am, P, Q );
&descA, (void*)(-mtxfmt), ChamComplexDouble, nb, nb, nb * nb, LDA, Am, 0, 0, Am, Am, P, Q );
CHAMELEON_Desc_Create(
&descB, NULL, ChamComplexDouble, nb, nb, nb * nb, LDB, N, 0, 0, M, N, P, Q );
&descB, (void*)(-mtxfmt), ChamComplexDouble, nb, nb, nb * nb, LDB, N, 0, 0, M, N, P, Q );
CHAMELEON_Desc_Create(
&descC, NULL, ChamComplexDouble, nb, nb, nb * nb, LDC, N, 0, 0, M, N, P, Q );
&descC, (void*)(-mtxfmt), ChamComplexDouble, nb, nb, nb * nb, LDC, N, 0, 0, M, N, P, Q );
/* Fills the matrix with random values */
CHAMELEON_zplghe_Tile( bump, uplo, descA, seedA );
......@@ -85,7 +86,7 @@ testing_zhemm( run_arg_list_t *args, int check )
/* Checks the solution */
if ( check ) {
CHAMELEON_Desc_Create(
&descCinit, NULL, ChamComplexDouble, nb, nb, nb * nb, LDC, N, 0, 0, M, N, P, Q );
&descCinit, (void*)(-mtxfmt), ChamComplexDouble, nb, nb, nb * nb, LDC, N, 0, 0, M, N, P, Q );
CHAMELEON_zplrnt_Tile( descCinit, seedC );
hres +=
......@@ -102,7 +103,7 @@ testing_zhemm( run_arg_list_t *args, int check )
}
testing_t test_zhemm;
const char *zhemm_params[] = { "nb", "side", "uplo", "m", "n", "lda", "ldb", "ldc",
const char *zhemm_params[] = { "mtxfmt", "nb", "side", "uplo", "m", "n", "lda", "ldb", "ldc",
"alpha", "beta", "seedA", "seedB", "seedC", "bump", NULL };
const char *zhemm_output[] = { NULL };
const char *zhemm_outchk[] = { "RETURN", NULL };
......
......@@ -28,15 +28,16 @@ testing_zher2k( run_arg_list_t *args, int check )
CHAM_desc_t *descA, *descB, *descC, *descCinit;
/* Read arguments */
int nb = run_arg_get_int( args, "nb", 320 );
int P = parameters_getvalue_int( "P" );
cham_trans_t trans = run_arg_get_trans( args, "trans", ChamNoTrans );
cham_uplo_t uplo = run_arg_get_uplo( args, "uplo", ChamUpper );
int N = run_arg_get_int( args, "N", 1000 );
int K = run_arg_get_int( args, "K", N );
int LDA = run_arg_get_int( args, "LDA", ( ( trans == ChamNoTrans ) ? N : K ) );
int LDB = run_arg_get_int( args, "LDB", ( ( trans == ChamNoTrans ) ? N : K ) );
int LDC = run_arg_get_int( args, "LDC", N );
intptr_t mtxfmt = parameters_getvalue_int( "mtxfmt" );
int nb = run_arg_get_int( args, "nb", 320 );
int P = parameters_getvalue_int( "P" );
cham_trans_t trans = run_arg_get_trans( args, "trans", ChamNoTrans );
cham_uplo_t uplo = run_arg_get_uplo( args, "uplo", ChamUpper );
int N = run_arg_get_int( args, "N", 1000 );
int K = run_arg_get_int( args, "K", N );
int LDA = run_arg_get_int( args, "LDA", ( ( trans == ChamNoTrans ) ? N : K ) );
int LDB = run_arg_get_int( args, "LDB", ( ( trans == ChamNoTrans ) ? N : K ) );
int LDC = run_arg_get_int( args, "LDC", N );
CHAMELEON_Complex64_t alpha = testing_zalea();
double beta = testing_dalea();
int seedA = run_arg_get_int( args, "seedA", random() );
......@@ -65,11 +66,11 @@ testing_zher2k( run_arg_list_t *args, int check )
/* Create the matrices */
CHAMELEON_Desc_Create(
&descA, NULL, ChamComplexDouble, nb, nb, nb * nb, LDA, An, 0, 0, Am, An, P, Q );
&descA, (void*)(-mtxfmt), ChamComplexDouble, nb, nb, nb * nb, LDA, An, 0, 0, Am, An, P, Q );
CHAMELEON_Desc_Create(
&descB, NULL, ChamComplexDouble, nb, nb, nb * nb, LDB, An, 0, 0, Am, An, P, Q );
&descB, (void*)(-mtxfmt), ChamComplexDouble, nb, nb, nb * nb, LDB, An, 0, 0, Am, An, P, Q );
CHAMELEON_Desc_Create(
&descC, NULL, ChamComplexDouble, nb, nb, nb * nb, LDC, N, 0, 0, N, N, P, Q );
&descC, (void*)(-mtxfmt), ChamComplexDouble, nb, nb, nb * nb, LDC, N, 0, 0, N, N, P, Q );
/* Fill the matrix with random values */
CHAMELEON_zplrnt_Tile( descA, seedA );
......@@ -87,7 +88,7 @@ testing_zher2k( run_arg_list_t *args, int check )
/* Check the solution */
if ( check ) {
CHAMELEON_Desc_Create(
&descCinit, NULL, ChamComplexDouble, nb, nb, nb * nb, LDC, N, 0, 0, N, N, P, Q );
&descCinit, (void*)(-mtxfmt), ChamComplexDouble, nb, nb, nb * nb, LDC, N, 0, 0, N, N, P, Q );
CHAMELEON_zplghe_Tile( bump, uplo, descCinit, seedC );
hres +=
......@@ -104,7 +105,7 @@ testing_zher2k( run_arg_list_t *args, int check )
}
testing_t test_zher2k;
const char *zher2k_params[] = { "nb", "trans", "uplo", "n", "k", "lda", "ldb", "ldc",
const char *zher2k_params[] = { "mtxfmt", "nb", "trans", "uplo", "n", "k", "lda", "ldb", "ldc",
"alpha", "beta", "seedA", "seedB", "seedC", "bump", NULL };
const char *zher2k_output[] = { NULL };
const char *zher2k_outchk[] = { "RETURN", NULL };
......
......@@ -29,20 +29,21 @@ testing_zherk( run_arg_list_t *args, int check )
CHAM_desc_t *descA, *descC, *descCinit;
/* Reads arguments */
int nb = run_arg_get_int( args, "nb", 320 );
int P = parameters_getvalue_int( "P" );
cham_trans_t trans = run_arg_get_trans( args, "trans", ChamNoTrans );
cham_uplo_t uplo = run_arg_get_uplo( args, "uplo", ChamUpper );
int N = run_arg_get_int( args, "N", 1000 );
int K = run_arg_get_int( args, "K", N );
int LDA = run_arg_get_int( args, "LDA", ( ( trans == ChamNoTrans ) ? N : K ) );
int LDC = run_arg_get_int( args, "LDC", N );
double alpha = testing_dalea();
double beta = testing_dalea();
double bump = testing_dalea();
int seedA = run_arg_get_int( args, "seedA", random() );
int seedC = run_arg_get_int( args, "seedC", random() );
int Q = parameters_compute_q( P );
intptr_t mtxfmt = parameters_getvalue_int( "mtxfmt" );
int nb = run_arg_get_int( args, "nb", 320 );
int P = parameters_getvalue_int( "P" );
cham_trans_t trans = run_arg_get_trans( args, "trans", ChamNoTrans );
cham_uplo_t uplo = run_arg_get_uplo( args, "uplo", ChamUpper );
int N = run_arg_get_int( args, "N", 1000 );
int K = run_arg_get_int( args, "K", N );
int LDA = run_arg_get_int( args, "LDA", ( ( trans == ChamNoTrans ) ? N : K ) );
int LDC = run_arg_get_int( args, "LDC", N );
double alpha = testing_dalea();
double beta = testing_dalea();
double bump = testing_dalea();
int seedA = run_arg_get_int( args, "seedA", random() );
int seedC = run_arg_get_int( args, "seedC", random() );
int Q = parameters_compute_q( P );
cham_fixdbl_t t, gflops;
cham_fixdbl_t flops = flops_zherk( K, N );
......@@ -64,9 +65,9 @@ testing_zherk( run_arg_list_t *args, int check )
/* Creates the matrices */
CHAMELEON_Desc_Create(
&descA, NULL, ChamComplexDouble, nb, nb, nb * nb, LDA, An, 0, 0, Am, An, P, Q );
&descA, (void*)(-mtxfmt), ChamComplexDouble, nb, nb, nb * nb, LDA, An, 0, 0, Am, An, P, Q );
CHAMELEON_Desc_Create(
&descC, NULL, ChamComplexDouble, nb, nb, nb * nb, LDC, N, 0, 0, N, N, P, Q );
&descC, (void*)(-mtxfmt), ChamComplexDouble, nb, nb, nb * nb, LDC, N, 0, 0, N, N, P, Q );
/* Fills the matrix with random values */
CHAMELEON_zplrnt_Tile( descA, seedA );
......@@ -83,7 +84,7 @@ testing_zherk( run_arg_list_t *args, int check )
/* Checks the solution */
if ( check ) {
CHAMELEON_Desc_Create(
&descCinit, NULL, ChamComplexDouble, nb, nb, nb * nb, LDC, N, 0, 0, N, N, P, Q );
&descCinit, (void*)(-mtxfmt), ChamComplexDouble, nb, nb, nb * nb, LDC, N, 0, 0, N, N, P, Q );
CHAMELEON_zplghe_Tile( bump, uplo, descCinit, seedC );
hres +=
......@@ -99,7 +100,7 @@ testing_zherk( run_arg_list_t *args, int check )
}
testing_t test_zherk;
const char *zherk_params[] = { "nb", "trans", "uplo", "n", "k", "lda", "ldc",
const char *zherk_params[] = { "mtxfmt", "nb", "trans", "uplo", "n", "k", "lda", "ldc",
"alpha", "beta", "seedA", "seedC", "bump", NULL };
const char *zherk_output[] = { NULL };
const char *zherk_outchk[] = { "RETURN", NULL };
......
......@@ -58,15 +58,16 @@ testing_zlacpy( run_arg_list_t *args, int check )
CHAM_desc_t *descA, *descB;
/* Reads arguments */
int nb = run_arg_get_int( args, "nb", 320 );
int P = parameters_getvalue_int( "P" );
cham_uplo_t uplo = run_arg_get_uplo( args, "uplo", ChamUpper );
int N = run_arg_get_int( args, "N", 1000 );
int M = run_arg_get_int( args, "M", N );
int LDA = run_arg_get_int( args, "LDA", M );
int LDB = run_arg_get_int( args, "LDB", M );
int seedA = run_arg_get_int( args, "seedA", random() );
int Q = parameters_compute_q( P );
intptr_t mtxfmt = parameters_getvalue_int( "mtxfmt" );
int nb = run_arg_get_int( args, "nb", 320 );
int P = parameters_getvalue_int( "P" );
cham_uplo_t uplo = run_arg_get_uplo( args, "uplo", ChamUpper );
int N = run_arg_get_int( args, "N", 1000 );
int M = run_arg_get_int( args, "M", N );
int LDA = run_arg_get_int( args, "LDA", M );
int LDB = run_arg_get_int( args, "LDB", M );
int seedA = run_arg_get_int( args, "seedA", random() );
int Q = parameters_compute_q( P );
cham_fixdbl_t t, gflops;
cham_fixdbl_t flops = flops_zlacpy( uplo, M, N );
......@@ -74,9 +75,9 @@ testing_zlacpy( run_arg_list_t *args, int check )
/* Creates two different matrices */
CHAMELEON_Desc_Create(
&descA, NULL, ChamComplexDouble, nb, nb, nb * nb, LDA, N, 0, 0, M, N, P, Q );
&descA, (void*)(-mtxfmt), ChamComplexDouble, nb, nb, nb * nb, LDA, N, 0, 0, M, N, P, Q );
CHAMELEON_Desc_Create(
&descB, NULL, ChamComplexDouble, nb, nb, nb * nb, LDB, N, 0, 0, M, N, P, Q );
&descB, (void*)(-mtxfmt), ChamComplexDouble, nb, nb, nb * nb, LDB, N, 0, 0, M, N, P, Q );
/* Fills each matrix with different random values */
CHAMELEON_zplrnt_Tile( descA, seedA );
......@@ -103,7 +104,7 @@ testing_zlacpy( run_arg_list_t *args, int check )
}
testing_t test_zlacpy;
const char *zlacpy_params[] = { "nb", "uplo", "m", "n", "lda", "ldb", "seedA", NULL };
const char *zlacpy_params[] = { "mtxfmt", "nb","uplo", "m", "n", "lda", "ldb", "seedA", NULL };
const char *zlacpy_output[] = { NULL };
const char *zlacpy_outchk[] = { "RETURN", NULL };
......
......@@ -55,6 +55,7 @@ testing_zlange( run_arg_list_t *args, int check )
CHAM_desc_t *descA;
/* Reads arguments */
intptr_t mtxfmt = parameters_getvalue_int( "mtxfmt" );
int nb = run_arg_get_int( args, "nb", 320 );
int P = parameters_getvalue_int( "P" );
cham_normtype_t norm_type = run_arg_get_ntype( args, "norm", ChamMaxNorm );
......@@ -70,7 +71,7 @@ testing_zlange( run_arg_list_t *args, int check )
/* Creates the matrix */
CHAMELEON_Desc_Create(
&descA, NULL, ChamComplexDouble, nb, nb, nb * nb, LDA, N, 0, 0, M, N, P, Q );
&descA, (void*)(-mtxfmt), ChamComplexDouble, nb, nb, nb * nb, LDA, N, 0, 0, M, N, P, Q );
/* Fills the matrix with random values */
CHAMELEON_zplrnt_Tile( descA, seedA );
......@@ -94,7 +95,7 @@ testing_zlange( run_arg_list_t *args, int check )
}
testing_t test_zlange;
const char *zlange_params[] = { "nb", "norm", "m", "n", "lda", "seedA", NULL };
const char *zlange_params[] = { "mtxfmt", "nb","norm", "m", "n", "lda", "seedA", NULL };
const char *zlange_output[] = { NULL };
const char *zlange_outchk[] = { "RETURN", NULL };
......
......@@ -53,6 +53,7 @@ testing_zlanhe( run_arg_list_t *args, int check )
CHAM_desc_t *descA;
/* Reads arguments */
intptr_t mtxfmt = parameters_getvalue_int( "mtxfmt" );
int nb = run_arg_get_int( args, "nb", 320 );
int P = parameters_getvalue_int( "P" );
cham_normtype_t norm_type = run_arg_get_ntype( args, "norm", ChamMaxNorm );
......@@ -71,7 +72,7 @@ testing_zlanhe( run_arg_list_t *args, int check )
/* Creates the matrix */
CHAMELEON_Desc_Create(
&descA, NULL, ChamComplexDouble, nb, nb, nb * nb, LDA, N, 0, 0, N, N, P, Q );
&descA, (void*)(-mtxfmt), ChamComplexDouble, nb, nb, nb * nb, LDA, N, 0, 0, N, N, P, Q );
/* Fills the matrix with random values */
CHAMELEON_zplghe_Tile( bump, uplo, descA, seedA );
......@@ -95,7 +96,7 @@ testing_zlanhe( run_arg_list_t *args, int check )
}
testing_t test_zlanhe;
const char *zlanhe_params[] = { "nb", "norm", "uplo", "n", "lda", "seedA", "bump", NULL };
const char *zlanhe_params[] = { "mtxfmt", "nb","norm", "uplo", "n", "lda", "seedA", "bump", NULL };
const char *zlanhe_output[] = { NULL };
const char *zlanhe_outchk[] = { "RETURN", NULL };
......
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