From 8c7df755287efb38773ea5fbda0b98accb99b5df Mon Sep 17 00:00:00 2001 From: Mathieu Faverge <mathieu.faverge@inria.fr> Date: Mon, 15 Jan 2018 11:37:01 +0100 Subject: [PATCH] Keep cleaning the flushing methods --- compute/pzbuild.c | 1 - compute/pzgelqf.c | 3 - compute/pzgelqf_param.c | 4 - compute/pzgelqfrh.c | 3 - compute/pzgemm.c | 8 +- compute/pzgeqrf.c | 3 - compute/pzgeqrf_param.c | 4 - compute/pzgeqrfrh.c | 3 - compute/pzgetrf_incpiv.c | 3 - compute/pzgetrf_nopiv.c | 2 - compute/pzhemm.c | 4 - compute/pzher2k.c | 4 - compute/pzherk.c | 2 - compute/pzhetrd_he2hb.c | 2 - compute/pzlacpy.c | 2 - compute/pzlag2c.c | 2 - compute/pzlange.c | 1 - compute/pzlanhe.c | 1 - compute/pzlansy.c | 1 - compute/pzlantr.c | 1 - compute/pzlascal.c | 1 - compute/pzlaset.c | 1 - compute/pzlaset2.c | 1 - compute/pzlauum.c | 9 +- compute/pzplghe.c | 1 - compute/pzplgsy.c | 1 - compute/pzplrnt.c | 1 - compute/pzpotrf.c | 8 +- compute/pzpotrimm.c | 37 +++--- compute/pzsymm.c | 13 +- compute/pzsyr2k.c | 4 - compute/pzsyrk.c | 2 - compute/pzsytrf.c | 9 +- compute/pztile.c | 6 +- compute/pztile2band.c | 1 - compute/pztpgqrt.c | 7 -- compute/pztpqrt.c | 3 - compute/pztradd.c | 2 - compute/pztrmm.c | 2 - compute/pztrsm.c | 48 +++---- compute/pztrsmpl.c | 2 - compute/pztrtri.c | 13 +- compute/pzunglq.c | 4 - compute/pzunglq_param.c | 6 - compute/pzunglqrh.c | 4 - compute/pzungqr.c | 4 - compute/pzungqr_param.c | 6 - compute/pzungqrrh.c | 5 - compute/pzunmlq.c | 4 - compute/pzunmlq_param.c | 6 - compute/pzunmlqrh.c | 5 - compute/pzunmqr.c | 4 - compute/pzunmqr_param.c | 6 - compute/pzunmqrrh.c | 4 - compute/zgeadd.c | 4 +- compute/zgelqf.c | 2 +- compute/zgelqf_param.c | 2 +- compute/zgelqs.c | 4 +- compute/zgelqs_param.c | 4 +- compute/zgels.c | 4 +- compute/zgels_param.c | 4 +- compute/zgemm.c | 6 +- compute/zgeqrf.c | 2 +- compute/zgeqrf_param.c | 2 +- compute/zgeqrs.c | 6 +- compute/zgeqrs_param.c | 8 +- compute/zgesv_incpiv.c | 4 +- compute/zgesv_nopiv.c | 4 +- compute/zgetrf_incpiv.c | 2 +- compute/zgetrf_nopiv.c | 2 +- compute/zgetrs_incpiv.c | 4 +- compute/zgetrs_nopiv.c | 4 +- compute/zheevd.c | 4 +- compute/zhemm.c | 6 +- compute/zher2k.c | 6 +- compute/zherk.c | 4 +- compute/zlange.c | 2 +- compute/zlanhe.c | 2 +- compute/zlauum.c | 2 +- compute/zposv.c | 4 +- compute/zpotrf.c | 2 +- compute/zpotri.c | 2 +- compute/zpotrimm.c | 2 +- compute/zpotrs.c | 4 +- compute/zsymm.c | 6 +- compute/zsyr2k.c | 6 +- compute/zsyrk.c | 4 +- compute/zsysv.c | 4 +- compute/zsytrf.c | 2 +- compute/zsytrs.c | 4 +- compute/ztile.c | 4 +- compute/ztpgqrt.c | 4 +- compute/ztpqrt.c | 4 +- compute/ztradd.c | 4 +- compute/ztrmm.c | 4 +- compute/ztrsm.c | 4 +- compute/ztrsmpl.c | 4 +- compute/ztrtri.c | 2 +- compute/zunglq.c | 4 +- compute/zunglq_param.c | 4 +- compute/zungqr.c | 4 +- compute/zungqr_param.c | 4 +- compute/zunmlq.c | 4 +- compute/zunmlq_param.c | 4 +- compute/zunmqr.c | 4 +- compute/zunmqr_param.c | 4 +- control/control.c | 2 +- control/descriptor.c | 10 +- doc/orgmode/chapters/using.org | 2 +- doc/texinfo/chapters/using.texi | 2 +- example/lapack_to_morse/step4.c | 10 +- example/lapack_to_morse/step5.c | 10 +- example/lapack_to_morse/step6.c | 10 +- example/lapack_to_morse/step7.c | 10 +- include/chameleon/morse_runtime.h | 73 +++++++---- include/chameleon/morse_tasks.h | 9 -- include/morse.h | 2 +- runtime/starpu/CMakeLists.txt | 1 - runtime/starpu/codelets/codelet_dataflush.c | 118 ----------------- runtime/starpu/control/runtime_descriptor.c | 116 ++++++++++------- runtime/starpu/include/chameleon_starpu.h.in | 2 +- timing/time_zgetri_tile.c | 125 +++++++++---------- timing/time_zpotri_tile.c | 36 +++--- timing/time_zsytrf_tile.c | 9 +- 124 files changed, 395 insertions(+), 632 deletions(-) delete mode 100644 runtime/starpu/codelets/codelet_dataflush.c diff --git a/compute/pzbuild.c b/compute/pzbuild.c index 1b8d361a4..2bf0f5075 100644 --- a/compute/pzbuild.c +++ b/compute/pzbuild.c @@ -86,6 +86,5 @@ void morse_pzbuild( MORSE_enum uplo, MORSE_desc_t *A, void *user_data, void* use } } - MORSE_TASK_flush_desc( &options, uplo, A ); RUNTIME_options_finalize( &options, morse); } diff --git a/compute/pzgelqf.c b/compute/pzgelqf.c index 3821a1209..150335f7f 100644 --- a/compute/pzgelqf.c +++ b/compute/pzgelqf.c @@ -153,10 +153,7 @@ void morse_pzgelqf(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *D, RUNTIME_iteration_pop(morse); } - MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); - MORSE_TASK_flush_desc( &options, MorseUpper, T ); RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_flush_all(); (void)D; } diff --git a/compute/pzgelqf_param.c b/compute/pzgelqf_param.c index 88588051e..8a889b05c 100644 --- a/compute/pzgelqf_param.c +++ b/compute/pzgelqf_param.c @@ -196,12 +196,8 @@ void morse_pzgelqf_param( const libhqr_tree_t *qrtree, MORSE_desc_t *A, RUNTIME_iteration_pop(morse); } - MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); - MORSE_TASK_flush_desc( &options, MorseUpper, TS ); - MORSE_TASK_flush_desc( &options, MorseUpper, TT ); free(tiles); RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_flush_all(); (void)D; } diff --git a/compute/pzgelqfrh.c b/compute/pzgelqfrh.c index 141d94195..ad11204ad 100644 --- a/compute/pzgelqfrh.c +++ b/compute/pzgelqfrh.c @@ -181,10 +181,7 @@ void morse_pzgelqfrh(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *D, int BS, RUNTIME_iteration_pop(morse); } - MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); - MORSE_TASK_flush_desc( &options, MorseUpper, T ); RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_flush_all(); (void)D; } diff --git a/compute/pzgemm.c b/compute/pzgemm.c index e001af357..92c04d02c 100644 --- a/compute/pzgemm.c +++ b/compute/pzgemm.c @@ -134,19 +134,17 @@ void morse_pzgemm(MORSE_enum transA, MORSE_enum transB, } } } - MORSE_TASK_flush_data( &options, C(m, n) ); + RUNTIME_data_flush( sequence, C(m, n) ); } if (transA == MorseNoTrans) { for (k = 0; k < A->nt; k++) { - MORSE_TASK_flush_data( &options, A(m, k) ); + RUNTIME_data_flush( sequence, A(m, k) ); } } else { for (k = 0; k < A->mt; k++) { - MORSE_TASK_flush_data( &options, A(k, m) ); + RUNTIME_data_flush( sequence, A(k, m) ); } } } - MORSE_TASK_flush_desc( &options, MorseUpperLower, B ); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_flush_all(); } diff --git a/compute/pzgeqrf.c b/compute/pzgeqrf.c index 1ccd8bb99..08796a3db 100644 --- a/compute/pzgeqrf.c +++ b/compute/pzgeqrf.c @@ -147,10 +147,7 @@ void morse_pzgeqrf(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *D, RUNTIME_iteration_pop(morse); } - MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); - MORSE_TASK_flush_desc( &options, MorseLower, T ); RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_flush_all(); (void)D; } diff --git a/compute/pzgeqrf_param.c b/compute/pzgeqrf_param.c index 2382953a8..3845f4627 100644 --- a/compute/pzgeqrf_param.c +++ b/compute/pzgeqrf_param.c @@ -195,12 +195,8 @@ void morse_pzgeqrf_param( const libhqr_tree_t *qrtree, MORSE_desc_t *A, RUNTIME_iteration_pop(morse); } - MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); - MORSE_TASK_flush_desc( &options, MorseLower, TS ); - MORSE_TASK_flush_desc( &options, MorseLower, TT ); free(tiles); RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_flush_all(); (void)D; } diff --git a/compute/pzgeqrfrh.c b/compute/pzgeqrfrh.c index aeec53fab..6fffcf2ed 100644 --- a/compute/pzgeqrfrh.c +++ b/compute/pzgeqrfrh.c @@ -180,10 +180,7 @@ void morse_pzgeqrfrh(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *D, int BS, RUNTIME_iteration_pop(morse); } - MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); - MORSE_TASK_flush_desc( &options, MorseLower, T ); RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_flush_all(); (void)D; } diff --git a/compute/pzgetrf_incpiv.c b/compute/pzgetrf_incpiv.c index 9b01a7552..058dc1018 100644 --- a/compute/pzgetrf_incpiv.c +++ b/compute/pzgetrf_incpiv.c @@ -136,11 +136,8 @@ void morse_pzgetrf_incpiv(MORSE_desc_t *A, MORSE_desc_t *L, int *IPIV, RUNTIME_iteration_pop(morse); } - MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); - MORSE_TASK_flush_desc( &options, MorseLower, L ); RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_flush_all(); morse_desc_mat_free(DIAG); free(DIAG); diff --git a/compute/pzgetrf_nopiv.c b/compute/pzgetrf_nopiv.c index 138546249..3a276b820 100644 --- a/compute/pzgetrf_nopiv.c +++ b/compute/pzgetrf_nopiv.c @@ -104,7 +104,5 @@ void morse_pzgetrf_nopiv(MORSE_desc_t *A, RUNTIME_iteration_pop(morse); } - MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_flush_all(); } diff --git a/compute/pzhemm.c b/compute/pzhemm.c index a8582ee59..06a5115a9 100644 --- a/compute/pzhemm.c +++ b/compute/pzhemm.c @@ -226,9 +226,5 @@ void morse_pzhemm(MORSE_enum side, MORSE_enum uplo, } } } - MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); - MORSE_TASK_flush_desc( &options, MorseUpperLower, B ); - MORSE_TASK_flush_desc( &options, MorseUpperLower, C ); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_flush_all(); } diff --git a/compute/pzher2k.c b/compute/pzher2k.c index 9bde1020a..2462e4314 100644 --- a/compute/pzher2k.c +++ b/compute/pzher2k.c @@ -214,9 +214,5 @@ void morse_pzher2k(MORSE_enum uplo, MORSE_enum trans, } } } - MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); - MORSE_TASK_flush_desc( &options, MorseUpperLower, B ); - MORSE_TASK_flush_desc( &options, MorseUpperLower, C ); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_flush_all(); } diff --git a/compute/pzherk.c b/compute/pzherk.c index e3dd914f3..a83db2e5e 100644 --- a/compute/pzherk.c +++ b/compute/pzherk.c @@ -173,7 +173,5 @@ void morse_pzherk(MORSE_enum uplo, MORSE_enum trans, } } } - MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); - MORSE_TASK_flush_desc( &options, uplo, C ); RUNTIME_options_finalize(&options, morse); } diff --git a/compute/pzhetrd_he2hb.c b/compute/pzhetrd_he2hb.c index 0d8ed1d2f..873721ed6 100644 --- a/compute/pzhetrd_he2hb.c +++ b/compute/pzhetrd_he2hb.c @@ -436,10 +436,8 @@ void morse_pzhetrd_he2hb(MORSE_enum uplo, } - MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_flush_all(); MORSE_Sequence_Wait(sequence); morse_desc_mat_free(D); diff --git a/compute/pzlacpy.c b/compute/pzlacpy.c index 220c8b9db..f38330bc9 100644 --- a/compute/pzlacpy.c +++ b/compute/pzlacpy.c @@ -129,7 +129,5 @@ void morse_pzlacpy(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, } } } - MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); - MORSE_TASK_flush_desc( &options, MorseUpperLower, B ); RUNTIME_options_finalize(&options, morse); } diff --git a/compute/pzlag2c.c b/compute/pzlag2c.c index ec193214e..73f3798c7 100644 --- a/compute/pzlag2c.c +++ b/compute/pzlag2c.c @@ -67,7 +67,5 @@ void morse_pclag2z(MORSE_desc_t *SA, MORSE_desc_t *B, B(m, n), ldbm); } } - MORSE_TASK_flush_desc( &options, MorseUpperLower, SA ); - MORSE_TASK_flush_desc( &options, MorseUpperLower, B ); RUNTIME_options_finalize(&options, morse); } diff --git a/compute/pzlange.c b/compute/pzlange.c index 83eee09a6..7e68eb189 100644 --- a/compute/pzlange.c +++ b/compute/pzlange.c @@ -412,5 +412,4 @@ void morse_pzlange(MORSE_enum norm, MORSE_desc_t *A, double *result, MORSE_Desc_Destroy( &(RESULT) ); RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_flush_all(); } diff --git a/compute/pzlanhe.c b/compute/pzlanhe.c index a637a283d..781115b60 100644 --- a/compute/pzlanhe.c +++ b/compute/pzlanhe.c @@ -456,5 +456,4 @@ void morse_pzlanhe(MORSE_enum norm, MORSE_enum uplo, MORSE_desc_t *A, double *re } RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_flush_all(); } diff --git a/compute/pzlansy.c b/compute/pzlansy.c index cdb4c1dca..7f3877c84 100644 --- a/compute/pzlansy.c +++ b/compute/pzlansy.c @@ -465,5 +465,4 @@ void morse_pzlansy(MORSE_enum norm, MORSE_enum uplo, MORSE_desc_t *A, double *re } RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_flush_all(); } diff --git a/compute/pzlantr.c b/compute/pzlantr.c index 7f6ded725..639ebdfde 100644 --- a/compute/pzlantr.c +++ b/compute/pzlantr.c @@ -665,5 +665,4 @@ void morse_pzlantr(MORSE_enum norm, MORSE_enum uplo, MORSE_enum diag, } RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_flush_all(); } diff --git a/compute/pzlascal.c b/compute/pzlascal.c index 2659c3d7e..1809a5a12 100644 --- a/compute/pzlascal.c +++ b/compute/pzlascal.c @@ -97,6 +97,5 @@ void morse_pzlascal(MORSE_enum uplo, MORSE_Complex64_t alpha, MORSE_desc_t *A, } } } - MORSE_TASK_flush_desc( &options, uplo, A ); RUNTIME_options_finalize(&options, morse); } diff --git a/compute/pzlaset.c b/compute/pzlaset.c index a14ba24f0..a0a71b0da 100644 --- a/compute/pzlaset.c +++ b/compute/pzlaset.c @@ -118,6 +118,5 @@ void morse_pzlaset(MORSE_enum uplo, A(j, j), ldaj); } } - MORSE_TASK_flush_desc( &options, uplo, A ); RUNTIME_options_finalize(&options, morse); } diff --git a/compute/pzlaset2.c b/compute/pzlaset2.c index c56661594..94142791c 100644 --- a/compute/pzlaset2.c +++ b/compute/pzlaset2.c @@ -108,6 +108,5 @@ void morse_pzlaset2(MORSE_enum uplo, MORSE_Complex64_t alpha, } } } - MORSE_TASK_flush_desc( &options, uplo, A ); RUNTIME_options_finalize(&options, morse); } diff --git a/compute/pzlauum.c b/compute/pzlauum.c index 9ff23bebe..de8faf8f8 100644 --- a/compute/pzlauum.c +++ b/compute/pzlauum.c @@ -76,7 +76,7 @@ void morse_pzlauum(MORSE_enum uplo, MORSE_desc_t *A, } } for (n = 0; n < k; n++) { - MORSE_TASK_flush_data( &options, A(k, n) ); + RUNTIME_data_flush( sequence, A(k, n) ); MORSE_TASK_ztrmm( &options, MorseLeft, uplo, MorseConjTrans, MorseNonUnit, @@ -84,7 +84,7 @@ void morse_pzlauum(MORSE_enum uplo, MORSE_desc_t *A, 1.0, A(k, k), ldak, A(k, n), ldak); } - MORSE_TASK_flush_data( &options, A(k, k) ); + RUNTIME_data_flush( sequence, A(k, k) ); MORSE_TASK_zlauum( &options, uplo, tempkm, A->mb, @@ -121,7 +121,7 @@ void morse_pzlauum(MORSE_enum uplo, MORSE_desc_t *A, } for (m = 0; m < k; m++) { ldam = BLKLDD(A, m); - MORSE_TASK_flush_data( &options, A(m, k) ); + RUNTIME_data_flush( sequence, A(m, k) ); MORSE_TASK_ztrmm( &options, MorseRight, uplo, MorseConjTrans, MorseNonUnit, @@ -129,13 +129,12 @@ void morse_pzlauum(MORSE_enum uplo, MORSE_desc_t *A, 1.0, A(k, k), ldak, A(m, k), ldam); } - MORSE_TASK_flush_data( &options, A(k, k) ); + RUNTIME_data_flush( sequence, A(k, k) ); MORSE_TASK_zlauum( &options, uplo, tempkn, A->mb, A(k, k), ldak); } } - MORSE_TASK_flush_desc( &options, uplo, A ); RUNTIME_options_finalize(&options, morse); } diff --git a/compute/pzplghe.c b/compute/pzplghe.c index d0b0d16e0..0f6e559dd 100644 --- a/compute/pzplghe.c +++ b/compute/pzplghe.c @@ -97,6 +97,5 @@ void morse_pzplghe( double bump, MORSE_enum uplo, MORSE_desc_t *A, } } } - MORSE_TASK_flush_desc( &options, uplo, A ); RUNTIME_options_finalize(&options, morse); } diff --git a/compute/pzplgsy.c b/compute/pzplgsy.c index 3c8c288bf..a7c8b2828 100644 --- a/compute/pzplgsy.c +++ b/compute/pzplgsy.c @@ -97,6 +97,5 @@ void morse_pzplgsy( MORSE_Complex64_t bump, MORSE_enum uplo, MORSE_desc_t *A, } } } - MORSE_TASK_flush_desc( &options, uplo, A ); RUNTIME_options_finalize(&options, morse); } diff --git a/compute/pzplrnt.c b/compute/pzplrnt.c index 1e2fc8c61..53fe68f27 100644 --- a/compute/pzplrnt.c +++ b/compute/pzplrnt.c @@ -60,6 +60,5 @@ void morse_pzplrnt( MORSE_desc_t *A, unsigned long long int seed, A->m, m*A->mb, n*A->nb, seed ); } } - MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); RUNTIME_options_finalize(&options, morse); } diff --git a/compute/pzpotrf.c b/compute/pzpotrf.c index 662c96fd1..562d7109a 100644 --- a/compute/pzpotrf.c +++ b/compute/pzpotrf.c @@ -84,7 +84,7 @@ void morse_pzpotrf(MORSE_enum uplo, MORSE_desc_t *A, zone, A(k, k), ldak, A(m, k), ldam); } - MORSE_TASK_flush_data( &options, A(k, k) ); + RUNTIME_data_flush( sequence, A(k, k) ); for (n = k+1; n < A->nt; n++) { tempnn = n == A->nt-1 ? A->n-n*A->nb : A->nb; @@ -111,7 +111,7 @@ void morse_pzpotrf(MORSE_enum uplo, MORSE_desc_t *A, A(n, k), ldan, zone, A(m, n), ldam); } - MORSE_TASK_flush_data( &options, A(n, k) ); + RUNTIME_data_flush( sequence, A(n, k) ); } RUNTIME_iteration_pop(morse); } @@ -144,7 +144,7 @@ void morse_pzpotrf(MORSE_enum uplo, MORSE_desc_t *A, zone, A(k, k), ldak, A(k, n), ldak); } - MORSE_TASK_flush_data( &options, A(k, k) ); + RUNTIME_data_flush( sequence, A(k, k) ); for (m = k+1; m < A->mt; m++) { tempmm = m == A->mt-1 ? A->m - m*A->mb : A->mb; @@ -170,7 +170,7 @@ void morse_pzpotrf(MORSE_enum uplo, MORSE_desc_t *A, A(k, n), ldak, zone, A(m, n), ldam); } - MORSE_TASK_flush_data( &options, A(k, m) ); + RUNTIME_data_flush( sequence, A(k, m) ); } RUNTIME_iteration_pop(morse); diff --git a/compute/pzpotrimm.c b/compute/pzpotrimm.c index abbbd1d03..09d6bd39d 100644 --- a/compute/pzpotrimm.c +++ b/compute/pzpotrimm.c @@ -85,7 +85,7 @@ void morse_pzpotrimm(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_de zone, A(k, k), ldak, A(m, k), ldam); } - MORSE_TASK_flush_data( &options, A(k, k) ); + RUNTIME_data_flush( sequence, A(k, k) ); for (n = k+1; n < A->nt; n++) { tempnn = n == A->nt-1 ? A->n-n*A->nb : A->nb; @@ -108,7 +108,7 @@ void morse_pzpotrimm(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_de A(n, k), ldan, zone, A(m, n), ldam); } - MORSE_TASK_flush_data( &options, A(n, k) ); + RUNTIME_data_flush( sequence, A(n, k) ); } RUNTIME_iteration_pop(morse); @@ -143,10 +143,10 @@ void morse_pzpotrimm(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_de A(k, n), ldak, zone, A(m, n), ldam); } - MORSE_TASK_flush_data( &options, A(m, k) ); + RUNTIME_data_flush( sequence, A(m, k) ); } for (n = 0; n < k; n++) { - MORSE_TASK_flush_data( &options, A(k, n) ); + RUNTIME_data_flush( sequence, A(k, n) ); MORSE_TASK_ztrsm( &options, MorseLeft, uplo, MorseNoTrans, MorseNonUnit, @@ -154,7 +154,7 @@ void morse_pzpotrimm(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_de zone, A(k, k), ldak, A(k, n), ldak); } - MORSE_TASK_flush_data( &options, A(k, k) ); + RUNTIME_data_flush( sequence, A(k, k) ); MORSE_TASK_ztrtri( &options, uplo, MorseNonUnit, @@ -192,7 +192,7 @@ void morse_pzpotrimm(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_de } } for (n = 0; n < k; n++) { - MORSE_TASK_flush_data( &options, A(k, n) ); + RUNTIME_data_flush( sequence, A(k, n) ); MORSE_TASK_ztrmm( &options, MorseLeft, uplo, MorseConjTrans, MorseNonUnit, @@ -200,7 +200,7 @@ void morse_pzpotrimm(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_de 1.0, A(k, k), ldak, A(k, n), ldak); } - MORSE_TASK_flush_data( &options, A(k, k) ); + RUNTIME_data_flush( sequence, A(k, k) ); MORSE_TASK_zlauum( &options, uplo, tempkm, A->mb, @@ -257,10 +257,10 @@ void morse_pzpotrimm(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_de } } } - MORSE_TASK_flush_data( &options, B(m, k) ); + RUNTIME_data_flush( sequence, B(m, k) ); } for (n = 0; n <= k; n++) { - MORSE_TASK_flush_data( &options, A(k, n) ); + RUNTIME_data_flush( sequence, A(k, n) ); } RUNTIME_iteration_pop(morse); @@ -293,7 +293,7 @@ void morse_pzpotrimm(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_de zone, A(k, k), ldak, A(k, n), ldak); } - MORSE_TASK_flush_data( &options, A(k, k) ); + RUNTIME_data_flush( sequence, A(k, k) ); for (m = k+1; m < A->mt; m++) { tempmm = m == A->mt-1 ? A->m - m*A->mb : A->mb; @@ -317,7 +317,7 @@ void morse_pzpotrimm(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_de A(k, n), ldak, zone, A(m, n), ldam); } - MORSE_TASK_flush_data( &options, A(k, m) ); + RUNTIME_data_flush( sequence, A(k, m) ); } RUNTIME_iteration_pop(morse); @@ -351,11 +351,11 @@ void morse_pzpotrimm(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_de A(k, n), ldak, zone, A(m, n), ldam); } - MORSE_TASK_flush_data( &options, A(k, n) ); + RUNTIME_data_flush( sequence, A(k, n) ); } for (m = 0; m < k; m++) { ldam = BLKLDD(A, m); - MORSE_TASK_flush_data( &options, A(m, k) ); + RUNTIME_data_flush( sequence, A(m, k) ); MORSE_TASK_ztrsm( &options, MorseRight, uplo, MorseNoTrans, MorseNonUnit, @@ -363,7 +363,7 @@ void morse_pzpotrimm(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_de zone, A(k, k), ldak, A(m, k), ldam); } - MORSE_TASK_flush_data( &options, A(k, k) ); + RUNTIME_data_flush( sequence, A(k, k) ); MORSE_TASK_ztrtri( &options, uplo, MorseNonUnit, @@ -403,7 +403,7 @@ void morse_pzpotrimm(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_de } for (m = 0; m < k; m++) { ldam = BLKLDD(A, m); - MORSE_TASK_flush_data( &options, A(m, k) ); + RUNTIME_data_flush( sequence, A(m, k) ); MORSE_TASK_ztrmm( &options, MorseRight, uplo, MorseConjTrans, MorseNonUnit, @@ -411,7 +411,7 @@ void morse_pzpotrimm(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_de 1.0, A(k, k), ldak, A(m, k), ldam); } - MORSE_TASK_flush_data( &options, A(k, k) ); + RUNTIME_data_flush( sequence, A(k, k) ); MORSE_TASK_zlauum( &options, uplo, tempkn, A->mb, @@ -468,10 +468,10 @@ void morse_pzpotrimm(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_de } } } - MORSE_TASK_flush_data( &options, B(m, k) ); + RUNTIME_data_flush( sequence, B(m, k) ); } for (m = 0; m <= k; m++) { - MORSE_TASK_flush_data( &options, A(m, k) ); + RUNTIME_data_flush( sequence, A(m, k) ); } RUNTIME_iteration_pop(morse); @@ -479,5 +479,4 @@ void morse_pzpotrimm(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_de } RUNTIME_options_finalize(&options, morse); - MORSE_TASK_flush_all(); } diff --git a/compute/pzsymm.c b/compute/pzsymm.c index 71b958957..a51cc6437 100644 --- a/compute/pzsymm.c +++ b/compute/pzsymm.c @@ -141,16 +141,16 @@ void morse_pzsymm(MORSE_enum side, MORSE_enum uplo, } } } - MORSE_TASK_flush_data( &options, B(k, n) ); + RUNTIME_data_flush( sequence, B(k, n) ); } if (uplo == MorseLower) { for (n = 0; n <= k; n++) { - MORSE_TASK_flush_data( &options, A(k, n) ); + RUNTIME_data_flush( sequence, A(k, n) ); } } else { for (m = 0; m <= k; m++) { - MORSE_TASK_flush_data( &options, A(m, k) ); + RUNTIME_data_flush( sequence, A(m, k) ); } } } @@ -242,20 +242,19 @@ void morse_pzsymm(MORSE_enum side, MORSE_enum uplo, } } } - MORSE_TASK_flush_data( &options, B(m, k) ); + RUNTIME_data_flush( sequence, B(m, k) ); } if (uplo == MorseLower) { for (n = 0; n <= k; n++) { - MORSE_TASK_flush_data( &options, A(k, n) ); + RUNTIME_data_flush( sequence, A(k, n) ); } } else { for (m = 0; m <= k; m++) { - MORSE_TASK_flush_data( &options, A(m, k) ); + RUNTIME_data_flush( sequence, A(m, k) ); } } } } RUNTIME_options_finalize(&options, morse); - MORSE_TASK_flush_all(); } diff --git a/compute/pzsyr2k.c b/compute/pzsyr2k.c index 68e4d6ee1..9903b623a 100644 --- a/compute/pzsyr2k.c +++ b/compute/pzsyr2k.c @@ -213,9 +213,5 @@ void morse_pzsyr2k(MORSE_enum uplo, MORSE_enum trans, } } } - MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); - MORSE_TASK_flush_desc( &options, MorseUpperLower, B ); - MORSE_TASK_flush_desc( &options, uplo, C ); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_flush_all(); } diff --git a/compute/pzsyrk.c b/compute/pzsyrk.c index 49508895c..41b5efd0a 100644 --- a/compute/pzsyrk.c +++ b/compute/pzsyrk.c @@ -172,7 +172,5 @@ void morse_pzsyrk(MORSE_enum uplo, MORSE_enum trans, } } } - MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); - MORSE_TASK_flush_desc( &options, uplo, C ); RUNTIME_options_finalize(&options, morse); } diff --git a/compute/pzsytrf.c b/compute/pzsytrf.c index 2ea509a51..2a4ce3a6e 100644 --- a/compute/pzsytrf.c +++ b/compute/pzsytrf.c @@ -80,7 +80,7 @@ void morse_pzsytrf(MORSE_enum uplo, MORSE_desc_t *A, zone, A(k, k), ldak, A(m, k), ldam); } - MORSE_TASK_flush_data( &options, A(k, k) ); + RUNTIME_data_flush( sequence, A(k, k) ); for (n = k+1; n < A->nt; n++) { tempnn = n == A->nt-1 ? A->n-n*A->nb : A->nb; @@ -103,7 +103,7 @@ void morse_pzsytrf(MORSE_enum uplo, MORSE_desc_t *A, A(n, k), ldan, zone, A(m, n), ldam); } - MORSE_TASK_flush_data( &options, A(n, k) ); + RUNTIME_data_flush( sequence, A(n, k) ); } RUNTIME_iteration_pop(morse); @@ -133,7 +133,7 @@ void morse_pzsytrf(MORSE_enum uplo, MORSE_desc_t *A, zone, A(k, k), ldak, A(k, n), ldak); } - MORSE_TASK_flush_data( &options, A(k, k) ); + RUNTIME_data_flush( sequence, A(k, k) ); for (m = k+1; m < A->mt; m++) { tempmm = m == A->mt-1 ? A->m - m*A->mb : A->mb; @@ -157,14 +157,13 @@ void morse_pzsytrf(MORSE_enum uplo, MORSE_desc_t *A, A(k, n), ldak, zone, A(m, n), ldam); } - MORSE_TASK_flush_data( &options, A(k, m) ); + RUNTIME_data_flush( sequence, A(k, m) ); } RUNTIME_iteration_pop(morse); } } - MORSE_TASK_flush_desc( &options, uplo, A ); RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); } diff --git a/compute/pztile.c b/compute/pztile.c index c52220010..6b9b49a82 100644 --- a/compute/pztile.c +++ b/compute/pztile.c @@ -72,10 +72,9 @@ void morse_pzlapack_to_tile(MORSE_Complex64_t *Af77, int ldaf77, MORSE_desc_t *A } } + RUNTIME_desc_flush( &B, sequence ); RUNTIME_sequence_wait( morse, sequence ); RUNTIME_options_finalize( &options, morse ); - MORSE_TASK_flush_all(); - RUNTIME_desc_getoncpu( &B ); RUNTIME_desc_destroy( &B ); } @@ -122,10 +121,9 @@ void morse_pztile_to_lapack(MORSE_desc_t *A, MORSE_Complex64_t *Af77, int ldaf77 } } - MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); + RUNTIME_desc_flush( &B, sequence ); RUNTIME_sequence_wait( morse, sequence ); RUNTIME_options_finalize( &options, morse ); - RUNTIME_desc_getoncpu( &B ); RUNTIME_desc_destroy( &B ); } diff --git a/compute/pztile2band.c b/compute/pztile2band.c index 22b8ca68f..cf71f839f 100644 --- a/compute/pztile2band.c +++ b/compute/pztile2band.c @@ -118,7 +118,6 @@ void morse_pztile2band(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, } } RUNTIME_options_finalize(&options, morse); - MORSE_TASK_flush_all(); } #undef B #undef A diff --git a/compute/pztpgqrt.c b/compute/pztpgqrt.c index fe4b413ea..0746b2786 100644 --- a/compute/pztpgqrt.c +++ b/compute/pztpgqrt.c @@ -162,13 +162,6 @@ void morse_pztpgqrt( int L, RUNTIME_iteration_pop(morse); } - MORSE_TASK_flush_desc( &options, MorseUpperLower, V1 ); - MORSE_TASK_flush_desc( &options, MorseUpperLower, V2 ); - MORSE_TASK_flush_desc( &options, MorseLower, T1 ); - MORSE_TASK_flush_desc( &options, MorseUpperLower, T2 ); - MORSE_TASK_flush_desc( &options, MorseUpperLower, Q1 ); - MORSE_TASK_flush_desc( &options, MorseUpperLower, Q2 ); - MORSE_TASK_flush_desc( &options, MorseUpperLower, D ); RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); (void)D; diff --git a/compute/pztpqrt.c b/compute/pztpqrt.c index 6101c0934..da8d152c1 100644 --- a/compute/pztpqrt.c +++ b/compute/pztpqrt.c @@ -111,9 +111,6 @@ void morse_pztpqrt( int L, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_desc_t *T, RUNTIME_iteration_pop(morse); } - MORSE_TASK_flush_desc( &options, MorseLower, T ); - MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); - MORSE_TASK_flush_desc( &options, MorseUpperLower, B ); RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); } diff --git a/compute/pztradd.c b/compute/pztradd.c index 8d121b7e9..34baf5eab 100644 --- a/compute/pztradd.c +++ b/compute/pztradd.c @@ -194,7 +194,5 @@ void morse_pztradd(MORSE_enum uplo, MORSE_enum trans, } } - MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); - MORSE_TASK_flush_desc( &options, uplo, B ); RUNTIME_options_finalize(&options, morse); } diff --git a/compute/pztrmm.c b/compute/pztrmm.c index b9f6cb006..ce0d54345 100644 --- a/compute/pztrmm.c +++ b/compute/pztrmm.c @@ -311,7 +311,5 @@ void morse_pztrmm(MORSE_enum side, MORSE_enum uplo, } } - MORSE_TASK_flush_desc( &options, uplo, A ); - MORSE_TASK_flush_desc( &options, MorseUpperLower, B ); RUNTIME_options_finalize(&options, morse); } diff --git a/compute/pztrsm.c b/compute/pztrsm.c index c861890cc..6338801f6 100644 --- a/compute/pztrsm.c +++ b/compute/pztrsm.c @@ -75,7 +75,7 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum lalpha, A(B->mt-1-k, B->mt-1-k), ldak, /* lda * tempkm */ B(B->mt-1-k, n), ldbk); /* ldb * tempnn */ } - MORSE_TASK_flush_data( &options, A(B->mt-1-k, B->mt-1-k) ); + RUNTIME_data_flush( sequence, A(B->mt-1-k, B->mt-1-k) ); for (m = k+1; m < B->mt; m++) { ldam = BLKLDD(A, B->mt-1-m); ldbm = BLKLDD(B, B->mt-1-m); @@ -89,10 +89,10 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum B(B->mt-1-k, n ), ldbk, lalpha, B(B->mt-1-m, n ), ldbm); } - MORSE_TASK_flush_data( &options, A(B->mt-1-m, B->mt-1-k) ); + RUNTIME_data_flush( sequence, A(B->mt-1-m, B->mt-1-k) ); } for (n = 0; n < B->nt; n++) { - MORSE_TASK_flush_data( &options, B(B->mt-1-k, n) ); + RUNTIME_data_flush( sequence, B(B->mt-1-k, n) ); } } } @@ -114,7 +114,7 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum lalpha, A(k, k), ldak, B(k, n), ldbk); } - MORSE_TASK_flush_data( &options, A(k, k) ); + RUNTIME_data_flush( sequence, A(k, k) ); for (m = k+1; m < B->mt; m++) { tempmm = m == B->mt-1 ? B->m-m*B->mb : B->mb; ldbm = BLKLDD(B, m); @@ -128,10 +128,10 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum B(k, n), ldbk, lalpha, B(m, n), ldbm); } - MORSE_TASK_flush_data( &options, A(k, m) ); + RUNTIME_data_flush( sequence, A(k, m) ); } for (n = 0; n < B->nt; n++) { - MORSE_TASK_flush_data( &options, B(k, n) ); + RUNTIME_data_flush( sequence, B(k, n) ); } } @@ -156,7 +156,7 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum lalpha, A(k, k), ldak, B(k, n), ldbk); } - MORSE_TASK_flush_data( &options, A(k, k) ); + RUNTIME_data_flush( sequence, A(k, k) ); for (m = k+1; m < B->mt; m++) { tempmm = m == B->mt-1 ? B->m-m*B->mb : B->mb; ldam = BLKLDD(A, m); @@ -171,10 +171,10 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum B(k, n), ldbk, lalpha, B(m, n), ldbm); } - MORSE_TASK_flush_data( &options, A(m, k) ); + RUNTIME_data_flush( sequence, A(m, k) ); } for (n = 0; n < B->nt; n++) { - MORSE_TASK_flush_data( &options, B(k, n) ); + RUNTIME_data_flush( sequence, B(k, n) ); } } } @@ -196,7 +196,7 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum lalpha, A(B->mt-1-k, B->mt-1-k), ldak, B(B->mt-1-k, n), ldbk); } - MORSE_TASK_flush_data( &options, A(B->mt-1-k, B->mt-1-k) ); + RUNTIME_data_flush( sequence, A(B->mt-1-k, B->mt-1-k) ); for (m = k+1; m < B->mt; m++) { tempmm = m == B->mt-1 ? B->m-m*B->mb : B->mb; ldbm = BLKLDD(B, B->mt-1-m); @@ -210,10 +210,10 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum B(B->mt-1-k, n ), ldbk, lalpha, B(B->mt-1-m, n ), ldbm); } - MORSE_TASK_flush_data( &options, A(B->mt-1-k, B->mt-1-m) ); + RUNTIME_data_flush( sequence, A(B->mt-1-k, B->mt-1-m) ); } for (n = 0; n < B->nt; n++) { - MORSE_TASK_flush_data( &options, B(B->mt-1-k, n) ); + RUNTIME_data_flush( sequence, B(B->mt-1-k, n) ); } } } @@ -239,7 +239,7 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum lalpha, A(k, k), ldak, /* lda * tempkn */ B(m, k), ldbm); /* ldb * tempkn */ } - MORSE_TASK_flush_data( &options, A(k, k) ); + RUNTIME_data_flush( sequence, A(k, k) ); for (m = 0; m < B->mt; m++) { tempmm = m == B->mt-1 ? B->m-m*B->mb : B->mb; ldbm = BLKLDD(B, m); @@ -253,10 +253,10 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum A(k, n), ldak, /* lda * tempnn */ lalpha, B(m, n), ldbm); /* ldb * tempnn */ } - MORSE_TASK_flush_data( &options, B(m, k) ); + RUNTIME_data_flush( sequence, B(m, k) ); } for (n = k+1; n < B->nt; n++) { - MORSE_TASK_flush_data( &options, A(k, n) ); + RUNTIME_data_flush( sequence, A(k, n) ); } } } @@ -276,7 +276,7 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum tempmm, tempkn, A->mb, alpha, A(B->nt-1-k, B->nt-1-k), ldak, /* lda * tempkn */ B( m, B->nt-1-k), ldbm); /* ldb * tempkn */ - MORSE_TASK_flush_data( &options, A(B->nt-1-k, B->nt-1-k) ); + RUNTIME_data_flush( sequence, A(B->nt-1-k, B->nt-1-k) ); for (n = k+1; n < B->nt; n++) { ldan = BLKLDD(A, B->nt-1-n); @@ -288,10 +288,10 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum A(B->nt-1-n, B->nt-1-k), ldan, /* A->mb * tempkn (Never last row) */ zone, B(m, B->nt-1-n), ldbm); /* ldb * B->nb */ } - MORSE_TASK_flush_data( &options, B(m, B->nt-1-k) ); + RUNTIME_data_flush( sequence, B(m, B->nt-1-k) ); } for (n = k+1; n < B->nt; n++) { - MORSE_TASK_flush_data( &options, A(B->nt-1-n, B->nt-1-k) ); + RUNTIME_data_flush( sequence, A(B->nt-1-n, B->nt-1-k) ); } } } @@ -314,7 +314,7 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum tempmm, tempkn, A->mb, lalpha, A(B->nt-1-k, B->nt-1-k), ldak, /* lda * tempkn */ B( m, B->nt-1-k), ldbm); /* ldb * tempkn */ - MORSE_TASK_flush_data( &options, A(B->nt-1-k, B->nt-1-k) ); + RUNTIME_data_flush( sequence, A(B->nt-1-k, B->nt-1-k) ); for (n = k+1; n < B->nt; n++) { MORSE_TASK_zgemm( @@ -325,10 +325,10 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum A(B->nt-1-k, B->nt-1-n), ldak, /* lda * B->nb */ lalpha, B(m, B->nt-1-n), ldbm); /* ldb * B->nb */ } - MORSE_TASK_flush_data( &options, B(m, B->nt-1-k) ); + RUNTIME_data_flush( sequence, B(m, B->nt-1-k) ); } for (n = k+1; n < B->nt; n++) { - MORSE_TASK_flush_data( &options, A(B->nt-1-k, B->nt-1-n) ); + RUNTIME_data_flush( sequence, A(B->nt-1-k, B->nt-1-n) ); } } } @@ -348,7 +348,7 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum tempmm, tempkn, A->mb, alpha, A(k, k), ldak, /* lda * tempkn */ B(m, k), ldbm); /* ldb * tempkn */ - MORSE_TASK_flush_data( &options, A(k, k) ); + RUNTIME_data_flush( sequence, A(k, k) ); for (n = k+1; n < B->nt; n++) { tempnn = n == B->nt-1 ? B->n-n*B->nb : B->nb; @@ -361,10 +361,10 @@ void morse_pztrsm(MORSE_enum side, MORSE_enum uplo, MORSE_enum trans, MORSE_enum A(n, k), ldan, /* ldan * tempkn */ zone, B(m, n), ldbm); /* ldb * tempnn */ } - MORSE_TASK_flush_data( &options, B(m, k) ); + RUNTIME_data_flush( sequence, B(m, k) ); } for (n = k+1; n < B->nt; n++) { - MORSE_TASK_flush_data( &options, A(n, k) ); + RUNTIME_data_flush( sequence, A(n, k) ); } } diff --git a/compute/pztrsmpl.c b/compute/pztrsmpl.c index 4c51e7a5e..5da3da0c8 100644 --- a/compute/pztrsmpl.c +++ b/compute/pztrsmpl.c @@ -87,7 +87,5 @@ void morse_pztrsmpl(MORSE_desc_t *A, MORSE_desc_t *B, MORSE_desc_t *L, int *IPIV } } } - MORSE_TASK_flush_desc( &options, MorseLower, L ); - MORSE_TASK_flush_desc( &options, MorseUpperLower, B ); RUNTIME_options_finalize(&options, morse); } diff --git a/compute/pztrtri.c b/compute/pztrtri.c index fbea4fe03..c81fcb941 100644 --- a/compute/pztrtri.c +++ b/compute/pztrtri.c @@ -82,10 +82,10 @@ void morse_pztrtri(MORSE_enum uplo, MORSE_enum diag, MORSE_desc_t *A, A(k, n), ldak, zone, A(m, n), ldam); } - MORSE_TASK_flush_data( &options, A(m, k) ); + RUNTIME_data_flush( sequence, A(m, k) ); } for (n = 0; n < k; n++) { - MORSE_TASK_flush_data( &options, A(k, n) ); + RUNTIME_data_flush( sequence, A(k, n) ); MORSE_TASK_ztrsm( &options, MorseLeft, uplo, MorseNoTrans, diag, @@ -93,7 +93,7 @@ void morse_pztrtri(MORSE_enum uplo, MORSE_enum diag, MORSE_desc_t *A, zone, A(k, k), ldak, A(k, n), ldak); } - MORSE_TASK_flush_data( &options, A(k, k) ); + RUNTIME_data_flush( sequence, A(k, k) ); MORSE_TASK_ztrtri( &options, uplo, diag, @@ -133,11 +133,11 @@ void morse_pztrtri(MORSE_enum uplo, MORSE_enum diag, MORSE_desc_t *A, A(k, n), ldak, zone, A(m, n), ldam); } - MORSE_TASK_flush_data( &options, A(k, n) ); + RUNTIME_data_flush( sequence, A(k, n) ); } for (m = 0; m < k; m++) { ldam = BLKLDD(A, m); - MORSE_TASK_flush_data( &options, A(m, k) ); + RUNTIME_data_flush( sequence, A(m, k) ); MORSE_TASK_ztrsm( &options, MorseRight, uplo, MorseNoTrans, diag, @@ -145,7 +145,7 @@ void morse_pztrtri(MORSE_enum uplo, MORSE_enum diag, MORSE_desc_t *A, zone, A(k, k), ldak, A(m, k), ldam); } - MORSE_TASK_flush_data( &options, A(k, k) ); + RUNTIME_data_flush( sequence, A(k, k) ); MORSE_TASK_ztrtri( &options, uplo, diag, @@ -155,6 +155,5 @@ void morse_pztrtri(MORSE_enum uplo, MORSE_enum diag, MORSE_desc_t *A, RUNTIME_iteration_pop(morse); } } - MORSE_TASK_flush_desc( &options, uplo, A ); RUNTIME_options_finalize(&options, morse); } diff --git a/compute/pzunglq.c b/compute/pzunglq.c index d764b3a71..bd038ef98 100644 --- a/compute/pzunglq.c +++ b/compute/pzunglq.c @@ -142,10 +142,6 @@ void morse_pzunglq(MORSE_desc_t *A, MORSE_desc_t *Q, MORSE_desc_t *T, MORSE_desc RUNTIME_iteration_pop(morse); } - MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); - MORSE_TASK_flush_desc( &options, MorseUpperLower, Q ); - MORSE_TASK_flush_desc( &options, MorseUpper, T ); - MORSE_TASK_flush_desc( &options, MorseUpperLower, D ); RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); (void)D; diff --git a/compute/pzunglq_param.c b/compute/pzunglq_param.c index 6da5c3070..adc3512ff 100644 --- a/compute/pzunglq_param.c +++ b/compute/pzunglq_param.c @@ -169,14 +169,8 @@ void morse_pzunglq_param(const libhqr_tree_t *qrtree, MORSE_desc_t *A, MORSE_des RUNTIME_iteration_pop(morse); } - MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); - MORSE_TASK_flush_desc( &options, MorseUpperLower, Q ); - MORSE_TASK_flush_desc( &options, MorseUpper, TS ); - MORSE_TASK_flush_desc( &options, MorseUpper, TT ); - MORSE_TASK_flush_desc( &options, MorseUpperLower, D ); free(tiles); RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_flush_all(); (void)D; } diff --git a/compute/pzunglqrh.c b/compute/pzunglqrh.c index bd76fe5be..72836940f 100644 --- a/compute/pzunglqrh.c +++ b/compute/pzunglqrh.c @@ -164,10 +164,6 @@ void morse_pzunglqrh(MORSE_desc_t *A, MORSE_desc_t *Q, RUNTIME_iteration_pop(morse); } - MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); - MORSE_TASK_flush_desc( &options, MorseUpperLower, Q ); - MORSE_TASK_flush_desc( &options, MorseUpper, T ); - MORSE_TASK_flush_desc( &options, MorseUpperLower, D ); RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); (void)D; diff --git a/compute/pzungqr.c b/compute/pzungqr.c index c2e0829d1..6e42f5371 100644 --- a/compute/pzungqr.c +++ b/compute/pzungqr.c @@ -142,10 +142,6 @@ void morse_pzungqr(MORSE_desc_t *A, MORSE_desc_t *Q, MORSE_desc_t *T, MORSE_desc RUNTIME_iteration_pop(morse); } - MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); - MORSE_TASK_flush_desc( &options, MorseUpperLower, Q ); - MORSE_TASK_flush_desc( &options, MorseLower, T ); - MORSE_TASK_flush_desc( &options, MorseUpperLower, D ); RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); (void)D; diff --git a/compute/pzungqr_param.c b/compute/pzungqr_param.c index 13b1be1c6..a0849b634 100644 --- a/compute/pzungqr_param.c +++ b/compute/pzungqr_param.c @@ -175,14 +175,8 @@ void morse_pzungqr_param(const libhqr_tree_t *qrtree, RUNTIME_iteration_pop(morse); } - MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); - MORSE_TASK_flush_desc( &options, MorseUpperLower, Q ); - MORSE_TASK_flush_desc( &options, MorseLower, TS ); - MORSE_TASK_flush_desc( &options, MorseLower, TT ); - MORSE_TASK_flush_desc( &options, MorseUpperLower, D ); free(tiles); RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_flush_all(); (void)D; } diff --git a/compute/pzungqrrh.c b/compute/pzungqrrh.c index c383858d2..1d0516298 100644 --- a/compute/pzungqrrh.c +++ b/compute/pzungqrrh.c @@ -169,12 +169,7 @@ void morse_pzungqrrh(MORSE_desc_t *A, MORSE_desc_t *Q, RUNTIME_iteration_pop(morse); } - MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); - MORSE_TASK_flush_desc( &options, MorseUpperLower, Q ); - MORSE_TASK_flush_desc( &options, MorseLower, T ); - MORSE_TASK_flush_desc( &options, MorseUpperLower, D ); RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_flush_all(); (void)D; } diff --git a/compute/pzunmlq.c b/compute/pzunmlq.c index c6547f3dc..25a5369ac 100644 --- a/compute/pzunmlq.c +++ b/compute/pzunmlq.c @@ -313,10 +313,6 @@ void morse_pzunmlq(MORSE_enum side, MORSE_enum trans, } } - MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); - MORSE_TASK_flush_desc( &options, MorseUpperLower, B ); - MORSE_TASK_flush_desc( &options, MorseUpper, T ); - MORSE_TASK_flush_desc( &options, MorseUpperLower, D ); RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); (void)D; diff --git a/compute/pzunmlq_param.c b/compute/pzunmlq_param.c index 0b5ef65f8..5ad102180 100644 --- a/compute/pzunmlq_param.c +++ b/compute/pzunmlq_param.c @@ -432,15 +432,9 @@ void morse_pzunmlq_param(const libhqr_tree_t *qrtree, } } - MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); - MORSE_TASK_flush_desc( &options, MorseUpperLower, B ); - MORSE_TASK_flush_desc( &options, MorseUpper, TS ); - MORSE_TASK_flush_desc( &options, MorseUpper, TT ); - MORSE_TASK_flush_desc( &options, MorseUpperLower, D ); free(tiles); RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_flush_all(); (void)D; } diff --git a/compute/pzunmlqrh.c b/compute/pzunmlqrh.c index ac288111c..371d08e4f 100644 --- a/compute/pzunmlqrh.c +++ b/compute/pzunmlqrh.c @@ -408,12 +408,7 @@ void morse_pzunmlqrh(MORSE_enum side, MORSE_enum trans, } } - MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); - MORSE_TASK_flush_desc( &options, MorseUpperLower, B ); - MORSE_TASK_flush_desc( &options, MorseUpper, T ); - MORSE_TASK_flush_desc( &options, MorseUpperLower, D ); RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_flush_all(); (void)D; } diff --git a/compute/pzunmqr.c b/compute/pzunmqr.c index 86dc63bd7..0f05f4edf 100644 --- a/compute/pzunmqr.c +++ b/compute/pzunmqr.c @@ -318,10 +318,6 @@ void morse_pzunmqr(MORSE_enum side, MORSE_enum trans, } } - MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); - MORSE_TASK_flush_desc( &options, MorseUpperLower, B ); - MORSE_TASK_flush_desc( &options, MorseLower, T ); - MORSE_TASK_flush_desc( &options, MorseUpperLower, D ); RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); (void)D; diff --git a/compute/pzunmqr_param.c b/compute/pzunmqr_param.c index 5f7b20032..ae9b46d5e 100644 --- a/compute/pzunmqr_param.c +++ b/compute/pzunmqr_param.c @@ -431,15 +431,9 @@ void morse_pzunmqr_param(const libhqr_tree_t *qrtree, } } - MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); - MORSE_TASK_flush_desc( &options, MorseUpperLower, B ); - MORSE_TASK_flush_desc( &options, MorseLower, TS ); - MORSE_TASK_flush_desc( &options, MorseLower, TT ); - MORSE_TASK_flush_desc( &options, MorseUpperLower, D ); free(tiles); RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); - MORSE_TASK_flush_all(); (void)D; } diff --git a/compute/pzunmqrrh.c b/compute/pzunmqrrh.c index 80f9879db..d6d57629e 100644 --- a/compute/pzunmqrrh.c +++ b/compute/pzunmqrrh.c @@ -413,10 +413,6 @@ void morse_pzunmqrrh(MORSE_enum side, MORSE_enum trans, } } - MORSE_TASK_flush_desc( &options, MorseUpperLower, A ); - MORSE_TASK_flush_desc( &options, MorseUpperLower, B ); - MORSE_TASK_flush_desc( &options, MorseLower, T ); - MORSE_TASK_flush_desc( &options, MorseUpperLower, D ); RUNTIME_options_ws_free(&options); RUNTIME_options_finalize(&options, morse); (void)D; diff --git a/compute/zgeadd.c b/compute/zgeadd.c index bb3e9afec..b6e85b322 100644 --- a/compute/zgeadd.c +++ b/compute/zgeadd.c @@ -249,8 +249,8 @@ int MORSE_zgeadd_Tile(MORSE_enum trans, } morse_sequence_create(morse, &sequence); MORSE_zgeadd_Tile_Async(trans, alpha, A, beta, B, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( B, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zgelqf.c b/compute/zgelqf.c index 9dcd6e8f1..55b928483 100644 --- a/compute/zgelqf.c +++ b/compute/zgelqf.c @@ -200,7 +200,7 @@ int MORSE_zgelqf_Tile(MORSE_desc_t *A, MORSE_desc_t *T) } morse_sequence_create(morse, &sequence); MORSE_zgelqf_Tile_Async(A, T, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); + RUNTIME_desc_flush( A, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zgelqf_param.c b/compute/zgelqf_param.c index 215f6efd5..d650ba8ad 100644 --- a/compute/zgelqf_param.c +++ b/compute/zgelqf_param.c @@ -197,7 +197,7 @@ int MORSE_zgelqf_param_Tile(const libhqr_tree_t *qrtree, MORSE_desc_t *A, MORSE_ } morse_sequence_create(morse, &sequence); MORSE_zgelqf_param_Tile_Async(qrtree, A, TS, TT, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); + RUNTIME_desc_flush( A, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zgelqs.c b/compute/zgelqs.c index c82f52ecd..b9410fd3d 100644 --- a/compute/zgelqs.c +++ b/compute/zgelqs.c @@ -222,8 +222,8 @@ int MORSE_zgelqs_Tile(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *B) } morse_sequence_create(morse, &sequence); MORSE_zgelqs_Tile_Async(A, T, B, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( B, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zgelqs_param.c b/compute/zgelqs_param.c index 76384fb7d..ac5c26520 100644 --- a/compute/zgelqs_param.c +++ b/compute/zgelqs_param.c @@ -227,8 +227,8 @@ int MORSE_zgelqs_param_Tile(const libhqr_tree_t *qrtree, MORSE_desc_t *A, MORSE_ } morse_sequence_create(morse, &sequence); MORSE_zgelqs_param_Tile_Async(qrtree, A, TS, TT, B, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( B, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zgels.c b/compute/zgels.c index 9a83d4fa9..4ab15cb6d 100644 --- a/compute/zgels.c +++ b/compute/zgels.c @@ -286,8 +286,8 @@ int MORSE_zgels_Tile(MORSE_enum trans, MORSE_desc_t *A, } morse_sequence_create(morse, &sequence); MORSE_zgels_Tile_Async(trans, A, T, B, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( B, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zgels_param.c b/compute/zgels_param.c index 4588de3a1..9e91871be 100644 --- a/compute/zgels_param.c +++ b/compute/zgels_param.c @@ -291,8 +291,8 @@ int MORSE_zgels_param_Tile(const libhqr_tree_t *qrtree, MORSE_enum trans, MORSE_ } morse_sequence_create(morse, &sequence); MORSE_zgels_param_Tile_Async(qrtree, trans, A, TS, TT, B, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( B, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zgemm.c b/compute/zgemm.c index b69e804a3..332b54006 100644 --- a/compute/zgemm.c +++ b/compute/zgemm.c @@ -321,9 +321,9 @@ int MORSE_zgemm_Tile(MORSE_enum transA, MORSE_enum transB, } morse_sequence_create(morse, &sequence); MORSE_zgemm_Tile_Async(transA, transB, alpha, A, B, beta, C, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( B, sequence ); - RUNTIME_desc_getoncpu_async( C, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); + RUNTIME_desc_flush( C, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zgeqrf.c b/compute/zgeqrf.c index 04433b567..5e500472b 100644 --- a/compute/zgeqrf.c +++ b/compute/zgeqrf.c @@ -199,7 +199,7 @@ int MORSE_zgeqrf_Tile(MORSE_desc_t *A, MORSE_desc_t *T) } morse_sequence_create(morse, &sequence); MORSE_zgeqrf_Tile_Async(A, T, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); + RUNTIME_desc_flush( A, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zgeqrf_param.c b/compute/zgeqrf_param.c index 3924becd6..a67f508db 100644 --- a/compute/zgeqrf_param.c +++ b/compute/zgeqrf_param.c @@ -206,7 +206,7 @@ int MORSE_zgeqrf_param_Tile(const libhqr_tree_t *qrtree, MORSE_desc_t *A, MORSE_ } morse_sequence_create(morse, &sequence); MORSE_zgeqrf_param_Tile_Async(qrtree, A, TS, TT, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); + RUNTIME_desc_flush( A, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zgeqrs.c b/compute/zgeqrs.c index 99e7cea47..29b962f4f 100644 --- a/compute/zgeqrs.c +++ b/compute/zgeqrs.c @@ -221,9 +221,9 @@ int MORSE_zgeqrs_Tile(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *B) } morse_sequence_create(morse, &sequence); MORSE_zgeqrs_Tile_Async(A, T, B, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( T, sequence ); - RUNTIME_desc_getoncpu_async( B, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( T, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zgeqrs_param.c b/compute/zgeqrs_param.c index 83d16068e..6e6cb28b3 100644 --- a/compute/zgeqrs_param.c +++ b/compute/zgeqrs_param.c @@ -216,10 +216,10 @@ int MORSE_zgeqrs_param_Tile(const libhqr_tree_t *qrtree, MORSE_desc_t *A, MORSE_ } morse_sequence_create(morse, &sequence); MORSE_zgeqrs_param_Tile_Async(qrtree, A, TS, TT, B, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( TS, sequence ); - RUNTIME_desc_getoncpu_async( TT, sequence ); - RUNTIME_desc_getoncpu_async( B, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( TS, sequence ); + RUNTIME_desc_flush( TT, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zgesv_incpiv.c b/compute/zgesv_incpiv.c index 59b3b9f81..ca0ca1e6a 100644 --- a/compute/zgesv_incpiv.c +++ b/compute/zgesv_incpiv.c @@ -226,8 +226,8 @@ int MORSE_zgesv_incpiv_Tile(MORSE_desc_t *A, MORSE_desc_t *L, int *IPIV, MORSE_d } morse_sequence_create(morse, &sequence); MORSE_zgesv_incpiv_Tile_Async(A, L, IPIV, B, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( B, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zgesv_nopiv.c b/compute/zgesv_nopiv.c index 0e8ae5277..bc0d9bdf9 100644 --- a/compute/zgesv_nopiv.c +++ b/compute/zgesv_nopiv.c @@ -218,8 +218,8 @@ int MORSE_zgesv_nopiv_Tile(MORSE_desc_t *A, MORSE_desc_t *B) } morse_sequence_create(morse, &sequence); MORSE_zgesv_nopiv_Tile_Async(A, B, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( B, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zgetrf_incpiv.c b/compute/zgetrf_incpiv.c index 9ea8c5562..aaf96f147 100644 --- a/compute/zgetrf_incpiv.c +++ b/compute/zgetrf_incpiv.c @@ -204,7 +204,7 @@ int MORSE_zgetrf_incpiv_Tile(MORSE_desc_t *A, MORSE_desc_t *L, int *IPIV) } morse_sequence_create(morse, &sequence); MORSE_zgetrf_incpiv_Tile_Async(A, L, IPIV, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); + RUNTIME_desc_flush( A, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zgetrf_nopiv.c b/compute/zgetrf_nopiv.c index 14546df8d..5e56c4a8b 100644 --- a/compute/zgetrf_nopiv.c +++ b/compute/zgetrf_nopiv.c @@ -192,7 +192,7 @@ int MORSE_zgetrf_nopiv_Tile(MORSE_desc_t *A) } morse_sequence_create(morse, &sequence); MORSE_zgetrf_nopiv_Tile_Async(A, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); + RUNTIME_desc_flush( A, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zgetrs_incpiv.c b/compute/zgetrs_incpiv.c index 5cf6d483a..195b0895d 100644 --- a/compute/zgetrs_incpiv.c +++ b/compute/zgetrs_incpiv.c @@ -229,8 +229,8 @@ int MORSE_zgetrs_incpiv_Tile(MORSE_desc_t *A, MORSE_desc_t *L, int *IPIV, MORSE_ } morse_sequence_create(morse, &sequence); MORSE_zgetrs_incpiv_Tile_Async(A, L, IPIV, B, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( B, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zgetrs_nopiv.c b/compute/zgetrs_nopiv.c index 8be6d99d9..f92c66abf 100644 --- a/compute/zgetrs_nopiv.c +++ b/compute/zgetrs_nopiv.c @@ -217,8 +217,8 @@ int MORSE_zgetrs_nopiv_Tile(MORSE_desc_t *A, MORSE_desc_t *B) } morse_sequence_create(morse, &sequence); MORSE_zgetrs_nopiv_Tile_Async(A, B, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( B, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zheevd.c b/compute/zheevd.c index 548c38b9e..c7f85cce3 100644 --- a/compute/zheevd.c +++ b/compute/zheevd.c @@ -261,8 +261,8 @@ int MORSE_zheevd_Tile(MORSE_enum jobz, MORSE_enum uplo, MORSE_zheevd_Tile_Async(jobz, uplo, A, W, T, sequence, &request); morse_sequence_wait(morse, sequence); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( T, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( T, sequence ); status = sequence->status; morse_sequence_destroy(morse, sequence); diff --git a/compute/zhemm.c b/compute/zhemm.c index ad7429942..5b6b31852 100644 --- a/compute/zhemm.c +++ b/compute/zhemm.c @@ -286,9 +286,9 @@ int MORSE_zhemm_Tile(MORSE_enum side, MORSE_enum uplo, } morse_sequence_create(morse, &sequence); MORSE_zhemm_Tile_Async(side, uplo, alpha, A, B, beta, C, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( B, sequence ); - RUNTIME_desc_getoncpu_async( C, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); + RUNTIME_desc_flush( C, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zher2k.c b/compute/zher2k.c index 2f41bd1a7..e8f2e6d89 100644 --- a/compute/zher2k.c +++ b/compute/zher2k.c @@ -285,9 +285,9 @@ int MORSE_zher2k_Tile(MORSE_enum uplo, MORSE_enum trans, } morse_sequence_create(morse, &sequence); MORSE_zher2k_Tile_Async(uplo, trans, alpha, A, B, beta, C, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( B, sequence ); - RUNTIME_desc_getoncpu_async( C, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); + RUNTIME_desc_flush( C, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zherk.c b/compute/zherk.c index e0a0a1b87..6fbe72d55 100644 --- a/compute/zherk.c +++ b/compute/zherk.c @@ -261,8 +261,8 @@ int MORSE_zherk_Tile(MORSE_enum uplo, MORSE_enum trans, } morse_sequence_create(morse, &sequence); MORSE_zherk_Tile_Async(uplo, trans, alpha, A, beta, C, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( C, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( C, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zlange.c b/compute/zlange.c index a11499a2b..82831613f 100644 --- a/compute/zlange.c +++ b/compute/zlange.c @@ -147,7 +147,7 @@ double MORSE_zlange(MORSE_enum norm, int M, int N, /* if ( MORSE_TRANSLATION == MORSE_OUTOFPLACE ) {*/ morse_zooptile2lap(descA, A, NB, NB, LDA, N, sequence, &request); - RUNTIME_desc_getoncpu_async( &descA, sequence ); + RUNTIME_desc_flush( &descA, sequence ); morse_sequence_wait(morse, sequence); morse_desc_mat_free(&descA); /* } else {*/ diff --git a/compute/zlanhe.c b/compute/zlanhe.c index 7130bd6bd..e666221ac 100644 --- a/compute/zlanhe.c +++ b/compute/zlanhe.c @@ -147,7 +147,7 @@ double MORSE_zlanhe(MORSE_enum norm, MORSE_enum uplo, int N, /* if ( MORSE_TRANSLATION == MORSE_OUTOFPLACE ) {*/ morse_zooptile2lap(descA, A, NB, NB, LDA, N, sequence, &request); - RUNTIME_desc_getoncpu_async( &descA, sequence ); + RUNTIME_desc_flush( &descA, sequence ); morse_sequence_wait(morse, sequence); morse_desc_mat_free(&descA); /* } else {*/ diff --git a/compute/zlauum.c b/compute/zlauum.c index 23ac0ebb2..8ef3f032d 100644 --- a/compute/zlauum.c +++ b/compute/zlauum.c @@ -201,7 +201,7 @@ int MORSE_zlauum_Tile(MORSE_enum uplo, MORSE_desc_t *A) } morse_sequence_create(morse, &sequence); MORSE_zlauum_Tile_Async(uplo, A, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); + RUNTIME_desc_flush( A, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zposv.c b/compute/zposv.c index 4bcbd9c59..5fe1ab279 100644 --- a/compute/zposv.c +++ b/compute/zposv.c @@ -244,8 +244,8 @@ int MORSE_zposv_Tile(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B) } morse_sequence_create(morse, &sequence); MORSE_zposv_Tile_Async(uplo, A, B, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( B, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zpotrf.c b/compute/zpotrf.c index 63c1b7b2c..082618489 100644 --- a/compute/zpotrf.c +++ b/compute/zpotrf.c @@ -213,7 +213,7 @@ int MORSE_zpotrf_Tile(MORSE_enum uplo, MORSE_desc_t *A) } morse_sequence_create(morse, &sequence); MORSE_zpotrf_Tile_Async(uplo, A, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); + RUNTIME_desc_flush( A, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zpotri.c b/compute/zpotri.c index cf15fe29e..801f077cc 100644 --- a/compute/zpotri.c +++ b/compute/zpotri.c @@ -201,7 +201,7 @@ int MORSE_zpotri_Tile(MORSE_enum uplo, MORSE_desc_t *A) } morse_sequence_create(morse, &sequence); MORSE_zpotri_Tile_Async(uplo, A, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); + RUNTIME_desc_flush( A, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zpotrimm.c b/compute/zpotrimm.c index 2d2089164..180725746 100644 --- a/compute/zpotrimm.c +++ b/compute/zpotrimm.c @@ -219,7 +219,7 @@ int MORSE_zpotrimm_Tile(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE } morse_sequence_create(morse, &sequence); MORSE_zpotrimm_Tile_Async(uplo, A, B, C, sequence, &request); - RUNTIME_desc_getoncpu_async( C, sequence ); + RUNTIME_desc_flush( C, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zpotrs.c b/compute/zpotrs.c index 21cb261cf..0494b6884 100644 --- a/compute/zpotrs.c +++ b/compute/zpotrs.c @@ -219,8 +219,8 @@ int MORSE_zpotrs_Tile(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B) } morse_sequence_create(morse, &sequence); MORSE_zpotrs_Tile_Async(uplo, A, B, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( B, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zsymm.c b/compute/zsymm.c index 51fdca0bd..344f04da6 100644 --- a/compute/zsymm.c +++ b/compute/zsymm.c @@ -286,9 +286,9 @@ int MORSE_zsymm_Tile(MORSE_enum side, MORSE_enum uplo, } morse_sequence_create(morse, &sequence); MORSE_zsymm_Tile_Async(side, uplo, alpha, A, B, beta, C, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( B, sequence ); - RUNTIME_desc_getoncpu_async( C, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); + RUNTIME_desc_flush( C, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zsyr2k.c b/compute/zsyr2k.c index 9ad897f4e..50c9b234e 100644 --- a/compute/zsyr2k.c +++ b/compute/zsyr2k.c @@ -285,9 +285,9 @@ int MORSE_zsyr2k_Tile(MORSE_enum uplo, MORSE_enum trans, } morse_sequence_create(morse, &sequence); MORSE_zsyr2k_Tile_Async(uplo, trans, alpha, A, B, beta, C, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( B, sequence ); - RUNTIME_desc_getoncpu_async( C, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); + RUNTIME_desc_flush( C, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zsyrk.c b/compute/zsyrk.c index ac57f0292..4b29d6b7f 100644 --- a/compute/zsyrk.c +++ b/compute/zsyrk.c @@ -261,8 +261,8 @@ int MORSE_zsyrk_Tile(MORSE_enum uplo, MORSE_enum trans, } morse_sequence_create(morse, &sequence); MORSE_zsyrk_Tile_Async(uplo, trans, alpha, A, beta, C, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( C, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( C, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zsysv.c b/compute/zsysv.c index 818b77282..d39bda8bf 100644 --- a/compute/zsysv.c +++ b/compute/zsysv.c @@ -237,8 +237,8 @@ int MORSE_zsysv_Tile(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B) } morse_sequence_create(morse, &sequence); MORSE_zsysv_Tile_Async(uplo, A, B, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( B, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zsytrf.c b/compute/zsytrf.c index c0cce1f3d..c2e3eeead 100644 --- a/compute/zsytrf.c +++ b/compute/zsytrf.c @@ -202,7 +202,7 @@ int MORSE_zsytrf_Tile(MORSE_enum uplo, MORSE_desc_t *A) } morse_sequence_create(morse, &sequence); MORSE_zsytrf_Tile_Async(uplo, A, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); + RUNTIME_desc_flush( A, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zsytrs.c b/compute/zsytrs.c index 7411d2479..df6f7d9de 100644 --- a/compute/zsytrs.c +++ b/compute/zsytrs.c @@ -215,8 +215,8 @@ int MORSE_zsytrs_Tile(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B) } morse_sequence_create(morse, &sequence); MORSE_zsytrs_Tile_Async(uplo, A, B, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( B, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/ztile.c b/compute/ztile.c index cdeb0e1e9..6e1ae3843 100644 --- a/compute/ztile.c +++ b/compute/ztile.c @@ -84,7 +84,7 @@ int MORSE_zLapack_to_Tile(MORSE_Complex64_t *Af77, int LDA, MORSE_desc_t *A) morse_pzlapack_to_tile( Af77, LDA, A, sequence, &request); RUNTIME_sequence_wait( morse, sequence ); - RUNTIME_desc_getoncpu_async( A , sequence ); + RUNTIME_desc_flush( A , sequence ); status = sequence->status; morse_sequence_destroy(morse, sequence); @@ -211,7 +211,7 @@ int MORSE_zTile_to_Lapack(MORSE_desc_t *A, MORSE_Complex64_t *Af77, int LDA) morse_pztile_to_lapack( A, Af77, LDA, sequence, &request); RUNTIME_sequence_wait( morse, sequence ); - RUNTIME_desc_getoncpu_async( A , sequence ); + RUNTIME_desc_flush( A , sequence ); status = sequence->status; morse_sequence_destroy(morse, sequence); return status; diff --git a/compute/ztpgqrt.c b/compute/ztpgqrt.c index f5f2b0595..bf6fee28d 100644 --- a/compute/ztpgqrt.c +++ b/compute/ztpgqrt.c @@ -296,8 +296,8 @@ int MORSE_ztpgqrt_Tile( int L, } morse_sequence_create(morse, &sequence); MORSE_ztpgqrt_Tile_Async(L, V1, T1, V2, T2, Q1, Q2, sequence, &request); - RUNTIME_desc_getoncpu_async( Q1, sequence ); - RUNTIME_desc_getoncpu_async( Q2, sequence ); + RUNTIME_desc_flush( Q1, sequence ); + RUNTIME_desc_flush( Q2, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/ztpqrt.c b/compute/ztpqrt.c index b8cf1b384..3298638e0 100644 --- a/compute/ztpqrt.c +++ b/compute/ztpqrt.c @@ -268,8 +268,8 @@ int MORSE_ztpqrt_Tile( int L, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_desc_t *T } morse_sequence_create(morse, &sequence); MORSE_ztpqrt_Tile_Async(L, A, B, T, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( B, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/ztradd.c b/compute/ztradd.c index ab16ed277..7bbf05f99 100644 --- a/compute/ztradd.c +++ b/compute/ztradd.c @@ -265,8 +265,8 @@ int MORSE_ztradd_Tile(MORSE_enum uplo, MORSE_enum trans, } morse_sequence_create(morse, &sequence); MORSE_ztradd_Tile_Async(uplo, trans, alpha, A, beta, B, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( B, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/ztrmm.c b/compute/ztrmm.c index 1e7411a54..434621d6d 100644 --- a/compute/ztrmm.c +++ b/compute/ztrmm.c @@ -287,8 +287,8 @@ int MORSE_ztrmm_Tile(MORSE_enum side, MORSE_enum uplo, } morse_sequence_create(morse, &sequence); MORSE_ztrmm_Tile_Async(side, uplo, transA, diag, alpha, A, B, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( B, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/ztrsm.c b/compute/ztrsm.c index 282ec5e2e..db4e89dec 100644 --- a/compute/ztrsm.c +++ b/compute/ztrsm.c @@ -285,8 +285,8 @@ int MORSE_ztrsm_Tile(MORSE_enum side, MORSE_enum uplo, } morse_sequence_create(morse, &sequence); MORSE_ztrsm_Tile_Async(side, uplo, transA, diag, alpha, A, B, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( B, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/ztrsmpl.c b/compute/ztrsmpl.c index 6bac3866c..043983410 100644 --- a/compute/ztrsmpl.c +++ b/compute/ztrsmpl.c @@ -214,8 +214,8 @@ int MORSE_ztrsmpl_Tile(MORSE_desc_t *A, MORSE_desc_t *L, int *IPIV, MORSE_desc_t } morse_sequence_create(morse, &sequence); MORSE_ztrsmpl_Tile_Async(A, L, IPIV, B, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( B, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( B, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/ztrtri.c b/compute/ztrtri.c index 01ca06dbc..2f2d36c60 100644 --- a/compute/ztrtri.c +++ b/compute/ztrtri.c @@ -220,7 +220,7 @@ int MORSE_ztrtri_Tile(MORSE_enum uplo, MORSE_enum diag, MORSE_desc_t *A) } morse_sequence_create(morse, &sequence); MORSE_ztrtri_Tile_Async(uplo, diag, A, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); + RUNTIME_desc_flush( A, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zunglq.c b/compute/zunglq.c index ff911006d..7ececcb75 100644 --- a/compute/zunglq.c +++ b/compute/zunglq.c @@ -216,8 +216,8 @@ int MORSE_zunglq_Tile(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *Q) } morse_sequence_create(morse, &sequence); MORSE_zunglq_Tile_Async(A, T, Q, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( Q, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( Q, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zunglq_param.c b/compute/zunglq_param.c index 957ae5b3c..5b6d30e60 100644 --- a/compute/zunglq_param.c +++ b/compute/zunglq_param.c @@ -213,8 +213,8 @@ int MORSE_zunglq_param_Tile(const libhqr_tree_t *qrtree, MORSE_desc_t *A, MORSE_ } morse_sequence_create(morse, &sequence); MORSE_zunglq_param_Tile_Async(qrtree, A, TS, TT, Q, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( Q, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( Q, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zungqr.c b/compute/zungqr.c index 9e0b3d1bf..822dc4e56 100644 --- a/compute/zungqr.c +++ b/compute/zungqr.c @@ -215,8 +215,8 @@ int MORSE_zungqr_Tile(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *Q) } morse_sequence_create(morse, &sequence); MORSE_zungqr_Tile_Async(A, T, Q, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( Q, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( Q, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zungqr_param.c b/compute/zungqr_param.c index 5a3b71855..af88ea598 100644 --- a/compute/zungqr_param.c +++ b/compute/zungqr_param.c @@ -214,8 +214,8 @@ int MORSE_zungqr_param_Tile(const libhqr_tree_t *qrtree, MORSE_desc_t *A, MORSE_ } morse_sequence_create(morse, &sequence); MORSE_zungqr_param_Tile_Async(qrtree, A, TS, TT, Q, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( Q, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( Q, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zunmlq.c b/compute/zunmlq.c index ef13e6fca..81535c19d 100644 --- a/compute/zunmlq.c +++ b/compute/zunmlq.c @@ -269,8 +269,8 @@ int MORSE_zunmlq_Tile(MORSE_enum side, MORSE_enum trans, } morse_sequence_create(morse, &sequence); MORSE_zunmlq_Tile_Async(side, trans, A, T, C, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( C, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( C, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zunmlq_param.c b/compute/zunmlq_param.c index 6a2fdcfa3..b6f746d02 100644 --- a/compute/zunmlq_param.c +++ b/compute/zunmlq_param.c @@ -268,8 +268,8 @@ int MORSE_zunmlq_param_Tile(const libhqr_tree_t *qrtree, MORSE_enum side, MORSE_ } morse_sequence_create(morse, &sequence); MORSE_zunmlq_param_Tile_Async(qrtree, side, trans, A, TS, TT, C, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( C, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( C, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zunmqr.c b/compute/zunmqr.c index ab3d7659d..4464aaecb 100644 --- a/compute/zunmqr.c +++ b/compute/zunmqr.c @@ -273,8 +273,8 @@ int MORSE_zunmqr_Tile(MORSE_enum side, MORSE_enum trans, } morse_sequence_create(morse, &sequence); MORSE_zunmqr_Tile_Async(side, trans, A, T, C, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( C, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( C, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zunmqr_param.c b/compute/zunmqr_param.c index a8cb3ae25..d285caabf 100644 --- a/compute/zunmqr_param.c +++ b/compute/zunmqr_param.c @@ -274,8 +274,8 @@ int MORSE_zunmqr_param_Tile(const libhqr_tree_t *qrtree, MORSE_enum side, MORSE_ } morse_sequence_create(morse, &sequence); MORSE_zunmqr_param_Tile_Async(qrtree, side, trans, A, TS, TT, C, sequence, &request); - RUNTIME_desc_getoncpu_async( A, sequence ); - RUNTIME_desc_getoncpu_async( C, sequence ); + RUNTIME_desc_flush( A, sequence ); + RUNTIME_desc_flush( C, sequence ); morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/control/control.c b/control/control.c index fb742b5b4..58bc403c1 100644 --- a/control/control.c +++ b/control/control.c @@ -134,7 +134,7 @@ int MORSE_Finalize(void) morse_error("MORSE_Finalize()", "MORSE not initialized"); return MORSE_ERR_NOT_INITIALIZED; } - MORSE_TASK_flush_all(); + RUNTIME_flush(); # if !defined(CHAMELEON_SIMULATION) RUNTIME_barrier(morse); # endif diff --git a/control/descriptor.c b/control/descriptor.c index 798c97f50..de7d216bd 100644 --- a/control/descriptor.c +++ b/control/descriptor.c @@ -809,8 +809,7 @@ int MORSE_Desc_Release (MORSE_desc_t *desc) { * * @ingroup Descriptor * - * MORSE_Desc_Getoncpu - Apply an acquire and a release on the data of the - * descriptors so that its values are up-to-date in the main memory. + * MORSE_Desc_Flush - Flushes the data in the sequence when they won't be reused. This calls cleans up the distributed communication caches, and transfer the data back to the CPU. * ****************************************************************************** * @@ -823,8 +822,11 @@ int MORSE_Desc_Release (MORSE_desc_t *desc) { * \retval MORSE_SUCCESS successful exit * *****************************************************************************/ -int MORSE_Desc_Getoncpu(MORSE_desc_t *desc) { - return RUNTIME_desc_getoncpu( desc ); +int MORSE_Desc_Flush( MORSE_desc_t *desc, + MORSE_sequence_t *sequence ) +{ + RUNTIME_desc_flush( desc, sequence ); + return MORSE_SUCCESS; } /** diff --git a/doc/orgmode/chapters/using.org b/doc/orgmode/chapters/using.org index 5bc65eaed..7bf39140f 100644 --- a/doc/orgmode/chapters/using.org +++ b/doc/orgmode/chapters/using.org @@ -1004,7 +1004,7 @@ Ensure that all data are up-to-date in main memory (even if some tasks have been processed on GPUs). #+begin_src - int MORSE_Desc_Getoncpu(MORSE_desc_t *desc); + int MORSE_Desc_Flush(MORSE_desc_t *desc, MORSE_sequence_t *sequence); #+end_src Set the sizes for the MPI tags. Default value: tag_width=31, diff --git a/doc/texinfo/chapters/using.texi b/doc/texinfo/chapters/using.texi index bb50d74f5..ae7dbe100 100644 --- a/doc/texinfo/chapters/using.texi +++ b/doc/texinfo/chapters/using.texi @@ -830,7 +830,7 @@ int MORSE_Desc_Destroy (MORSE_desc_t **desc); Ensure that all data are up-to-date in main memory (even if some tasks have been processed on GPUs) @verbatim -int MORSE_Desc_Getoncpu(MORSE_desc_t *desc); +int MORSE_Desc_Flush(MORSE_desc_t *desc, MORSE_sequence_t *sequence); @end verbatim @node Options routines diff --git a/example/lapack_to_morse/step4.c b/example/lapack_to_morse/step4.c index b4111cdab..3c37878e5 100644 --- a/example/lapack_to_morse/step4.c +++ b/example/lapack_to_morse/step4.c @@ -141,15 +141,15 @@ int main(int argc, char *argv[]) { */ MORSE_dpotrs_Tile_Async( UPLO, descA, descX, sequence, &request); + /* Ensure that all data processed on the gpus we are depending on are back + * in main memory */ + MORSE_Desc_Flush( descA, sequence ); + MORSE_Desc_Flush( descX, sequence ); + /* Synchronization barrier (the runtime ensures that all submitted tasks * have been terminated */ MORSE_Sequence_Wait(sequence); - /* Ensure that all data processed on the gpus we are depending on are back - * in main memory */ - RUNTIME_desc_getoncpu(descA); - RUNTIME_desc_getoncpu(descX); - status = sequence->status; if ( status != 0 ) { fprintf(stderr, "Error in computation (%d)\n", status); diff --git a/example/lapack_to_morse/step5.c b/example/lapack_to_morse/step5.c index 46aa1d29a..addff8e7c 100644 --- a/example/lapack_to_morse/step5.c +++ b/example/lapack_to_morse/step5.c @@ -145,15 +145,15 @@ int main(int argc, char *argv[]) { */ MORSE_dpotrs_Tile_Async( UPLO, descA, descX, sequence, &request); + /* Ensure that all data processed on the gpus we are depending on are back + * in main memory */ + MORSE_Desc_Flush( descA, sequence ); + MORSE_Desc_Flush( descX, sequence ); + /* Synchronization barrier (the runtime ensures that all submitted tasks * have been terminated */ MORSE_Sequence_Wait(sequence); - /* Ensure that all data processed on the gpus we are depending on are back - * in main memory */ - RUNTIME_desc_getoncpu(descA); - RUNTIME_desc_getoncpu(descX); - status = sequence->status; if ( status != 0 ) { fprintf(stderr, "Error in computation (%d)\n", status); diff --git a/example/lapack_to_morse/step6.c b/example/lapack_to_morse/step6.c index 68850db3f..074d4cfa8 100644 --- a/example/lapack_to_morse/step6.c +++ b/example/lapack_to_morse/step6.c @@ -167,15 +167,15 @@ int main(int argc, char *argv[]) { */ MORSE_dpotrs_Tile_Async( UPLO, descA, descX, sequence, &request); + /* Ensure that all data processed on the gpus we are depending on are back + * in main memory */ + MORSE_Desc_Flush( descA, sequence ); + MORSE_Desc_Flush( descX, sequence ); + /* Synchronization barrier (the runtime ensures that all submitted tasks * have been terminated */ MORSE_Sequence_Wait(sequence); - /* Ensure that all data processed on the gpus we are depending on are back - * in main memory */ - RUNTIME_desc_getoncpu(descA); - RUNTIME_desc_getoncpu(descX); - status = sequence->status; if ( status != 0 ) { fprintf(stderr, "Error in computation (%d)\n", status); diff --git a/example/lapack_to_morse/step7.c b/example/lapack_to_morse/step7.c index 15e00f587..fbb48e4e5 100644 --- a/example/lapack_to_morse/step7.c +++ b/example/lapack_to_morse/step7.c @@ -175,15 +175,15 @@ int main(int argc, char *argv[]) { */ MORSE_dpotrs_Tile_Async( UPLO, descA, descX, sequence, &request); + /* Ensure that all data processed on the gpus we are depending on are back + * in main memory */ + MORSE_Desc_Flush( descA, sequence ); + MORSE_Desc_Flush( descX, sequence ); + /* Synchronization barrier (the runtime ensures that all submitted tasks * have been terminated */ MORSE_Sequence_Wait(sequence); - /* Ensure that all data processed on the gpus we are depending on are back - * in main memory */ - RUNTIME_desc_getoncpu(descA); - RUNTIME_desc_getoncpu(descX); - status = sequence->status; if ( status != 0 ) { fprintf(stderr, "Error in computation (%d)\n", status); diff --git a/include/chameleon/morse_runtime.h b/include/chameleon/morse_runtime.h index c9f098f3f..76c83ce85 100644 --- a/include/chameleon/morse_runtime.h +++ b/include/chameleon/morse_runtime.h @@ -394,52 +394,73 @@ int RUNTIME_desc_release( const MORSE_desc_t *desc ); /** - * @brief Make sure the data is brought back to the CPU main memory at the - * end of the algorithm. + * @brief Flush all pieces of data from a descriptor. + * + * This function marks all pieces of data from the descriptor as unused in the future to: + * - cleanup the data from the distributed cache if present. + * - mark for eviction from the GPU if space is needed + * - move the data back to the main memory * * @param[in] desc - * The descriptor to release. + * The descriptor to flush. * - * @retval MORSE_SUCCESS on success + * @param[in] sequence + * The sequence in which the data is used. */ -int -RUNTIME_desc_getoncpu( const MORSE_desc_t *desc ); +void +RUNTIME_desc_flush( const MORSE_desc_t *desc, + const MORSE_sequence_t *sequence ); /** - * @brief Make sure the data will be brought back to the CPU main memory at the - * end of the algorithm. + * @brief Flush all data submitted to the runtime systems from the distributed + * cache, and/or mark for eviction from the GPU memory. * - * This function is a asynchronous call that submit the data movement from - * remote memory to the main memory. This call must be completed by a call to - * RUNTIME_sequence_wait() to ensure that all data have been moved. - * Users should avoid to call this function as it sequentially moves back the - * data from outside the main memory to main memory, and should prefer - * RUNTIME_desc_getoncpu_async(). + * This function flushes all data from the distributed cache of the runtime system. + */ +void +RUNTIME_flush( ); + +/** + * @brief Flush a single piece of data. * - * @param[in] desc - * The descriptor to release. + * This function marks a piece of data as unused in the future to: + * - cleanup the data from the distributed cache if present. + * - mark for eviction from the GPU if space is needed + * - move the data back to the main memory * * @param[in] sequence - * The sequence to which submit the data movements + * The sequence in which the data is used. * - * @retval MORSE_SUCCESS on success + * @param[in] A + * The descriptor to which the piece of data belongs. + * + * @param[in] Am + * The row coordinate of the piece of data in the matrix + * + * @param[in] An + * The column coordinate of the piece of data in the matrix */ -int -RUNTIME_desc_getoncpu_async( const MORSE_desc_t *desc, - MORSE_sequence_t *sequence ); +void +RUNTIME_data_flush( const MORSE_sequence_t *sequence, + const MORSE_desc_t *A, int Am, int An ); /** * @brief Get the pointer to the data or the runtime handler associated to the * piece of data (m, n) in desc. * - * @param[in] desc - * The descriptor to release. + * @param[in] A + * The descriptor to which belongs the piece of data. * - * @retval MORSE_SUCCESS on success + * @param[in] Am + * The row coordinate of the piece of data in the matrix + * + * @param[in] An + * The column coordinate of the piece of data in the matrix + * + * @retval The runtime handler address of the piece of data. */ void * -RUNTIME_desc_getaddr( const MORSE_desc_t *desc, - int m, int n ); +RUNTIME_data_getaddr( const MORSE_desc_t *A, int Am, int An ); /** * @} diff --git a/include/chameleon/morse_tasks.h b/include/chameleon/morse_tasks.h index 82abf2c78..a048e391e 100644 --- a/include/chameleon/morse_tasks.h +++ b/include/chameleon/morse_tasks.h @@ -46,15 +46,6 @@ void MORSE_TASK_stile_zero(const MORSE_option_t *options, int X1, int X2, int Y1, int Y2, const MORSE_desc_t *A, int Am, int An, int lda); -/* - * Mark a data as unused after this call - */ -void MORSE_TASK_flush_data( const MORSE_option_t *options, - const MORSE_desc_t *A, int Am, int An); -void MORSE_TASK_flush_desc( const MORSE_option_t *options, - MORSE_enum uplo, const MORSE_desc_t *A ); -void MORSE_TASK_flush_all(); - #include "chameleon/morse_tasks_z.h" #include "chameleon/morse_tasks_d.h" #include "chameleon/morse_tasks_c.h" diff --git a/include/morse.h b/include/morse.h index 6d745743f..f967dd5c1 100644 --- a/include/morse.h +++ b/include/morse.h @@ -114,7 +114,7 @@ int MORSE_Desc_Create_OOC_User(MORSE_desc_t **desc, MORSE_enum dtyp, int MORSE_Desc_Destroy (MORSE_desc_t **desc); int MORSE_Desc_Acquire (MORSE_desc_t *desc); int MORSE_Desc_Release (MORSE_desc_t *desc); -int MORSE_Desc_Getoncpu(MORSE_desc_t *desc); +int MORSE_Desc_Flush(MORSE_desc_t *desc, MORSE_sequence_t *sequence); void MORSE_user_tag_size(int, int) ; /* Workspaces */ diff --git a/runtime/starpu/CMakeLists.txt b/runtime/starpu/CMakeLists.txt index 2bc2c94d1..a6d06b1ad 100644 --- a/runtime/starpu/CMakeLists.txt +++ b/runtime/starpu/CMakeLists.txt @@ -95,7 +95,6 @@ set(RUNTIME_COMMON control/runtime_options.c control/runtime_profiling.c control/runtime_workspace.c - codelets/codelet_dataflush.c ${RUNTIME_COMMON_GENERATED} ) diff --git a/runtime/starpu/codelets/codelet_dataflush.c b/runtime/starpu/codelets/codelet_dataflush.c deleted file mode 100644 index a5347caf6..000000000 --- a/runtime/starpu/codelets/codelet_dataflush.c +++ /dev/null @@ -1,118 +0,0 @@ -/** - * - * @copyright (c) 2009-2014 The University of Tennessee and The University - * of Tennessee Research Foundation. - * All rights reserved. - * @copyright (c) 2012-2014 Inria. All rights reserved. - * @copyright (c) 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved. - * - **/ - -/** - * - * @file codelet_dataflush.c - * - * MORSE codelets kernel - * MORSE is a software package provided by Univ. of Tennessee, - * Univ. of California Berkeley and Univ. of Colorado Denver - * - * @version 2.5.0 - * @comment This file has been automatically generated - * from Plasma 2.5.0 for MORSE 1.0.0 - * @author Mathieu Faverge - * @author Marc Sergent - * @date 2014-02-05 - * - **/ -#include "chameleon_starpu.h" -#include "chameleon/morse_tasks.h" - -#ifdef HAVE_STARPU_DATA_WONT_USE -#elif defined HAVE_STARPU_IDLE_PREFETCH -static void data_flush(void *handle) -{ - starpu_data_idle_prefetch_on_node(handle, STARPU_MAIN_RAM, 1); - starpu_data_release_on_node(handle, -1); -} -#else -static void data_release(void *handle) -{ - starpu_data_release(handle); -} -#endif - -void MORSE_TASK_flush_data( const MORSE_option_t *options, - const MORSE_desc_t *A, int Am, int An ) -{ - (void)options; - - { - starpu_data_handle_t *ptrtile = (starpu_data_handle_t*)(A->schedopt); - ptrtile += ((int64_t)(A->lmt) * (int64_t)An + (int64_t)Am); - - if (*ptrtile != NULL) - { -#if defined(CHAMELEON_USE_MPI) - starpu_mpi_cache_flush(MPI_COMM_WORLD, *ptrtile); -#endif - - if ( A->myrank == A->get_rankof( A, Am, An ) ) - { - /* Push data to main memory when we have time to */ -#ifdef HAVE_STARPU_DATA_WONT_USE - starpu_data_wont_use(*ptrtile); -#elif defined HAVE_STARPU_IDLE_PREFETCH - starpu_data_acquire_on_node_cb(*ptrtile, -1, STARPU_R, data_flush, *ptrtile); -#else - starpu_data_acquire_cb(*ptrtile, STARPU_R, data_release, *ptrtile); -#endif - } - } - } -} - -void MORSE_TASK_flush_desc( const MORSE_option_t *options, - MORSE_enum uplo, const MORSE_desc_t *A ) -{ - int m, n; - - switch (uplo) { - /* - * MorseUpper - */ - case MorseUpper: - for (m = 0; m < A->mt; m++) { - for (n = m; n < A->nt; n++) { - MORSE_TASK_flush_data( options, A, m, n ); - } - } - break; - /* - * MorseLower - */ - case MorseLower: - for (m = 0; m < A->mt; m++) { - for (n = 0; n < chameleon_min(m+1, A->nt); n++) { - MORSE_TASK_flush_data( options, A, m, n ); - } - } - break; - /* - * MorseUpperLower - */ - case MorseUpperLower: - default: - for (m = 0; m < A->mt; m++) { - for (n = 0; n < A->nt; n++) { - MORSE_TASK_flush_data( options, A, m, n ); - } - } - } -} - -void MORSE_TASK_flush_all() -{ -#if defined(CHAMELEON_USE_MPI) - starpu_mpi_cache_flush_all_data(MPI_COMM_WORLD); -#endif -} diff --git a/runtime/starpu/control/runtime_descriptor.c b/runtime/starpu/control/runtime_descriptor.c index 16308ce3f..ee2350065 100644 --- a/runtime/starpu/control/runtime_descriptor.c +++ b/runtime/starpu/control/runtime_descriptor.c @@ -296,76 +296,96 @@ int RUNTIME_desc_release( const MORSE_desc_t *desc ) } /******************************************************************************* - * Get data on cpu - Synchronous call + * Flush cached data **/ -int RUNTIME_desc_getoncpu( const MORSE_desc_t *desc ) +void RUNTIME_flush() +{ +#if defined(CHAMELEON_USE_MPI) + starpu_mpi_cache_flush_all_data(MPI_COMM_WORLD); +#endif +} + +/***************************************************************************** + * Different implementations of the flush call based on StarPU version + */ +#ifdef HAVE_STARPU_DATA_WONT_USE + +static inline void +chameleon_starpu_data_wont_use( starpu_data_handle_t handle ) { + starpu_data_wont_use( handle ); +} + +#elif defined HAVE_STARPU_IDLE_PREFETCH + +static inline void +chameleon_starpu_data_flush( starpu_data_handle_t handle) +{ + starpu_data_idle_prefetch_on_node(handle, STARPU_MAIN_RAM, 1); + starpu_data_release_on_node(handle, -1); +} + +static inline void +chameleon_starpu_data_wont_use( starpu_data_handle_t handle ) { + starpu_data_acquire_on_node_cb( handle, -1, STARPU_R, + chameleon_starpu_data_flush, handle ); +} + +#else + +static inline void +chameleon_starpu_data_wont_use( starpu_data_handle_t handle ) { + starpu_data_acquire_cb( handle, STARPU_R, + (void (*)(void*))&starpu_data_release, handle ); + +#endif + +void RUNTIME_desc_flush( const MORSE_desc_t *desc, + const MORSE_sequence_t *sequence ) { starpu_data_handle_t *handle = (starpu_data_handle_t*)(desc->schedopt); int lmt = desc->lmt; int lnt = desc->lnt; int m, n; - if ( desc->ooc ) { - /* May not even fit */ - morse_warning( "RUNTIME_desc_getoncpu(StarPU)", - "Try to get an out-of-core matrix on main memory. Cancelled as it might not fit" ); - return MORSE_SUCCESS; - } - - for (n = 0; n < lnt; n++) { - for (m = 0; m < lmt; m++) + for (n = 0; n < lnt; n++) + { + for (m = 0; m < lmt; m++, handle++) { - if ( (*handle == NULL) || - !morse_desc_islocal( desc, m, n ) ) - { - handle++; + if ( *handle == NULL ) { continue; } - starpu_data_acquire(*handle, STARPU_R); - starpu_data_release(*handle); - handle++; +#if defined(CHAMELEON_USE_MPI) + starpu_mpi_cache_flush( MPI_COMM_WORLD, *handle ); +#endif + if ( morse_desc_islocal( desc, m, n ) ) { + chameleon_starpu_data_wont_use( *handle ); + } } } - return MORSE_SUCCESS; + + (void)sequence; } -/******************************************************************************* - * Get data on cpu - Asynchronous call - **/ -int RUNTIME_desc_getoncpu_async( const MORSE_desc_t *desc, - MORSE_sequence_t *sequence ) +void RUNTIME_data_flush( const MORSE_sequence_t *sequence, + const MORSE_desc_t *A, int Am, int An ) { - starpu_data_handle_t *handle = (starpu_data_handle_t*)(desc->schedopt); - int lmt = desc->lmt; - int lnt = desc->lnt; - int m, n; + starpu_data_handle_t *handle = (starpu_data_handle_t*)(A->schedopt); + handle += ((int64_t)(A->lmt) * (int64_t)An + (int64_t)Am); - if ( desc->ooc ) { - /* May not even fit */ - morse_warning( "RUNTIME_desc_getoncpu_async(StarPU)", - "Try to get an out-of-core matrix on main memory. Cancelled as it might not fit" ); - return MORSE_SUCCESS; + if (*handle == NULL) { + return; } - for (n = 0; n < lnt; n++) { - for (m = 0; m < lmt; m++) - { - if ( (*handle == NULL) || - !morse_desc_islocal( desc, m, n ) ) - { - handle++; - continue; - } +#if defined(CHAMELEON_USE_MPI) + starpu_mpi_cache_flush( MPI_COMM_WORLD, *handle ); +#endif - starpu_data_acquire_cb( *handle, STARPU_R, - (void (*)(void*))&starpu_data_release, *handle ); - handle++; - } + if ( morse_desc_islocal( A, Am, An ) ) { + chameleon_starpu_data_wont_use( *handle ); } (void)sequence; - return MORSE_SUCCESS; } /******************************************************************************* @@ -377,7 +397,7 @@ int RUNTIME_desc_getoncpu_async( const MORSE_desc_t *desc, #define STARPU_MAIN_RAM 0 #endif -void *RUNTIME_desc_getaddr( const MORSE_desc_t *desc, int m, int n ) +void *RUNTIME_data_getaddr( const MORSE_desc_t *desc, int m, int n ) { int64_t im = m + (desc->i / desc->mb); int64_t jn = n + (desc->j / desc->nb); diff --git a/runtime/starpu/include/chameleon_starpu.h.in b/runtime/starpu/include/chameleon_starpu.h.in index 8e3692f8e..7567425e6 100644 --- a/runtime/starpu/include/chameleon_starpu.h.in +++ b/runtime/starpu/include/chameleon_starpu.h.in @@ -117,7 +117,7 @@ typedef struct starpu_conf starpu_conf_t; /** * Access to block pointer and leading dimension */ -#define RTBLKADDR( desc, type, m, n ) ( (starpu_data_handle_t)RUNTIME_desc_getaddr( desc, m, n ) ) +#define RTBLKADDR( desc, type, m, n ) ( (starpu_data_handle_t)RUNTIME_data_getaddr( desc, m, n ) ) void RUNTIME_set_reduction_methods(starpu_data_handle_t handle, MORSE_enum dtyp); diff --git a/timing/time_zgetri_tile.c b/timing/time_zgetri_tile.c index 471f30f62..ebd0a74f2 100644 --- a/timing/time_zgetri_tile.c +++ b/timing/time_zgetri_tile.c @@ -40,10 +40,10 @@ static int check_getri_factorization(MORSE_desc_t *descA1, MORSE_desc_t *descA2, MORSE_Complex64_t *b = (MORSE_Complex64_t *)malloc((descA1->m)*sizeof(MORSE_Complex64_t)); MORSE_Complex64_t *x = (MORSE_Complex64_t *)malloc((descA1->m)*sizeof(MORSE_Complex64_t)); - MORSE_Desc_Create(&descB, b, MorseComplexDouble, descA1->mb, descA1->nb, descA1->bsiz, - descA1->m, 1, 0, 0, descA1->m, 1, 1, 1); - MORSE_Desc_Create(&descX, x, MorseComplexDouble, descA1->mb, descA1->nb, descA1->bsiz, - descA1->m, 1, 0, 0, descA1->m, 1, 1, 1); + MORSE_Desc_Create(&descB, b, MorseComplexDouble, descA1->mb, descA1->nb, descA1->bsiz, + descA1->m, 1, 0, 0, descA1->m, 1, 1, 1); + MORSE_Desc_Create(&descX, x, MorseComplexDouble, descA1->mb, descA1->nb, descA1->bsiz, + descA1->m, 1, 0, 0, descA1->m, 1, 1, 1); MORSE_zplrnt_Tile( descX, 537 ); MORSE_zlacpy_Tile( MorseUpperLower, descX, descB); @@ -55,9 +55,9 @@ static int check_getri_factorization(MORSE_desc_t *descA1, MORSE_desc_t *descA2, Bnorm = MORSE_zlange_Tile(MorseInfNorm, descB, work); MORSE_zgemm_Tile( MorseNoTrans, MorseNoTrans, - (MORSE_Complex64_t)1., descA1, descX, + (MORSE_Complex64_t)1., descA1, descX, (MORSE_Complex64_t)-1., descB); - + Rnorm = MORSE_zlange_Tile(MorseInfNorm, descB, work); if (getenv("MORSE_TESTING_VERBOSE")) @@ -96,26 +96,26 @@ static int check_getri_inverse(MORSE_desc_t *descA1, MORSE_desc_t *descA2, int * double eps = LAPACKE_dlamch_work('e'); MORSE_desc_t *descW; - MORSE_Desc_Create(&descW, work, MorseComplexDouble, descA1->mb, descA1->nb, descA1->bsiz, + MORSE_Desc_Create(&descW, work, MorseComplexDouble, descA1->mb, descA1->nb, descA1->bsiz, descA1->m, descA1->n, 0, 0, descA1->m, descA1->n); - + MORSE_zlaset_Tile( MorseUpperLower, (MORSE_Complex64_t)0., (MORSE_Complex64_t)1., descW); - MORSE_zgemm_Tile( MorseNoTrans, MorseNoTrans, - (MORSE_Complex64_t)-1., descA2, descA1, + MORSE_zgemm_Tile( MorseNoTrans, MorseNoTrans, + (MORSE_Complex64_t)-1., descA2, descA1, (MORSE_Complex64_t)1., descW); Anorm = MORSE_zlange_Tile(MorseInfNorm, descA1, W); Ainvnorm = MORSE_zlange_Tile(MorseInfNorm, descA2, W); Rnorm = MORSE_zlange_Tile(MorseInfNorm, descW, W); - - dparam[IPARAM_ANORM] = Anorm; - dparam[IPARAM_BNORM] = Ainvnorm; + + dparam[IPARAM_ANORM] = Anorm; + dparam[IPARAM_BNORM] = Ainvnorm; result = Rnorm / ( (Anorm*Ainvnorm)*descA1->m*eps ) ; dparam[IPARAM_RES] = Rnorm; if ( isnan(Ainvnorm) || isinf(Ainvnorm) || isnan(result) || isinf(result) || (result > 60.0) ) { - dparam[IPARAM_XNORM] = -1.; + dparam[IPARAM_XNORM] = -1.; } else{ dparam[IPARAM_XNORM] = 0.; @@ -129,12 +129,12 @@ static int check_getri_inverse(MORSE_desc_t *descA1, MORSE_desc_t *descA2, int * } static int -RunTest(int *iparam, double *dparam, morse_time_t *t_) +RunTest(int *iparam, double *dparam, morse_time_t *t_) { MORSE_desc_t descW; int ret = 0; PASTE_CODE_IPARAM_LOCALS( iparam ); - + if ( M != N ) { fprintf(stderr, "This timing works only with M == N\n"); return -1; @@ -155,69 +155,65 @@ RunTest(int *iparam, double *dparam, morse_time_t *t_) /* MORSE ZGETRF / ZTRTRI / ZTRSMRV */ { #if defined(TRACE_BY_SEQUENCE) - MORSE_sequence_t *sequence[4]; - MORSE_request_t request[4] = { MORSE_REQUEST_INITIALIZER, - MORSE_REQUEST_INITIALIZER, - MORSE_REQUEST_INITIALIZER, - MORSE_REQUEST_INITIALIZER }; - - MORSE_Sequence_Create(&sequence[0]); - MORSE_Sequence_Create(&sequence[1]); - MORSE_Sequence_Create(&sequence[2]); - MORSE_Sequence_Create(&sequence[3]); + MORSE_sequence_t *sequence; + MORSE_request_t request[4] = { MORSE_REQUEST_INITIALIZER, + MORSE_REQUEST_INITIALIZER, + MORSE_REQUEST_INITIALIZER, + MORSE_REQUEST_INITIALIZER }; + + MORSE_Sequence_Create(&sequence); if ( ! iparam[IPARAM_ASYNC] ) { - + START_TIMING(); - MORSE_zgetrf_Tile_Async(descA, piv, sequence[0], &request[0]); - MORSE_Sequence_Wait(sequence[0]); - - MORSE_ztrtri_Tile_Async(MorseUpper, MorseNonUnit, descA, sequence[1], &request[1]); - MORSE_Sequence_Wait(sequence[1]); - - MORSE_ztrsmrv_Tile_Async(MorseRight, MorseLower, MorseNoTrans, MorseUnit, - (MORSE_Complex64_t) 1.0, descA, &descW, sequence[2], &request[2]); - MORSE_Sequence_Wait(sequence[2]); - - MORSE_zlaswpc_Tile_Async(descA, 1, descA->m, piv, -1, sequence[3], &request[3]); - MORSE_Sequence_Wait(sequence[3]); - MORSE_Desc_Getoncpu( descA ); + MORSE_zgetrf_Tile_Async( descA, piv, sequence, &request[0] ); + MORSE_Sequence_Wait(sequence); + + MORSE_ztrtri_Tile_Async( MorseUpper, MorseNonUnit, descA, sequence, &request[1] ); + MORSE_Sequence_Wait(sequence); + + MORSE_ztrsmrv_Tile_Async( MorseRight, MorseLower, MorseNoTrans, MorseUnit, + (MORSE_Complex64_t) 1.0, descA, &descW, + sequence, &request[2] ); + MORSE_Sequence_Wait(sequence); + + MORSE_zlaswpc_Tile_Async( descA, 1, descA->m, piv, -1, + sequence, &request[3] ); + MORSE_Sequence_Wait(sequence); + MORSE_Desc_Flush( descA, sequence ); STOP_TIMING(); } else { START_TIMING(); - MORSE_zgetrf_Tile_Async( descA, piv, sequence[0], &request[0]); - MORSE_ztrtri_Tile_Async( MorseUpper, MorseNonUnit, - descA, sequence[1], &request[1]); - MORSE_ztrsmrv_Tile_Async(MorseRight, MorseLower, MorseNoTrans, MorseUnit, - (MORSE_Complex64_t) 1.0, - descA, &descW, sequence[2], &request[2]); - MORSE_zlaswpc_Tile_Async(descA, 1, descA->m, piv, -1, - sequence[3], &request[3]); - + MORSE_zgetrf_Tile_Async( descA, piv, sequence, &request[0]); + MORSE_ztrtri_Tile_Async( MorseUpper, MorseNonUnit, + descA, sequence, &request[1] ); + MORSE_ztrsmrv_Tile_Async( MorseRight, MorseLower, MorseNoTrans, MorseUnit, + (MORSE_Complex64_t) 1.0, + descA, &descW, sequence, &request[2] ); + MORSE_zlaswpc_Tile_Async( descA, 1, descA->m, piv, -1, + sequence, &request[3] ); + /* Wait for everything */ - MORSE_Sequence_Wait(sequence[0]); - MORSE_Sequence_Wait(sequence[1]); - MORSE_Sequence_Wait(sequence[2]); - MORSE_Sequence_Wait(sequence[3]); - MORSE_Desc_Getoncpu( descA ); + MORSE_Sequence_Wait( sequence ); + MORSE_Desc_Flush( descA, sequence ); STOP_TIMING(); - + } MORSE_Sequence_Destroy(sequence[0]); MORSE_Sequence_Destroy(sequence[1]); MORSE_Sequence_Destroy(sequence[2]); MORSE_Sequence_Destroy(sequence[3]); - + #else if ( ! iparam[IPARAM_ASYNC] ) { START_TIMING(); MORSE_zgetrf_Tile(descA, piv); MORSE_ztrtri_Tile(MorseUpper, MorseNonUnit, descA); - MORSE_ztrsmrv_Tile(MorseRight, MorseLower, MorseNoTrans, MorseUnit, + MORSE_ztrsmrv_Tile(MorseRight, MorseLower, MorseNoTrans, MorseUnit, (MORSE_Complex64_t) 1.0, descA, &descW); MORSE_zlaswpc_Tile(descA, 1, descA->m, piv, -1); STOP_TIMING(); @@ -225,28 +221,28 @@ RunTest(int *iparam, double *dparam, morse_time_t *t_) } else { MORSE_sequence_t *sequence; - MORSE_request_t request[2] = { MORSE_REQUEST_INITIALIZER, + MORSE_request_t request[2] = { MORSE_REQUEST_INITIALIZER, MORSE_REQUEST_INITIALIZER }; MORSE_Sequence_Create(&sequence); - + START_TIMING(); MORSE_zgetrf_Tile_Async(descA, piv, sequence, &request[0]); MORSE_zgetri_Tile_Async(descA, piv, &descW, sequence, &request[1]); MORSE_Sequence_Wait(sequence); - MORSE_Desc_Getoncpu( descA ); + MORSE_Desc_Flush( descA, sequence ); STOP_TIMING(); - - MORSE_Sequence_Destroy(sequence); + + MORSE_Sequence_Destroy(sequence); } #endif } - + /* Check the solution */ if ( check ) { ret = check_getri_inverse(descA2, descA, piv, dparam); - + PASTE_CODE_FREE_MATRIX( descA2 ); } @@ -256,4 +252,3 @@ RunTest(int *iparam, double *dparam, morse_time_t *t_) return ret; } - diff --git a/timing/time_zpotri_tile.c b/timing/time_zpotri_tile.c index 07ef6007f..3a2d59e5b 100644 --- a/timing/time_zpotri_tile.c +++ b/timing/time_zpotri_tile.c @@ -50,40 +50,36 @@ RunTest(int *iparam, double *dparam, morse_time_t *t_) */ #if defined(TRACE_BY_SEQUENCE) { - MORSE_sequence_t *sequence[3]; + MORSE_sequence_t *sequence; MORSE_request_t request[3] = { MORSE_REQUEST_INITIALIZER, MORSE_REQUEST_INITIALIZER, MORSE_REQUEST_INITIALIZER }; - MORSE_Sequence_Create(&sequence[0]); - MORSE_Sequence_Create(&sequence[1]); - MORSE_Sequence_Create(&sequence[2]); + MORSE_Sequence_Create(&sequence); if ( ! iparam[IPARAM_ASYNC] ) { START_TIMING(); - MORSE_zpotrf_Tile_Async(uplo, descA, sequence[0], &request[0]); - MORSE_Sequence_Wait(sequence[0]); + MORSE_zpotrf_Tile_Async(uplo, descA, sequence, &request[0]); + MORSE_Sequence_Wait(sequence); - MORSE_ztrtri_Tile_Async(uplo, MorseNonUnit, descA, sequence[1], &request[1]); - MORSE_Sequence_Wait(sequence[1]); + MORSE_ztrtri_Tile_Async(uplo, MorseNonUnit, descA, sequence, &request[1]); + MORSE_Sequence_Wait(sequence); - MORSE_zlauum_Tile_Async(uplo, descA, sequence[2], &request[2]); - MORSE_Sequence_Wait(sequence[2]); - MORSE_Desc_Getoncpu( descA ); + MORSE_zlauum_Tile_Async(uplo, descA, sequence, &request[2]); + MORSE_Sequence_Wait(sequence); + MORSE_Desc_Flush( descA, sequence ); STOP_TIMING(); } else { START_TIMING(); - MORSE_zpotrf_Tile_Async(uplo, descA, sequence[0], &request[0]); - MORSE_ztrtri_Tile_Async(uplo, MorseNonUnit, descA, sequence[1], &request[1]); - MORSE_zlauum_Tile_Async(uplo, descA, sequence[2], &request[2]); - - MORSE_Sequence_Wait(sequence[0]); - MORSE_Sequence_Wait(sequence[1]); - MORSE_Sequence_Wait(sequence[2]); - MORSE_Desc_Getoncpu( descA ); + MORSE_zpotrf_Tile_Async(uplo, descA, sequence, &request[0]); + MORSE_ztrtri_Tile_Async(uplo, MorseNonUnit, descA, sequence, &request[1]); + MORSE_zlauum_Tile_Async(uplo, descA, sequence, &request[2]); + + MORSE_Sequence_Wait(sequence); + MORSE_Desc_Flush( descA, sequence ); STOP_TIMING(); } @@ -113,7 +109,7 @@ RunTest(int *iparam, double *dparam, morse_time_t *t_) MORSE_zpotrf_Tile_Async(uplo, descA, sequence, &request[0]); MORSE_zpotri_Tile_Async(uplo, descA, sequence, &request[1]); MORSE_Sequence_Wait(sequence); - MORSE_Desc_Getoncpu( descA ); + MORSE_Desc_Flush( descA, sequence ); STOP_TIMING(); MORSE_Sequence_Destroy(sequence); diff --git a/timing/time_zsytrf_tile.c b/timing/time_zsytrf_tile.c index 423b77b70..54cf33655 100644 --- a/timing/time_zsytrf_tile.c +++ b/timing/time_zsytrf_tile.c @@ -58,17 +58,16 @@ RunTest(int *iparam, double *dparam, morse_time_t *t_) dparam[IPARAM_ANORM] = MORSE_zlange_Tile(MorseInfNorm, descAC); dparam[IPARAM_BNORM] = MORSE_zlange_Tile(MorseInfNorm, descB); dparam[IPARAM_XNORM] = MORSE_zlange_Tile(MorseInfNorm, descX); - MORSE_zgemm_Tile( MorseNoTrans, MorseNoTrans, 1.0, descAC, descX, -1.0, descB ); - dparam[IPARAM_RES] = MORSE_zlange_Tile(MorseInfNorm, descB); + MORSE_zgemm_Tile( MorseNoTrans, MorseNoTrans, 1.0, descAC, descX, -1.0, descB ); + dparam[IPARAM_RES] = MORSE_zlange_Tile(MorseInfNorm, descB); PASTE_CODE_FREE_MATRIX( descB ); PASTE_CODE_FREE_MATRIX( descAC ); PASTE_CODE_FREE_MATRIX( descX ); - } - + } + PASTE_CODE_FREE_MATRIX( descA ); - MORSE_TASK_flush_all(); return 0; } -- GitLab