From 6a341c23bd00b138f09bc582972733cec524be28 Mon Sep 17 00:00:00 2001 From: Mathieu Faverge <mathieu.faverge@inria.fr> Date: Mon, 22 Jan 2018 19:22:46 +0100 Subject: [PATCH] Replace the tile2lap --- compute/zbuild.c | 7 ++++++- compute/zgeadd.c | 6 +++++- compute/zgelqf.c | 6 +++++- compute/zgelqf_param.c | 6 +++++- compute/zgelqs.c | 9 +++++++-- compute/zgelqs_param.c | 9 +++++++-- compute/zgels.c | 9 +++++++-- compute/zgels_param.c | 9 +++++++-- compute/zgemm.c | 6 +++++- compute/zgeqrf.c | 6 +++++- compute/zgeqrf_param.c | 6 +++++- compute/zgeqrs.c | 9 +++++++-- compute/zgeqrs_param.c | 9 +++++++-- compute/zgesv_incpiv.c | 9 +++++++-- compute/zgesv_nopiv.c | 9 +++++++-- compute/zgesvd.c | 9 ++++++++- compute/zgetrf_incpiv.c | 6 +++++- compute/zgetrf_nopiv.c | 6 +++++- compute/zgetrs_incpiv.c | 6 +++++- compute/zgetrs_nopiv.c | 6 +++++- compute/zheevd.c | 7 +++++-- compute/zhemm.c | 6 +++++- compute/zher2k.c | 6 +++++- compute/zherk.c | 6 +++++- compute/zhetrd.c | 8 +++++++- compute/zlacpy.c | 7 ++++++- compute/zlange.c | 7 ++++++- compute/zlanhe.c | 7 ++++++- compute/zlansy.c | 4 ++++ compute/zlantr.c | 4 ++++ compute/zlascal.c | 3 ++- compute/zlaset.c | 4 ++++ compute/zlauum.c | 6 +++++- compute/zplghe.c | 7 ++++++- compute/zplgsy.c | 7 ++++++- compute/zplrnt.c | 7 ++++++- compute/zposv.c | 9 +++++++-- compute/zpotrf.c | 5 +++-- compute/zpotri.c | 6 +++++- compute/zpotrimm.c | 12 +++++++++--- compute/zpotrs.c | 6 +++++- compute/zsymm.c | 6 +++++- compute/zsyr2k.c | 6 +++++- compute/zsyrk.c | 6 +++++- compute/zsysv.c | 9 +++++++-- compute/zsytrf.c | 6 +++++- compute/zsytrs.c | 6 +++++- compute/ztpgqrt.c | 9 +++++++-- compute/ztpqrt.c | 9 +++++++-- compute/ztradd.c | 6 +++++- compute/ztrmm.c | 6 +++++- compute/ztrsm.c | 6 +++++- compute/ztrsmpl.c | 6 +++++- compute/ztrtri.c | 6 +++++- compute/zunglq.c | 6 +++++- compute/zunglq_param.c | 6 +++++- compute/zungqr.c | 6 +++++- compute/zungqr_param.c | 6 +++++- compute/zunmlq.c | 6 +++++- compute/zunmlq_param.c | 6 +++++- compute/zunmqr.c | 6 +++++- compute/zunmqr_param.c | 6 +++++- control/compute_z.h | 11 +++++------ 63 files changed, 347 insertions(+), 81 deletions(-) diff --git a/compute/zbuild.c b/compute/zbuild.c index 71fadaac9..24e03410e 100644 --- a/compute/zbuild.c +++ b/compute/zbuild.c @@ -130,8 +130,11 @@ int MORSE_zbuild( MORSE_enum uplo, int M, int N, /* Call the tile interface */ MORSE_zbuild_Tile_Async(uplo, &descA, user_data, user_build_callback, sequence, &request ); - morse_zooptile2lap(descA, A, NB, NB, LDA, N, sequence, &request); + morse_ztile2lap( morse, &descAl, &descAt, + MorseUpperLower, sequence, &request ); + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); status = sequence->status; @@ -197,7 +200,9 @@ int MORSE_zbuild_Tile( MORSE_enum uplo, MORSE_desc_t *A, } morse_sequence_create(morse, &sequence); MORSE_zbuild_Tile_Async( uplo, A, user_data, user_build_callback, sequence, &request ); + morse_sequence_wait(morse, sequence); + status = sequence->status; morse_sequence_destroy(morse, sequence); return status; diff --git a/compute/zgeadd.c b/compute/zgeadd.c index fc18ca2d3..501e5e42e 100644 --- a/compute/zgeadd.c +++ b/compute/zgeadd.c @@ -164,8 +164,11 @@ int MORSE_zgeadd(MORSE_enum trans, int M, int N, trans, alpha, &descA, beta, &descB, sequence, &request); /* Submit the matrix conversion */ - morse_zooptile2lap( descB, B, NB, NB, LDB, N, sequence, &request); + morse_ztile2lap( morse, &descBl, &descBt, + MorseUpperLower, sequence, &request ); + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); morse_desc_mat_free(&descB); @@ -240,6 +243,7 @@ int MORSE_zgeadd_Tile(MORSE_enum trans, MORSE_zgeadd_Tile_Async(trans, alpha, A, beta, B, sequence, &request); 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 191ae7a0f..6047b801e 100644 --- a/compute/zgelqf.c +++ b/compute/zgelqf.c @@ -130,8 +130,11 @@ int MORSE_zgelqf(int M, int N, MORSE_zgelqf_Tile_Async(&descA, descT, sequence, &request); /* Submit the matrix conversion */ - morse_zooptile2lap(descA, A, NB, NB, LDA, N, sequence, &request); + morse_ztile2lap( morse, &descAl, &descAt, + MorseUpperLower, sequence, &request ); + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); status = sequence->status; @@ -193,6 +196,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_flush( A, sequence ); + morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zgelqf_param.c b/compute/zgelqf_param.c index 270dba3ba..2c90ef470 100644 --- a/compute/zgelqf_param.c +++ b/compute/zgelqf_param.c @@ -127,8 +127,11 @@ int MORSE_zgelqf_param(const libhqr_tree_t *qrtree, int M, int N, MORSE_zgelqf_param_Tile_Async(qrtree, &descA, descTS, descTT, sequence, &request); /* Submit the matrix conversion */ - morse_zooptile2lap(descA, A, NB, NB, LDA, N, sequence, &request); + morse_ztile2lap( morse, &descAl, &descAt, + MorseUpperLower, sequence, &request ); + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); status = sequence->status; @@ -190,6 +193,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_flush( A, sequence ); + morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zgelqs.c b/compute/zgelqs.c index 124188a51..290a3627a 100644 --- a/compute/zgelqs.c +++ b/compute/zgelqs.c @@ -147,9 +147,13 @@ int MORSE_zgelqs(int M, int N, int NRHS, MORSE_zgelqs_Tile_Async(&descA, descT, &descB, sequence, &request); /* Submit the matrix conversion */ - morse_zooptile2lap(descA, A, NB, NB, LDA, N, sequence, &request); - morse_zooptile2lap(descB, B, NB, NB, LDB, NRHS, sequence, &request); + morse_ztile2lap( morse, &descAl, &descAt, + MorseUpperLower, sequence, &request ); + morse_ztile2lap( morse, &descBl, &descBt, + MorseUpperLower, sequence, &request ); + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); morse_desc_mat_free(&descB); @@ -213,6 +217,7 @@ int MORSE_zgelqs_Tile(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *B) MORSE_zgelqs_Tile_Async(A, T, B, sequence, &request); 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 0a03c9cbf..e2efe30d1 100644 --- a/compute/zgelqs_param.c +++ b/compute/zgelqs_param.c @@ -149,9 +149,13 @@ int MORSE_zgelqs_param(const libhqr_tree_t *qrtree, int M, int N, int NRHS, MORSE_zgelqs_param_Tile_Async(qrtree, &descA, descTS, descTT, &descB, sequence, &request); /* Submit the matrix conversion */ - morse_zooptile2lap(descA, A, NB, NB, LDA, N, sequence, &request); - morse_zooptile2lap(descB, B, NB, NB, LDB, NRHS, sequence, &request); + morse_ztile2lap( morse, &descAl, &descAt, + MorseUpperLower, sequence, &request ); + morse_ztile2lap( morse, &descBl, &descBt, + MorseUpperLower, sequence, &request ); + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); morse_desc_mat_free(&descB); @@ -218,6 +222,7 @@ int MORSE_zgelqs_param_Tile(const libhqr_tree_t *qrtree, MORSE_desc_t *A, MORSE_ MORSE_zgelqs_param_Tile_Async(qrtree, A, TS, TT, B, sequence, &request); 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 33d50af97..885d1e3de 100644 --- a/compute/zgels.c +++ b/compute/zgels.c @@ -189,9 +189,13 @@ int MORSE_zgels(MORSE_enum trans, int M, int N, int NRHS, MORSE_zgels_Tile_Async(MorseNoTrans, &descA, descT, &descB, sequence, &request); /* Submit the matrix conversion */ - morse_zooptile2lap(descA, A, NB, NB, LDA, N, sequence, &request); - morse_zooptile2lap(descB, B, NB, NB, LDB, NRHS, sequence, &request); + morse_ztile2lap( morse, &descAl, &descAt, + MorseUpperLower, sequence, &request ); + morse_ztile2lap( morse, &descBl, &descBt, + MorseUpperLower, sequence, &request ); + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); morse_desc_mat_free(&descB); @@ -271,6 +275,7 @@ int MORSE_zgels_Tile(MORSE_enum trans, MORSE_desc_t *A, MORSE_zgels_Tile_Async(trans, A, T, B, sequence, &request); 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 733eeed65..ee5d6640b 100644 --- a/compute/zgels_param.c +++ b/compute/zgels_param.c @@ -190,9 +190,13 @@ int MORSE_zgels_param(const libhqr_tree_t *qrtree, MORSE_enum trans, int M, int MORSE_zgels_param_Tile_Async(qrtree, MorseNoTrans, &descA, descTS, descTT, &descB, sequence, &request); /* Submit the matrix conversion */ - morse_zooptile2lap(descA, A, NB, NB, LDA, N, sequence, &request); - morse_zooptile2lap(descB, B, NB, NB, LDB, NRHS, sequence, &request); + morse_ztile2lap( morse, &descAl, &descAt, + MorseUpperLower, sequence, &request ); + morse_ztile2lap( morse, &descBl, &descBt, + MorseUpperLower, sequence, &request ); + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); morse_desc_mat_free(&descB); @@ -275,6 +279,7 @@ int MORSE_zgels_param_Tile(const libhqr_tree_t *qrtree, MORSE_enum trans, MORSE_ MORSE_zgels_param_Tile_Async(qrtree, trans, A, TS, TT, B, sequence, &request); 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 00f7a3b14..1ab3eda0d 100644 --- a/compute/zgemm.c +++ b/compute/zgemm.c @@ -223,8 +223,11 @@ int MORSE_zgemm(MORSE_enum transA, MORSE_enum transB, int M, int N, int K, transA, transB, alpha, &descA, &descB, beta, &descC, sequence, &request); /* Submit the matrix conversion */ - morse_zooptile2lap(descC, C, NB, NB, LDC, N, sequence, &request); + morse_ztile2lap( morse, &descCl, &descCt, + MorseUpperLower, sequence, &request ); + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); morse_desc_mat_free(&descB); morse_desc_mat_free(&descC); @@ -310,6 +313,7 @@ int MORSE_zgemm_Tile(MORSE_enum transA, MORSE_enum transB, 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 00a462be3..cf9623380 100644 --- a/compute/zgeqrf.c +++ b/compute/zgeqrf.c @@ -129,8 +129,11 @@ int MORSE_zgeqrf(int M, int N, MORSE_zgeqrf_Tile_Async(&descA, descT, sequence, &request); /* Submit the matrix conversion */ - morse_zooptile2lap(descA, A, NB, NB, LDA, N, sequence, &request); + morse_ztile2lap( morse, &descAl, &descAt, + MorseUpperLower, sequence, &request ); + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); status = sequence->status; @@ -192,6 +195,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_flush( A, sequence ); + morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zgeqrf_param.c b/compute/zgeqrf_param.c index c5db6d1d8..238411322 100644 --- a/compute/zgeqrf_param.c +++ b/compute/zgeqrf_param.c @@ -132,8 +132,11 @@ int MORSE_zgeqrf_param(const libhqr_tree_t *qrtree, int M, int N, MORSE_zgeqrf_param_Tile_Async(qrtree, &descA, descTS, descTT, sequence, &request); /* Submit the matrix conversion */ - morse_zooptile2lap(descA, A, NB, NB, LDA, N, sequence, &request); + morse_ztile2lap( morse, &descAl, &descAt, + MorseUpperLower, sequence, &request ); + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); status = sequence->status; @@ -199,6 +202,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_flush( A, sequence ); + morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zgeqrs.c b/compute/zgeqrs.c index 30d415146..445daf03f 100644 --- a/compute/zgeqrs.c +++ b/compute/zgeqrs.c @@ -147,9 +147,13 @@ int MORSE_zgeqrs(int M, int N, int NRHS, MORSE_zgeqrs_Tile_Async(&descA, descT, &descB, sequence, &request); /* Submit the matrix conversion */ - morse_zooptile2lap(descA, A, NB, NB, LDA, N, sequence, &request); - morse_zooptile2lap(descB, B, NB, NB, LDB, NRHS, sequence, &request); + morse_ztile2lap( morse, &descAl, &descAt, + MorseUpperLower, sequence, &request ); + morse_ztile2lap( morse, &descBl, &descBt, + MorseUpperLower, sequence, &request ); + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); morse_desc_mat_free(&descB); @@ -213,6 +217,7 @@ int MORSE_zgeqrs_Tile(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *B) 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 bf285e431..467955410 100644 --- a/compute/zgeqrs_param.c +++ b/compute/zgeqrs_param.c @@ -142,9 +142,13 @@ int MORSE_zgeqrs_param(const libhqr_tree_t *qrtree, int M, int N, int NRHS, MORSE_zgeqrs_param_Tile_Async(qrtree, &descA, descTS, descTT, &descB, sequence, &request); /* Submit the matrix conversion */ - morse_zooptile2lap(descA, A, NB, NB, LDA, N, sequence, &request); - morse_zooptile2lap(descB, B, NB, NB, LDB, NRHS, sequence, &request); + morse_ztile2lap( morse, &descAl, &descAt, + MorseUpperLower, sequence, &request ); + morse_ztile2lap( morse, &descBl, &descBt, + MorseUpperLower, sequence, &request ); + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); morse_desc_mat_free(&descB); @@ -209,6 +213,7 @@ int MORSE_zgeqrs_param_Tile(const libhqr_tree_t *qrtree, MORSE_desc_t *A, MORSE_ 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 1c1abc516..e43014e2f 100644 --- a/compute/zgesv_incpiv.c +++ b/compute/zgesv_incpiv.c @@ -146,9 +146,13 @@ int MORSE_zgesv_incpiv(int N, int NRHS, MORSE_zgesv_incpiv_Tile_Async(&descA, descL, IPIV, &descB, sequence, &request); /* Submit the matrix conversion */ - morse_zooptile2lap(descA, A, NB, NB, LDA, N, sequence, &request); - morse_zooptile2lap(descB, B, NB, NB, LDB, NRHS, sequence, &request); + morse_ztile2lap( morse, &descAl, &descAt, + MorseUpperLower, sequence, &request ); + morse_ztile2lap( morse, &descBl, &descBt, + MorseUpperLower, sequence, &request ); + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); morse_desc_mat_free(&descB); @@ -217,6 +221,7 @@ int MORSE_zgesv_incpiv_Tile(MORSE_desc_t *A, MORSE_desc_t *L, int *IPIV, MORSE_d MORSE_zgesv_incpiv_Tile_Async(A, L, IPIV, B, sequence, &request); 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 d1fcc7c66..1693481d3 100644 --- a/compute/zgesv_nopiv.c +++ b/compute/zgesv_nopiv.c @@ -145,9 +145,13 @@ int MORSE_zgesv_nopiv(int N, int NRHS, MORSE_zgesv_nopiv_Tile_Async(&descA, &descB, sequence, &request); /* Submit the matrix conversion */ - morse_zooptile2lap(descA, A, NB, NB, LDA, N, sequence, &request); - morse_zooptile2lap(descB, B, NB, NB, LDB, NRHS, sequence, &request); + morse_ztile2lap( morse, &descAl, &descAt, + MorseUpperLower, sequence, &request ); + morse_ztile2lap( morse, &descBl, &descBt, + MorseUpperLower, sequence, &request ); + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); morse_desc_mat_free(&descB); @@ -209,6 +213,7 @@ int MORSE_zgesv_nopiv_Tile(MORSE_desc_t *A, MORSE_desc_t *B) MORSE_zgesv_nopiv_Tile_Async(A, B, sequence, &request); RUNTIME_desc_flush( A, sequence ); RUNTIME_desc_flush( B, sequence ); + morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zgesvd.c b/compute/zgesvd.c index d7e7060b9..b55aa9d82 100644 --- a/compute/zgesvd.c +++ b/compute/zgesvd.c @@ -222,8 +222,11 @@ int MORSE_zgesvd(MORSE_enum jobu, MORSE_enum jobvt, MORSE_zgesvd_Tile_Async(jobu, jobvt, &descA, S, descT, U, LDU, VT, LDVT, sequence, &request); /* Submit the matrix conversion */ - morse_zooptile2lap( descA, A, NB, NB, LDA, N, sequence, &request); + morse_ztile2lap( morse, &descAl, &descAt, + MorseUpperLower, sequence, &request ); + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); status = sequence->status; @@ -350,7 +353,9 @@ int MORSE_zgesvd_Tile(MORSE_enum jobu, MORSE_enum jobvt, } morse_sequence_create(morse, &sequence); MORSE_zgesvd_Tile_Async(jobu, jobvt, A, S, T, U, LDU, VT, LDVT, sequence, &request); + morse_sequence_wait(morse, sequence); + status = sequence->status; morse_sequence_destroy(morse, sequence); return status; @@ -551,6 +556,7 @@ int MORSE_zgesvd_Tile_Async(MORSE_enum jobu, MORSE_enum jobvt, if ( jobvt != MorseNoVec ) { morse_zooplap2tile( descVT, VT, NB, NB, LDVT, N, 0, 0, N, N, sequence, request, morse_desc_mat_free(&(descVT)) ); } + morse_sequence_wait(morse, sequence); subA = NULL; @@ -597,6 +603,7 @@ int MORSE_zgesvd_Tile_Async(MORSE_enum jobu, MORSE_enum jobvt, } morse_sequence_wait(morse, sequence); + if (subA) { free(subA); free(subUVT); free(subT); } diff --git a/compute/zgetrf_incpiv.c b/compute/zgetrf_incpiv.c index f12be25c1..bfad3adf2 100644 --- a/compute/zgetrf_incpiv.c +++ b/compute/zgetrf_incpiv.c @@ -131,8 +131,11 @@ int MORSE_zgetrf_incpiv(int M, int N, MORSE_zgetrf_incpiv_Tile_Async(&descA, descL, IPIV, sequence, &request); /* Submit the matrix conversion */ - morse_zooptile2lap(descA, A, NB, NB, LDA, N, sequence, &request); + morse_ztile2lap( morse, &descAl, &descAt, + MorseUpperLower, sequence, &request ); + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); status = sequence->status; @@ -197,6 +200,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_flush( A, sequence ); + morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zgetrf_nopiv.c b/compute/zgetrf_nopiv.c index 87f0d117c..344f1d26a 100644 --- a/compute/zgetrf_nopiv.c +++ b/compute/zgetrf_nopiv.c @@ -124,8 +124,11 @@ int MORSE_zgetrf_nopiv(int M, int N, MORSE_zgetrf_nopiv_Tile_Async(&descA, sequence, &request); /* Submit the matrix conversion */ - morse_zooptile2lap(descA, A, NB, NB, LDA, N, sequence, &request ); + morse_ztile2lap( morse, &descAl, &descAt, + MorseUpperLower, sequence, &request ); + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); status = sequence->status; @@ -183,6 +186,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_flush( A, sequence ); + morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zgetrs_incpiv.c b/compute/zgetrs_incpiv.c index 8be117d8a..536a51113 100644 --- a/compute/zgetrs_incpiv.c +++ b/compute/zgetrs_incpiv.c @@ -152,8 +152,11 @@ int MORSE_zgetrs_incpiv(MORSE_enum trans, int N, int NRHS, MORSE_zgetrs_incpiv_Tile_Async(&descA, descL, IPIV, &descB, sequence, &request); /* Submit the matrix conversion */ - morse_zooptile2lap(descB, B, NB, NB, LDB, NRHS, sequence, &request); + morse_ztile2lap( morse, &descBl, &descBt, + MorseUpperLower, sequence, &request ); + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); morse_desc_mat_free(&descB); @@ -220,6 +223,7 @@ int MORSE_zgetrs_incpiv_Tile(MORSE_desc_t *A, MORSE_desc_t *L, int *IPIV, MORSE_ MORSE_zgetrs_incpiv_Tile_Async(A, L, IPIV, B, sequence, &request); 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 08858c5d6..f3fdfc502 100644 --- a/compute/zgetrs_nopiv.c +++ b/compute/zgetrs_nopiv.c @@ -146,8 +146,11 @@ int MORSE_zgetrs_nopiv(MORSE_enum trans, int N, int NRHS, MORSE_zgetrs_nopiv_Tile_Async(&descA, &descB, sequence, &request); /* Submit the matrix conversion */ - morse_zooptile2lap(descB, B, NB, NB, LDB, NRHS, sequence, &request); + morse_ztile2lap( morse, &descBl, &descBt, + MorseUpperLower, sequence, &request ); + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); morse_desc_mat_free(&descB); @@ -208,6 +211,7 @@ int MORSE_zgetrs_nopiv_Tile(MORSE_desc_t *A, MORSE_desc_t *B) MORSE_zgetrs_nopiv_Tile_Async(A, B, sequence, &request); 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 9ea486242..67d343211 100644 --- a/compute/zheevd.c +++ b/compute/zheevd.c @@ -160,8 +160,11 @@ int MORSE_zheevd(MORSE_enum jobz, MORSE_enum uplo, int N, MORSE_zheevd_Tile_Async(jobz, uplo, &descA, W, descT, sequence, &request); /* Submit the matrix conversion */ - morse_zooptile2lap( descA, A, NB, NB, LDA, N, sequence, &request); + morse_ztile2lap( morse, &descAl, &descAt, + MorseUpperLower, sequence, &request ); + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); status = sequence->status; @@ -253,6 +256,7 @@ int MORSE_zheevd_Tile(MORSE_enum jobz, MORSE_enum uplo, MORSE_zheevd_Tile_Async(jobz, uplo, A, W, T, sequence, &request); RUNTIME_desc_flush( A, sequence ); RUNTIME_desc_flush( T, sequence ); + morse_sequence_wait(morse, sequence); status = sequence->status; @@ -417,7 +421,6 @@ int MORSE_zheevd_Tile_Async(MORSE_enum jobz, MORSE_enum uplo, morse_error("MORSE_zheevd_Tile", "MORSE_zhetrd failed"); } - if (jobz == MorseNoVec){ #if !defined(CHAMELEON_SIMULATION) /* Tridiagonal eigensolver */ diff --git a/compute/zhemm.c b/compute/zhemm.c index 7cf7374f3..ab49a42e2 100644 --- a/compute/zhemm.c +++ b/compute/zhemm.c @@ -186,8 +186,11 @@ int MORSE_zhemm(MORSE_enum side, MORSE_enum uplo, int M, int N, side, uplo, alpha, &descA, &descB, beta, &descC, sequence, &request); /* Submit the matrix conversion */ - morse_zooptile2lap(descC, C, NB, NB, LDC, N, sequence, &request); + morse_ztile2lap( morse, &descCl, &descCt, + MorseUpperLower, sequence, &request ); + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); morse_desc_mat_free(&descB); morse_desc_mat_free(&descC); @@ -275,6 +278,7 @@ int MORSE_zhemm_Tile(MORSE_enum side, MORSE_enum uplo, 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 a4c3f059d..03c76ebf9 100644 --- a/compute/zher2k.c +++ b/compute/zher2k.c @@ -190,8 +190,11 @@ int MORSE_zher2k(MORSE_enum uplo, MORSE_enum trans, int N, int K, MORSE_zher2k_Tile_Async(uplo, trans, alpha, &descA, &descB, beta, &descC, sequence, &request); /* Submit the matrix conversion */ - morse_zooptile2lap(descC, C, NB, NB, LDC, N, sequence, &request); + morse_ztile2lap( morse, &descCl, &descCt, + MorseUpperLower, sequence, &request ); + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); morse_desc_mat_free(&descB); morse_desc_mat_free(&descC); @@ -274,6 +277,7 @@ int MORSE_zher2k_Tile(MORSE_enum uplo, MORSE_enum trans, 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 64b671dc9..05901be70 100644 --- a/compute/zherk.c +++ b/compute/zherk.c @@ -174,8 +174,11 @@ int MORSE_zherk(MORSE_enum uplo, MORSE_enum trans, int N, int K, MORSE_zherk_Tile_Async(uplo, trans, alpha, &descA, beta, &descC, sequence, &request); /* Submit the matrix conversion */ - morse_zooptile2lap(descC, C, NB, NB, LDC, N, sequence, &request); + morse_ztile2lap( morse, &descCl, &descCt, + MorseUpperLower, sequence, &request ); + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); morse_desc_mat_free(&descC); @@ -252,6 +255,7 @@ int MORSE_zherk_Tile(MORSE_enum uplo, MORSE_enum trans, MORSE_zherk_Tile_Async(uplo, trans, alpha, A, beta, C, sequence, &request); RUNTIME_desc_flush( A, sequence ); RUNTIME_desc_flush( C, sequence ); + morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zhetrd.c b/compute/zhetrd.c index e895ce6b5..b63b5d1a7 100644 --- a/compute/zhetrd.c +++ b/compute/zhetrd.c @@ -174,8 +174,11 @@ int MORSE_zhetrd(MORSE_enum jobz, MORSE_enum uplo, int N, MORSE_zhetrd_Tile_Async(jobz, uplo, &descA, D, E, descT, Q, LDQ, sequence, &request); /* Submit the matrix conversion */ - morse_zooptile2lap( descA, A, NB, NB, LDA, N, sequence, &request); + morse_ztile2lap( morse, &descAl, &descAt, + MorseUpperLower, sequence, &request ); + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); status = sequence->status; @@ -279,7 +282,9 @@ int MORSE_zhetrd_Tile(MORSE_enum jobz, MORSE_enum uplo, } morse_sequence_create(morse, &sequence); MORSE_zhetrd_Tile_Async(jobz, uplo, A, D, E, T, Q, LDQ, sequence, &request); + morse_sequence_wait(morse, sequence); + status = sequence->status; morse_sequence_destroy(morse, sequence); return status; @@ -408,6 +413,7 @@ int MORSE_zhetrd_Tile_Async(MORSE_enum jobz, /* Copy data into band structure */ morse_pztile2band( uplo, A, &descAB, sequence, request ); + morse_sequence_wait(morse, sequence); /* Reduce band matrix to tridiagonal matrix */ diff --git a/compute/zlacpy.c b/compute/zlacpy.c index 9c749e85e..885ae54d5 100644 --- a/compute/zlacpy.c +++ b/compute/zlacpy.c @@ -140,8 +140,11 @@ int MORSE_zlacpy(MORSE_enum uplo, int M, int N, MORSE_zlacpy_Tile_Async(uplo, &descA, &descB, sequence, &request); /* Submit the matrix conversion */ - morse_zooptile2lap(descB, B, NB, NB, LDB, N, sequence, &request); + morse_ztile2lap( morse, &descBl, &descBt, + MorseUpperLower, sequence, &request ); + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); morse_desc_mat_free(&descB); @@ -203,7 +206,9 @@ int MORSE_zlacpy_Tile(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B) } morse_sequence_create(morse, &sequence); MORSE_zlacpy_Tile_Async(uplo, A, B, sequence, &request); + morse_sequence_wait(morse, sequence); + morse_sequence_destroy(morse, sequence); return MORSE_SUCCESS; } diff --git a/compute/zlange.c b/compute/zlange.c index 3267d7461..f1ea38a96 100644 --- a/compute/zlange.c +++ b/compute/zlange.c @@ -142,9 +142,12 @@ double MORSE_zlange(MORSE_enum norm, int M, int N, MORSE_zlange_Tile_Async(norm, &descA, &value, sequence, &request); /* Submit the matrix conversion */ - morse_zooptile2lap(descA, A, NB, NB, LDA, N, sequence, &request); + morse_ztile2lap( morse, &descAl, &descAt, + MorseUpperLower, sequence, &request ); RUNTIME_desc_flush( &descA, sequence ); + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); morse_sequence_destroy(morse, sequence); @@ -204,7 +207,9 @@ double MORSE_zlange_Tile(MORSE_enum norm, MORSE_desc_t *A) } morse_sequence_create(morse, &sequence); MORSE_zlange_Tile_Async(norm, A, &value, sequence, &request); + morse_sequence_wait(morse, sequence); + morse_sequence_destroy(morse, sequence); return value; } diff --git a/compute/zlanhe.c b/compute/zlanhe.c index 455f74ec9..ce7e4fa19 100644 --- a/compute/zlanhe.c +++ b/compute/zlanhe.c @@ -142,9 +142,12 @@ double MORSE_zlanhe(MORSE_enum norm, MORSE_enum uplo, int N, MORSE_zlanhe_Tile_Async(norm, uplo, &descA, &value, sequence, &request); /* Submit the matrix conversion */ - morse_zooptile2lap(descA, A, NB, NB, LDA, N, sequence, &request); + morse_ztile2lap( morse, &descAl, &descAt, + MorseUpperLower, sequence, &request ); RUNTIME_desc_flush( &descA, sequence ); + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); morse_sequence_destroy(morse, sequence); @@ -208,7 +211,9 @@ double MORSE_zlanhe_Tile(MORSE_enum norm, MORSE_enum uplo, MORSE_desc_t *A) } morse_sequence_create(morse, &sequence); MORSE_zlanhe_Tile_Async(norm, uplo, A, &value, sequence, &request); + morse_sequence_wait(morse, sequence); + morse_sequence_destroy(morse, sequence); return value; } diff --git a/compute/zlansy.c b/compute/zlansy.c index 9a10fe789..8912e0f61 100644 --- a/compute/zlansy.c +++ b/compute/zlansy.c @@ -142,7 +142,9 @@ double MORSE_zlansy(MORSE_enum norm, MORSE_enum uplo, int N, MORSE_zlansy_Tile_Async(norm, uplo, &descA, &value, sequence, &request); /* Submit the matrix conversion */ + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); morse_sequence_destroy(morse, sequence); @@ -206,7 +208,9 @@ double MORSE_zlansy_Tile(MORSE_enum norm, MORSE_enum uplo, MORSE_desc_t *A) } morse_sequence_create(morse, &sequence); MORSE_zlansy_Tile_Async(norm, uplo, A, &value, sequence, &request); + morse_sequence_wait(morse, sequence); + morse_sequence_destroy(morse, sequence); return value; } diff --git a/compute/zlantr.c b/compute/zlantr.c index 8ae33b76b..61dcb8be9 100644 --- a/compute/zlantr.c +++ b/compute/zlantr.c @@ -162,7 +162,9 @@ double MORSE_zlantr(MORSE_enum norm, MORSE_enum uplo, MORSE_enum diag, MORSE_zlantr_Tile_Async(norm, uplo, diag, &descA, &value, sequence, &request); /* Submit the matrix conversion */ + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); morse_sequence_destroy(morse, sequence); @@ -228,7 +230,9 @@ double MORSE_zlantr_Tile(MORSE_enum norm, MORSE_enum uplo, MORSE_enum diag, MORS } morse_sequence_create(morse, &sequence); MORSE_zlantr_Tile_Async(norm, uplo, diag, A, &value, sequence, &request); + morse_sequence_wait(morse, sequence); + morse_sequence_destroy(morse, sequence); return value; } diff --git a/compute/zlascal.c b/compute/zlascal.c index 242fb1aee..2b1979406 100644 --- a/compute/zlascal.c +++ b/compute/zlascal.c @@ -122,7 +122,8 @@ int MORSE_zlascal(MORSE_enum uplo, int M, int N, uplo, alpha, &descA, sequence, &request); /* Submit the matrix conversion */ - morse_zooptile2lap( descA, A, NB, NB, LDA, N, sequence, &request); + morse_ztile2lap( morse, &descAl, &descAt, + MorseUpperLower, sequence, &request ); RUNTIME_sequence_wait(morse, sequence); morse_desc_mat_free(&descA); diff --git a/compute/zlaset.c b/compute/zlaset.c index 9f74ff42a..f0b8269fb 100644 --- a/compute/zlaset.c +++ b/compute/zlaset.c @@ -135,7 +135,9 @@ int MORSE_zlaset(MORSE_enum uplo, int M, int N, MORSE_zlaset_Tile_Async(uplo, alpha, beta, &descA, sequence, &request); /* Submit the matrix conversion */ + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); morse_sequence_destroy(morse, sequence); @@ -194,7 +196,9 @@ int MORSE_zlaset_Tile(MORSE_enum uplo, } morse_sequence_create(morse, &sequence); MORSE_zlaset_Tile_Async(uplo, alpha, beta, A, sequence, &request); + morse_sequence_wait(morse, sequence); + morse_sequence_destroy(morse, sequence); return MORSE_SUCCESS; } diff --git a/compute/zlauum.c b/compute/zlauum.c index eb16a1751..a07910ca1 100644 --- a/compute/zlauum.c +++ b/compute/zlauum.c @@ -129,8 +129,11 @@ int MORSE_zlauum(MORSE_enum uplo, int N, MORSE_zlauum_Tile_Async(uplo, &descA, sequence, &request); /* Submit the matrix conversion */ - morse_zooptile2lap(descA, A, NB, NB, LDA, N, sequence, &request); + morse_ztile2lap( morse, &descAl, &descAt, + MorseUpperLower, sequence, &request ); + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); status = sequence->status; @@ -194,6 +197,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_flush( A, sequence ); + morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zplghe.c b/compute/zplghe.c index 0d7af9927..7ba0cef44 100644 --- a/compute/zplghe.c +++ b/compute/zplghe.c @@ -120,8 +120,11 @@ int MORSE_zplghe( double bump, MORSE_enum uplo, int N, /* Call the tile interface */ MORSE_zplghe_Tile_Async( bump, uplo, &descA, seed, sequence, &request ); - morse_zooptile2lap(descA, A, NB, NB, LDA, N, sequence, &request); + morse_ztile2lap( morse, &descAl, &descAt, + MorseUpperLower, sequence, &request ); + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); status = sequence->status; @@ -186,7 +189,9 @@ int MORSE_zplghe_Tile( double bump, MORSE_enum uplo, MORSE_desc_t *A, } morse_sequence_create(morse, &sequence); MORSE_zplghe_Tile_Async( bump, uplo, A, seed, sequence, &request ); + morse_sequence_wait(morse, sequence); + status = sequence->status; morse_sequence_destroy(morse, sequence); return status; diff --git a/compute/zplgsy.c b/compute/zplgsy.c index d0264a234..7b4f36a67 100644 --- a/compute/zplgsy.c +++ b/compute/zplgsy.c @@ -120,8 +120,11 @@ int MORSE_zplgsy( MORSE_Complex64_t bump, MORSE_enum uplo, int N, /* Call the tile interface */ MORSE_zplgsy_Tile_Async( bump, uplo, &descA, seed, sequence, &request ); - morse_zooptile2lap(descA, A, NB, NB, LDA, N, sequence, &request); + morse_ztile2lap( morse, &descAl, &descAt, + MorseUpperLower, sequence, &request ); + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); status = sequence->status; @@ -187,7 +190,9 @@ int MORSE_zplgsy_Tile( MORSE_Complex64_t bump, MORSE_enum uplo, } morse_sequence_create(morse, &sequence); MORSE_zplgsy_Tile_Async( bump, uplo, A, seed, sequence, &request ); + morse_sequence_wait(morse, sequence); + status = sequence->status; morse_sequence_destroy(morse, sequence); return status; diff --git a/compute/zplrnt.c b/compute/zplrnt.c index 45e141e11..0040cd9e5 100644 --- a/compute/zplrnt.c +++ b/compute/zplrnt.c @@ -117,8 +117,11 @@ int MORSE_zplrnt( int M, int N, /* Call the tile interface */ MORSE_zplrnt_Tile_Async( &descA, seed, sequence, &request ); - morse_zooptile2lap(descA, A, NB, NB, LDA, N, sequence, &request); + morse_ztile2lap( morse, &descAl, &descAt, + MorseUpperLower, sequence, &request ); + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); status = sequence->status; @@ -177,7 +180,9 @@ int MORSE_zplrnt_Tile( MORSE_desc_t *A, } morse_sequence_create(morse, &sequence); MORSE_zplrnt_Tile_Async( A, seed, sequence, &request ); + morse_sequence_wait(morse, sequence); + status = sequence->status; morse_sequence_destroy(morse, sequence); return status; diff --git a/compute/zposv.c b/compute/zposv.c index 01b79e4cd..418f623d0 100644 --- a/compute/zposv.c +++ b/compute/zposv.c @@ -159,9 +159,13 @@ int MORSE_zposv(MORSE_enum uplo, int N, int NRHS, MORSE_zposv_Tile_Async(uplo, &descA, &descB, sequence, &request); /* Submit the matrix conversion */ - morse_zooptile2lap(descA, A, NB, NB, LDA, N, sequence, &request); - morse_zooptile2lap(descB, B, NB, NB, LDB, NRHS, sequence, &request); + morse_ztile2lap( morse, &descAl, &descAt, + MorseUpperLower, sequence, &request ); + morse_ztile2lap( morse, &descBl, &descBt, + MorseUpperLower, sequence, &request ); + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); morse_desc_mat_free(&descB); @@ -235,6 +239,7 @@ int MORSE_zposv_Tile(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B) MORSE_zposv_Tile_Async(uplo, A, B, sequence, &request); 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 776bede31..5e87c910b 100644 --- a/compute/zpotrf.c +++ b/compute/zpotrf.c @@ -135,8 +135,8 @@ int MORSE_zpotrf(MORSE_enum uplo, int N, MORSE_zpotrf_Tile_Async(uplo, &descAt, sequence, &request); /* Submit the matrix conversion back */ - morse_ztile2lap( morse, &descAl, &descAt, uplo, - A, NB, NB, LDA, N, N, N, sequence, &request ); + morse_ztile2lap( morse, &descAl, &descAt, + uplo, sequence, &request ); morse_sequence_wait(morse, sequence); @@ -210,6 +210,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_flush( A, sequence ); + morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zpotri.c b/compute/zpotri.c index 14711dfa3..f88cb5148 100644 --- a/compute/zpotri.c +++ b/compute/zpotri.c @@ -126,8 +126,11 @@ int MORSE_zpotri(MORSE_enum uplo, int N, MORSE_zpotri_Tile_Async(uplo, &descA, sequence, &request); /* Submit the matrix conversion */ - morse_zooptile2lap(descA, A, NB, NB, LDA, N, sequence, &request); + morse_ztile2lap( morse, &descAl, &descAt, + MorseUpperLower, sequence, &request ); + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); status = sequence->status; @@ -194,6 +197,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_flush( A, sequence ); + morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zpotrimm.c b/compute/zpotrimm.c index ed4f3479f..f45957e61 100644 --- a/compute/zpotrimm.c +++ b/compute/zpotrimm.c @@ -140,10 +140,15 @@ int MORSE_zpotrimm(MORSE_enum uplo, int N, MORSE_zpotrimm_Tile_Async(uplo, &descA, &descB, &descC, sequence, &request); /* Submit the matrix conversion */ - morse_zooptile2lap(descA, A, NB, NB, LDA, N, sequence, &request); - morse_zooptile2lap(descB, A, NB, NB, LDB, N, sequence, &request); - morse_zooptile2lap(descC, C, NB, NB, LDC, N, sequence, &request); + morse_ztile2lap( morse, &descAl, &descAt, + MorseUpperLower, sequence, &request ); + morse_ztile2lap( morse, &descBl, &descBt, + MorseUpperLower, sequence, &request ); + morse_ztile2lap( morse, &descCl, &descCt, + MorseUpperLower, sequence, &request ); + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); morse_desc_mat_free(&descB); morse_desc_mat_free(&descC); @@ -212,6 +217,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_flush( C, sequence ); + morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zpotrs.c b/compute/zpotrs.c index 65f0f37aa..242a53cbe 100644 --- a/compute/zpotrs.c +++ b/compute/zpotrs.c @@ -143,8 +143,11 @@ int MORSE_zpotrs(MORSE_enum uplo, int N, int NRHS, MORSE_zpotrs_Tile_Async(uplo, &descA, &descB, sequence, &request); /* Submit the matrix conversion */ - morse_zooptile2lap(descB, B, NB, NB, LDB, NRHS, sequence, &request); + morse_ztile2lap( morse, &descBl, &descBt, + MorseUpperLower, sequence, &request ); + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); morse_desc_mat_free(&descB); @@ -210,6 +213,7 @@ int MORSE_zpotrs_Tile(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B) MORSE_zpotrs_Tile_Async(uplo, A, B, sequence, &request); 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 e88e9242d..a18c58872 100644 --- a/compute/zsymm.c +++ b/compute/zsymm.c @@ -186,8 +186,11 @@ int MORSE_zsymm(MORSE_enum side, MORSE_enum uplo, int M, int N, side, uplo, alpha, &descA, &descB, beta, &descC, sequence, &request); /* Submit the matrix conversion */ - morse_zooptile2lap(descC, C, NB, NB, LDC, N, sequence, &request); + morse_ztile2lap( morse, &descCl, &descCt, + MorseUpperLower, sequence, &request ); + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); morse_desc_mat_free(&descB); morse_desc_mat_free(&descC); @@ -275,6 +278,7 @@ int MORSE_zsymm_Tile(MORSE_enum side, MORSE_enum uplo, 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 7a31807e8..388d8d8fa 100644 --- a/compute/zsyr2k.c +++ b/compute/zsyr2k.c @@ -190,8 +190,11 @@ int MORSE_zsyr2k(MORSE_enum uplo, MORSE_enum trans, int N, int K, MORSE_zsyr2k_Tile_Async(uplo, trans, alpha, &descA, &descB, beta, &descC, sequence, &request); /* Submit the matrix conversion */ - morse_zooptile2lap(descC, C, NB, NB, LDC, N, sequence, &request); + morse_ztile2lap( morse, &descCl, &descCt, + MorseUpperLower, sequence, &request ); + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); morse_desc_mat_free(&descB); morse_desc_mat_free(&descC); @@ -274,6 +277,7 @@ int MORSE_zsyr2k_Tile(MORSE_enum uplo, MORSE_enum trans, 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 74e021d18..215010573 100644 --- a/compute/zsyrk.c +++ b/compute/zsyrk.c @@ -174,8 +174,11 @@ int MORSE_zsyrk(MORSE_enum uplo, MORSE_enum trans, int N, int K, MORSE_zsyrk_Tile_Async(uplo, trans, alpha, &descA, beta, &descC, sequence, &request); /* Submit the matrix conversion */ - morse_zooptile2lap(descC, C, NB, NB, LDC, N, sequence, &request); + morse_ztile2lap( morse, &descCl, &descCt, + MorseUpperLower, sequence, &request ); + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); morse_desc_mat_free(&descC); @@ -252,6 +255,7 @@ int MORSE_zsyrk_Tile(MORSE_enum uplo, MORSE_enum trans, MORSE_zsyrk_Tile_Async(uplo, trans, alpha, A, beta, C, sequence, &request); 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 5c1f04b7e..83dcd0c39 100644 --- a/compute/zsysv.c +++ b/compute/zsysv.c @@ -156,9 +156,13 @@ int MORSE_zsysv(MORSE_enum uplo, int N, int NRHS, MORSE_zsysv_Tile_Async(uplo, &descA, &descB, sequence, &request); /* Submit the matrix conversion */ - morse_zooptile2lap(descA, A, NB, NB, LDA, N, sequence, &request); - morse_zooptile2lap(descB, B, NB, NB, LDB, NRHS, sequence, &request); + morse_ztile2lap( morse, &descAl, &descAt, + MorseUpperLower, sequence, &request ); + morse_ztile2lap( morse, &descBl, &descBt, + MorseUpperLower, sequence, &request ); + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); morse_desc_mat_free(&descB); @@ -228,6 +232,7 @@ int MORSE_zsysv_Tile(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B) MORSE_zsysv_Tile_Async(uplo, A, B, sequence, &request); 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 17aaecd4c..75742227a 100644 --- a/compute/zsytrf.c +++ b/compute/zsytrf.c @@ -130,8 +130,11 @@ int MORSE_zsytrf(MORSE_enum uplo, int N, MORSE_zsytrf_Tile_Async(uplo, &descA, sequence, &request); /* Submit the matrix conversion */ - morse_zooptile2lap(descA, A, NB, NB, LDA, N, sequence, &request); + morse_ztile2lap( morse, &descAl, &descAt, + MorseUpperLower, sequence, &request ); + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); status = sequence->status; @@ -195,6 +198,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_flush( A, sequence ); + morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zsytrs.c b/compute/zsytrs.c index dbdd5c27f..cb5587397 100644 --- a/compute/zsytrs.c +++ b/compute/zsytrs.c @@ -142,8 +142,11 @@ int MORSE_zsytrs(MORSE_enum uplo, int N, int NRHS, MORSE_zsytrs_Tile_Async(uplo, &descA, &descB, sequence, &request); /* Submit the matrix conversion */ - morse_zooptile2lap(descB, B, NB, NB, LDB, NRHS, sequence, &request); + morse_ztile2lap( morse, &descBl, &descBt, + MorseUpperLower, sequence, &request ); + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); morse_desc_mat_free(&descB); @@ -206,6 +209,7 @@ int MORSE_zsytrs_Tile(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B) MORSE_zsytrs_Tile_Async(uplo, A, B, sequence, &request); RUNTIME_desc_flush( A, sequence ); RUNTIME_desc_flush( B, sequence ); + morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/ztpgqrt.c b/compute/ztpgqrt.c index 99360ccd0..9c3acdf8a 100644 --- a/compute/ztpgqrt.c +++ b/compute/ztpgqrt.c @@ -221,9 +221,13 @@ int MORSE_ztpgqrt( int M, int N, int K, int L, MORSE_ztpgqrt_Tile_Async(L, &descV1, descT1, &descV2, descT2, &descQ1, &descQ2, sequence, &request); /* Submit the matrix conversion */ - morse_zooptile2lap(descQ1, Q1, NB, NB, LDQ1, N, sequence, &request); - morse_zooptile2lap(descQ2, Q2, NB, NB, LDQ2, N, sequence, &request); + morse_ztile2lap( morse, &descQ1l, &descQ1t, + MorseUpperLower, sequence, &request ); + morse_ztile2lap( morse, &descQ2l, &descQ2t, + MorseUpperLower, sequence, &request ); + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descV1); morse_desc_mat_free(&descV2); morse_desc_mat_free(&descQ1); @@ -281,6 +285,7 @@ int MORSE_ztpgqrt_Tile( int L, MORSE_ztpgqrt_Tile_Async(L, V1, T1, V2, T2, Q1, Q2, sequence, &request); 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 e1d19769e..b87bf269e 100644 --- a/compute/ztpqrt.c +++ b/compute/ztpqrt.c @@ -195,9 +195,13 @@ int MORSE_ztpqrt( int M, int N, int L, MORSE_ztpqrt_Tile_Async(L, &descA, &descB, descT, sequence, &request); /* Submit the matrix conversion */ - morse_zooptile2lap(descA, A, NB, NB, LDA, N, sequence, &request); - morse_zooptile2lap(descB, B, NB, NB, LDB, N, sequence, &request); + morse_ztile2lap( morse, &descAl, &descAt, + MorseUpperLower, sequence, &request ); + morse_ztile2lap( morse, &descBl, &descBt, + MorseUpperLower, sequence, &request ); + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); morse_desc_mat_free(&descB); @@ -261,6 +265,7 @@ int MORSE_ztpqrt_Tile( int L, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_desc_t *T MORSE_ztpqrt_Tile_Async(L, A, B, T, sequence, &request); 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 cb088f2bd..938ee9f06 100644 --- a/compute/ztradd.c +++ b/compute/ztradd.c @@ -174,8 +174,11 @@ int MORSE_ztradd(MORSE_enum uplo, MORSE_enum trans, int M, int N, uplo, trans, alpha, &descA, beta, &descB, sequence, &request); /* Submit the matrix conversion */ - morse_zooptile2lap( descB, B, NB, NB, LDB, N, sequence, &request); + morse_ztile2lap( morse, &descBl, &descBt, + MorseUpperLower, sequence, &request ); + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); morse_desc_mat_free(&descB); @@ -256,6 +259,7 @@ int MORSE_ztradd_Tile(MORSE_enum uplo, MORSE_enum trans, MORSE_ztradd_Tile_Async(uplo, trans, alpha, A, beta, B, sequence, &request); 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 6bb0e62b3..70718e1ae 100644 --- a/compute/ztrmm.c +++ b/compute/ztrmm.c @@ -188,8 +188,11 @@ int MORSE_ztrmm(MORSE_enum side, MORSE_enum uplo, side, uplo, transA, diag, alpha, &descA, &descB, sequence, &request); /* Submit the matrix conversion */ - morse_zooptile2lap(descB, B, NB, NB, LDB, NRHS, sequence, &request); + morse_ztile2lap( morse, &descBl, &descBt, + MorseUpperLower, sequence, &request ); + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); morse_desc_mat_free(&descB); @@ -278,6 +281,7 @@ int MORSE_ztrmm_Tile(MORSE_enum side, MORSE_enum uplo, MORSE_ztrmm_Tile_Async(side, uplo, transA, diag, alpha, A, B, sequence, &request); 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 fe914cae9..652d6eb45 100644 --- a/compute/ztrsm.c +++ b/compute/ztrsm.c @@ -186,8 +186,11 @@ int MORSE_ztrsm(MORSE_enum side, MORSE_enum uplo, side, uplo, transA, diag, alpha, &descA, &descB, sequence, &request); /* Submit the matrix conversion */ - morse_zooptile2lap(descB, B, NB, NB, LDB, NRHS, sequence, &request); + morse_ztile2lap( morse, &descBl, &descBt, + MorseUpperLower, sequence, &request ); + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); morse_desc_mat_free(&descB); @@ -276,6 +279,7 @@ int MORSE_ztrsm_Tile(MORSE_enum side, MORSE_enum uplo, MORSE_ztrsm_Tile_Async(side, uplo, transA, diag, alpha, A, B, sequence, &request); 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 3d2eb3963..0f8bbf2b6 100644 --- a/compute/ztrsmpl.c +++ b/compute/ztrsmpl.c @@ -140,8 +140,11 @@ int MORSE_ztrsmpl(int N, int NRHS, MORSE_ztrsmpl_Tile_Async(&descA, descL, IPIV, &descB, sequence, &request); /* Submit the matrix conversion */ - morse_zooptile2lap(descB, B, NB, NB, LDB, NRHS, sequence, &request); + morse_ztile2lap( morse, &descBl, &descBt, + MorseUpperLower, sequence, &request ); + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); morse_desc_mat_free(&descB); @@ -205,6 +208,7 @@ int MORSE_ztrsmpl_Tile(MORSE_desc_t *A, MORSE_desc_t *L, int *IPIV, MORSE_desc_t MORSE_ztrsmpl_Tile_Async(A, L, IPIV, B, sequence, &request); 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 51099d097..dd5cf3306 100644 --- a/compute/ztrtri.c +++ b/compute/ztrtri.c @@ -138,8 +138,11 @@ int MORSE_ztrtri(MORSE_enum uplo, MORSE_enum diag, int N, MORSE_ztrtri_Tile_Async(uplo, diag, &descA, sequence, &request); /* Submit the matrix conversion */ - morse_zooptile2lap(descA, A, NB, NB, LDA, N, sequence, &request); + morse_ztile2lap( morse, &descAl, &descAt, + MorseUpperLower, sequence, &request ); + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); status = sequence->status; @@ -213,6 +216,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_flush( A, sequence ); + morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/compute/zunglq.c b/compute/zunglq.c index 4b281a3ad..854d88894 100644 --- a/compute/zunglq.c +++ b/compute/zunglq.c @@ -146,8 +146,11 @@ int MORSE_zunglq(int M, int N, int K, MORSE_zunglq_Tile_Async(&descA, descT, &descQ, sequence, &request); /* Submit the matrix conversion */ - morse_zooptile2lap(descQ, Q, NB, NB, LDQ, N, sequence, &request); + morse_ztile2lap( morse, &descQl, &descQt, + MorseUpperLower, sequence, &request ); + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); morse_desc_mat_free(&descQ); @@ -207,6 +210,7 @@ int MORSE_zunglq_Tile(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *Q) MORSE_zunglq_Tile_Async(A, T, Q, sequence, &request); 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 00cbb5179..5fd114954 100644 --- a/compute/zunglq_param.c +++ b/compute/zunglq_param.c @@ -143,8 +143,11 @@ int MORSE_zunglq_param(const libhqr_tree_t *qrtree, int M, int N, int K, MORSE_zunglq_param_Tile_Async(qrtree, &descA, descTS, descTT, &descQ, sequence, &request); /* Submit the matrix conversion */ - morse_zooptile2lap(descQ, Q, NB, NB, LDQ, N, sequence, &request); + morse_ztile2lap( morse, &descQl, &descQt, + MorseUpperLower, sequence, &request ); + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); morse_desc_mat_free(&descQ); @@ -204,6 +207,7 @@ int MORSE_zunglq_param_Tile(const libhqr_tree_t *qrtree, MORSE_desc_t *A, MORSE_ MORSE_zunglq_param_Tile_Async(qrtree, A, TS, TT, Q, sequence, &request); 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 804daad24..e482c3ac9 100644 --- a/compute/zungqr.c +++ b/compute/zungqr.c @@ -145,8 +145,11 @@ int MORSE_zungqr(int M, int N, int K, MORSE_zungqr_Tile_Async(&descA, descT, &descQ, sequence, &request); /* Submit the matrix conversion */ - morse_zooptile2lap(descQ, Q, NB, NB, LDQ, N, sequence, &request); + morse_ztile2lap( morse, &descQl, &descQt, + MorseUpperLower, sequence, &request ); + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); morse_desc_mat_free(&descQ); @@ -206,6 +209,7 @@ int MORSE_zungqr_Tile(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *Q) MORSE_zungqr_Tile_Async(A, T, Q, sequence, &request); 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 8fbc7d447..c209d8b4f 100644 --- a/compute/zungqr_param.c +++ b/compute/zungqr_param.c @@ -144,8 +144,11 @@ int MORSE_zungqr_param(const libhqr_tree_t *qrtree, MORSE_zungqr_param_Tile_Async(qrtree, &descA, descTS, descTT, &descQ, sequence, &request); /* Submit the matrix conversion */ - morse_zooptile2lap(descQ, Q, NB, NB, LDQ, N, sequence, &request); + morse_ztile2lap( morse, &descQl, &descQt, + MorseUpperLower, sequence, &request ); + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); morse_desc_mat_free(&descQ); @@ -205,6 +208,7 @@ int MORSE_zungqr_param_Tile(const libhqr_tree_t *qrtree, MORSE_desc_t *A, MORSE_ MORSE_zungqr_param_Tile_Async(qrtree, A, TS, TT, Q, sequence, &request); 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 e0769ff47..385e898f7 100644 --- a/compute/zunmlq.c +++ b/compute/zunmlq.c @@ -184,8 +184,11 @@ int MORSE_zunmlq(MORSE_enum side, MORSE_enum trans, int M, int N, int K, side, trans, &descA, descT, &descC, sequence, &request); /* Submit the matrix conversion */ - morse_zooptile2lap(descC, C, NB, NB, LDC, N, sequence, &request); + morse_ztile2lap( morse, &descCl, &descCt, + MorseUpperLower, sequence, &request ); + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); morse_desc_mat_free(&descC); @@ -260,6 +263,7 @@ int MORSE_zunmlq_Tile(MORSE_enum side, MORSE_enum trans, MORSE_zunmlq_Tile_Async(side, trans, A, T, C, sequence, &request); 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 49ead29a8..fd065cdc1 100644 --- a/compute/zunmlq_param.c +++ b/compute/zunmlq_param.c @@ -183,8 +183,11 @@ int MORSE_zunmlq_param(const libhqr_tree_t *qrtree, MORSE_enum side, MORSE_enum qrtree, side, trans, &descA, descTS, descTT, &descC, sequence, &request); /* Submit the matrix conversion */ - morse_zooptile2lap(descC, C, NB, NB, LDC, N, sequence, &request); + morse_ztile2lap( morse, &descCl, &descCt, + MorseUpperLower, sequence, &request ); + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); morse_desc_mat_free(&descC); @@ -259,6 +262,7 @@ int MORSE_zunmlq_param_Tile(const libhqr_tree_t *qrtree, MORSE_enum side, MORSE_ MORSE_zunmlq_param_Tile_Async(qrtree, side, trans, A, TS, TT, C, sequence, &request); 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 110e901c5..711543b02 100644 --- a/compute/zunmqr.c +++ b/compute/zunmqr.c @@ -187,8 +187,11 @@ int MORSE_zunmqr(MORSE_enum side, MORSE_enum trans, int M, int N, int K, side, trans, &descA, descT, &descC, sequence, &request); /* Submit the matrix conversion */ - morse_zooptile2lap(descC, C, NB, NB, LDC, N, sequence, &request); + morse_ztile2lap( morse, &descCl, &descCt, + MorseUpperLower, sequence, &request ); + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); morse_desc_mat_free(&descC); @@ -264,6 +267,7 @@ int MORSE_zunmqr_Tile(MORSE_enum side, MORSE_enum trans, MORSE_zunmqr_Tile_Async(side, trans, A, T, C, sequence, &request); 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 67365cf93..3ab4e9606 100644 --- a/compute/zunmqr_param.c +++ b/compute/zunmqr_param.c @@ -188,8 +188,11 @@ int MORSE_zunmqr_param(const libhqr_tree_t *qrtree, qrtree, side, trans, &descA, descTS, descTT, &descC, sequence, &request); /* Submit the matrix conversion */ - morse_zooptile2lap(descC, C, NB, NB, LDC, N, sequence, &request); + morse_ztile2lap( morse, &descCl, &descCt, + MorseUpperLower, sequence, &request ); + morse_sequence_wait(morse, sequence); + morse_desc_mat_free(&descA); morse_desc_mat_free(&descC); @@ -265,6 +268,7 @@ int MORSE_zunmqr_param_Tile(const libhqr_tree_t *qrtree, MORSE_enum side, MORSE_ MORSE_zunmqr_param_Tile_Async(qrtree, side, trans, A, TS, TT, C, sequence, &request); RUNTIME_desc_flush( A, sequence ); RUNTIME_desc_flush( C, sequence ); + morse_sequence_wait(morse, sequence); status = sequence->status; diff --git a/control/compute_z.h b/control/compute_z.h index 6314c01be..771a8fbb5 100644 --- a/control/compute_z.h +++ b/control/compute_z.h @@ -220,18 +220,17 @@ morse_zlap2tile( MORSE_context_t *morse, * in LAPACK interface calls */ static inline int -morse_ztile2lap( MORSE_context_t *morse, - MORSE_desc_t *descAl, MORSE_desc_t *descAt, - MORSE_enum uplo, MORSE_Complex64_t *A, int mb, int nb, int lm, int ln, int m, int n, - MORSE_sequence_t *seq, MORSE_request_t *req ) +morse_ztile2lap( MORSE_context_t *morse, MORSE_desc_t *descAl, MORSE_desc_t *descAt, + MORSE_enum uplo, MORSE_sequence_t *seq, MORSE_request_t *req ) { if ( MORSE_TRANSLATION == MORSE_OUTOFPLACE ) { morse_pzlacpy( uplo, descAt, descAl, seq, req ); } else { morse_fatal_error( "morse_ztile2lap", "INPLACE translation not supported yet"); - /* MORSE_zgecfi_Async( lm, ln, A, MorseCCRB, mb, nb, */ - /* MorseCM, mb, nb, seq, req ); */ + /* MORSE_zgecfi_Async( descAl->lm, descAl->ln, descAl->mat, */ + /* MorseCCRB, descAl->mb, descAl->nb, */ + /* MorseCM, descAl->mb, descAl->nb, seq, req ); */ } RUNTIME_desc_flush( descAl, seq ); RUNTIME_desc_flush( descAt, seq ); -- GitLab