diff --git a/cmake_modules/morse_cmake b/cmake_modules/morse_cmake index 657741dbab25d4008c4dfc2ebdf34a3f43bf00e6..be970c0169f847f9a61993d2e6a7cd49a409399e 160000 --- a/cmake_modules/morse_cmake +++ b/cmake_modules/morse_cmake @@ -1 +1 @@ -Subproject commit 657741dbab25d4008c4dfc2ebdf34a3f43bf00e6 +Subproject commit be970c0169f847f9a61993d2e6a7cd49a409399e diff --git a/runtime/starpu/control/runtime_descriptor.c b/runtime/starpu/control/runtime_descriptor.c index 8402ec55b4d1fe7610092916f550e97aa99cc631..a6d9f84c7f9923bb379707516c32f5d3ccf0056b 100644 --- a/runtime/starpu/control/runtime_descriptor.c +++ b/runtime/starpu/control/runtime_descriptor.c @@ -31,7 +31,7 @@ These values can be changed through the call CHAMELEON_user_tag_size(int tag_width, int tag_sep) */ #define TAG_WIDTH_MIN 20 static int tag_width = 64; -static int tag_sep = 50; +static int tag_sep = 40; static int _tag_mpi_initialized_ = 0; static inline int diff --git a/testing/chameleon_ztesting.c b/testing/chameleon_ztesting.c index e41178a64e4afad629fa148408fba776a5470def..0d6d6e5d93d4ff1c1251f1994ad07ffcb04e28d3 100644 --- a/testing/chameleon_ztesting.c +++ b/testing/chameleon_ztesting.c @@ -98,10 +98,11 @@ static parameter_t parameters[] = { { "||A||", "Norm of the matrix A", 1005, PARAM_OUTPUT, 2, 13, TestValDouble, {0}, NULL, pread_double, sprint_double }, { "||B||", "Norm of the matrix B", 1006, PARAM_OUTPUT, 2, 13, TestValDouble, {0}, NULL, pread_double, sprint_double }, { "||C||", "Norm of the matrix C", 1007, PARAM_OUTPUT, 2, 13, TestValDouble, {0}, NULL, pread_double, sprint_double }, - { "||b||", "Norm of the vector b", 1008, PARAM_OUTPUT, 2, 13, TestValDouble, {0}, NULL, pread_double, sprint_double }, - { "||x||", "Norm of the vector x", 1009, PARAM_OUTPUT, 2, 13, TestValDouble, {0}, NULL, pread_double, sprint_double }, - { "||Ax-b||/N/eps/(||A||||x||+||b||", "", 1010, PARAM_OUTPUT, 2, 22, TestValDouble, {0}, NULL, pread_double, sprint_double }, - { "||I-QQ'||", "Orthonormality of Q", 1011, PARAM_OUTPUT, 2, 13, TestValDouble, {0}, NULL, pread_double, sprint_double }, + { "||R||", "Residual norm", 1008, PARAM_OUTPUT, 2, 13, TestValDouble, {0}, NULL, pread_double, sprint_double }, + { "||b||", "Norm of the vector b", 1009, PARAM_OUTPUT, 2, 13, TestValDouble, {0}, NULL, pread_double, sprint_double }, + { "||x||", "Norm of the vector x", 1010, PARAM_OUTPUT, 2, 13, TestValDouble, {0}, NULL, pread_double, sprint_double }, + { "||Ax-b||/N/eps/(||A||||x||+||b||", "", 1011, PARAM_OUTPUT, 2, 22, TestValDouble, {0}, NULL, pread_double, sprint_double }, + { "||I-QQ'||", "Orthonormality of Q", 1012, PARAM_OUTPUT, 2, 13, TestValDouble, {0}, NULL, pread_double, sprint_double }, }; #define STR_MAX_LENGTH 256 diff --git a/testing/input/geadd.in b/testing/input/geadd.in index 180fa9a87214d6b5bf1715c8ef341f39f76aa4d9..8e6fe98f11e7ec97f464df6a4cbb76f114f22daa 100644 --- a/testing/input/geadd.in +++ b/testing/input/geadd.in @@ -12,6 +12,8 @@ # alpha: Scalar alpha # beta: Scalar beta +alpha = 0., 3.45 +beta = 0., -4.86 op = geadd nb = 16, 17 ib = 8 diff --git a/testing/input/gemm.in b/testing/input/gemm.in index f4df5ce2ce5384429096b78aa37d291962c09c0b..ae01aee4dc82bcba9d6ebc60584d296dadb4a9e2 100644 --- a/testing/input/gemm.in +++ b/testing/input/gemm.in @@ -15,6 +15,8 @@ # alpha: Scalar alpha # beta: Scalar beta +alpha = 0., 3.45 +beta = 0., -4.86 op = gemm nb = 16, 17 ib = 8 diff --git a/testing/input/hemm.in b/testing/input/hemm.in index a571443045e1661b43a50adcd3bb9f96d5038362..047e5e9a6192508b071b714e77b6b6f80c79b508 100644 --- a/testing/input/hemm.in +++ b/testing/input/hemm.in @@ -15,6 +15,8 @@ # beta: Scalar beta # bump: bump value for Hermitian matrices +alpha = 0., 3.45 +beta = 0., -4.86 op = hemm nb = 16, 17 ib = 8 diff --git a/testing/input/her2k.in b/testing/input/her2k.in index 8b420b62aa61c76e1937b7adbef00a6453d04c7c..261c63cee3a189eb96d5616ff494db43dc3c67ae 100644 --- a/testing/input/her2k.in +++ b/testing/input/her2k.in @@ -15,6 +15,8 @@ # beta: Scalar beta # bump: Bump value for symmetric matrices +alpha = 0., 3.45 +beta = 0., -4.86 op = her2k nb = 16, 17 ib = 8 diff --git a/testing/input/herk.in b/testing/input/herk.in index c00df4c16f8fb4fa1f1c97e975a117d3de1b1974..eeec8f5201125c10128242fab32e7cced7250c83 100644 --- a/testing/input/herk.in +++ b/testing/input/herk.in @@ -14,6 +14,8 @@ # beta: Scalar beta # bump: Bump value for symmetric matrices +alpha = 0., 3.45 +beta = 0., -4.86 op = herk nb = 16, 17 ib = 8 diff --git a/testing/input/lascal.in b/testing/input/lascal.in index ba7171b1b6abf98c90a8ab333a937456f566b4a6..14bccea0cb61f9ee3c6d09557e42c7b3f4340351 100644 --- a/testing/input/lascal.in +++ b/testing/input/lascal.in @@ -10,6 +10,7 @@ # uplo: Part of the matrix to be copied (0 for Upper, 1 for Lower and 2 for UpperLower) # alpha: Scale to apply +alpha = 0., 3.45 op = lascal nb = 16, 17 ib = 8 diff --git a/testing/input/symm.in b/testing/input/symm.in index 17c7c3dacaa616116c1aa8fba89a6b5797034724..6981e403d4a56a29242983db24e61e02d3a7f799 100644 --- a/testing/input/symm.in +++ b/testing/input/symm.in @@ -15,6 +15,8 @@ # beta: Scalar beta # bump: bump value for Hermitian matrices +alpha = 0., 3.45 +beta = 0., -4.86 op = symm nb = 16, 17 ib = 8 diff --git a/testing/input/syr2k.in b/testing/input/syr2k.in index fe434797ba148ca5847228e1c08ea845dfb42af8..24ced3073bec2c06dee53f4ea44803791a5c779d 100644 --- a/testing/input/syr2k.in +++ b/testing/input/syr2k.in @@ -15,6 +15,8 @@ # beta: Scalar beta # bump: Bump value for symmetric matrices +alpha = 0., 3.45 +beta = 0., -4.86 op = syr2k nb = 16, 17 ib = 8 diff --git a/testing/input/syrk.in b/testing/input/syrk.in index 82daa929d76c69cfd164dceea7af1632d9c89fd4..b37b6a823d5db1bf788dd046190c39852219d6ae 100644 --- a/testing/input/syrk.in +++ b/testing/input/syrk.in @@ -14,6 +14,8 @@ # beta: Scalar beta # bump: Bump value for symmetric matrices +alpha = 0., 3.45 +beta = 0., -4.86 op = syrk nb = 16, 17 ib = 8 diff --git a/testing/input/tradd.in b/testing/input/tradd.in index b930006627c68b1e14a3ebe245fb418e53150bdb..a574f03519847cf4183b360ba06e743d2c243492 100644 --- a/testing/input/tradd.in +++ b/testing/input/tradd.in @@ -13,6 +13,8 @@ # alpha: Scalar alpha # beta: Scalar beta +alpha = 0., 3.45 +beta = 0., -4.86 op = tradd nb = 16, 17 ib = 8 diff --git a/testing/input/trmm.in b/testing/input/trmm.in index d570337401e27e1c6991f68b42cb09d5a363e0df..6c6228f1430fae996d28e3f4588d2cff4764f665 100644 --- a/testing/input/trmm.in +++ b/testing/input/trmm.in @@ -14,6 +14,7 @@ # diag: Whether or not A is unit triangular # alpha: Scalar alpha +alpha = 0., 3.45 op = trmm nb = 16, 17 ib = 8 diff --git a/testing/input/trsm.in b/testing/input/trsm.in index 2882e91427de91845e5a63c5a5188d393e1e505e..93098cc254da1411d468f01b564e5bb50dcb3ca9 100644 --- a/testing/input/trsm.in +++ b/testing/input/trsm.in @@ -15,6 +15,7 @@ # diag: Whether or not A is unit triangular # alpha: Scalar alpha +alpha = 0., 3.45 op = trsm nb = 16, 17 ib = 8 diff --git a/testing/testing_zcheck.c b/testing/testing_zcheck.c index 5a5f9f302e24a3c962aac79989f521f683e5feae..e0d4c1964c4ef857b78d3d79f1f9829a84ae039f 100644 --- a/testing/testing_zcheck.c +++ b/testing/testing_zcheck.c @@ -105,7 +105,12 @@ int check_zmatrices( run_arg_list_t *args, cham_uplo_t uplo, CHAM_desc_t *descA, Rnorm = LAPACKE_zlantr_work( LAPACK_COL_MAJOR, 'M', chameleon_lapack_const(uplo), 'N', M, N, B, LDA, work ); } - result = Rnorm / (Anorm * eps); + if ( Anorm != 0. ) { + result = Rnorm / (Anorm * eps); + } + else { + result = Rnorm; + } /* Verifies if the result is inside a threshold */ if ( isnan(Rnorm) || isinf(Rnorm) || isnan(result) || isinf(result) || (result > 10.0) ) { @@ -537,7 +542,16 @@ int check_zgemm( run_arg_list_t *args, cham_trans_t transA, cham_trans_t transB, /* Calculates the norm with the core function's result */ Rnorm = LAPACKE_zlange_work( LAPACK_COL_MAJOR, 'M', M, N, Cref, LDC, NULL ); - result = Rnorm / ((cabs(alpha) * max(Anorm, Bnorm) + cabs(beta) * Crefnorm) * K * eps); + if ( ( alpha != 0. ) || (beta != 0. ) ) { + result = Rnorm / ((cabs(alpha) * max(Anorm, Bnorm) + cabs(beta) * Crefnorm) * K * eps); + } + else { + result = Rnorm; + } + run_arg_add_double( args, "||A||", Anorm ); + run_arg_add_double( args, "||B||", Bnorm ); + run_arg_add_double( args, "||C||", Crefnorm ); + run_arg_add_double( args, "||R||", Rnorm ); /* Verifies if the result is inside a threshold */ if ( isnan(Rnorm) || isinf(Rnorm) || isnan(result) || isinf(result) || (result > 10.0) ) { @@ -685,7 +699,12 @@ int check_zsymm( run_arg_list_t *args, cham_mtxtype_t matrix_type, cham_side_t s Clapacknorm = LAPACKE_zlange_work( LAPACK_COL_MAJOR, 'M', M, N, Cref, LDC, NULL ); Rnorm = LAPACKE_zlange_work( LAPACK_COL_MAJOR, 'M', M, N, Cref, LDC, NULL ); - result = Rnorm / ((cabs(alpha) * max(Anorm, Bnorm) + cabs(beta) * Crefnorm) * An * eps); + if ( ( alpha != 0. ) || (beta != 0. ) ) { + result = Rnorm / ((cabs(alpha) * max(Anorm, Bnorm) + cabs(beta) * Crefnorm) * An * eps); + } + else { + result = Rnorm; + } /* Verifies if the result is inside a threshold */ if ( isnan(Rnorm) || isinf(Rnorm) || isnan(result) || isinf(result) || (result > 10.0) ) { diff --git a/testing/testing_zgemm.c b/testing/testing_zgemm.c index 17d39874d0d3799dbdb482a789f58e25393fd041..b3f2bea7cc7190abfa2487585a1efe09f912bede 100644 --- a/testing/testing_zgemm.c +++ b/testing/testing_zgemm.c @@ -114,7 +114,7 @@ testing_t test_zgemm; 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 }; +const char *zgemm_outchk[] = { "||A||", "||B||", "||C||", "||R||", "RETURN", NULL }; /** * @brief Testing registration function