diff --git a/compute/zbuild.c b/compute/zbuild.c index 71fadaac9434b5d8357a9bddac6360fb0cfefe02..24e03410e290cc218e1510f463012eeb46baee7a 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 fc18ca2d37eaf83c3992d39697554c626c7da66e..501e5e42e95fe9401faa7b6e00427e5f3eb28147 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 191ae7a0fed19fa4c948e08e605e21ffacca060f..6047b801e054dd3edd8214c32350c0d80701f7dd 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 270dba3ba3c37c66cc376092931076dacfcc1991..2c90ef470acd98a43c484b463f0515a9ac6ad53a 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 124188a514898423ca06e1cc6fac403ea2787cd4..290a3627aa3fb0a1b7c593ad07d27daf8064c0f7 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 0a03c9cbf715b9c022d3c71e57068cecaa0030ce..e2efe30d1fa4ab39b85feac01484098da52954d9 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 33d50af978e5284ea80e2b48b410c79e81ba0f86..885d1e3de2e2f2a8f79fe983e8bc879fc4961fd7 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 733eeed65c9e6f817dd5d04aea67d5054bc3fb1a..ee5d6640bf1e4c67930b5ae640dc7fe6b377ea62 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 00f7a3b1410cecb74abefb945009ba8085481c87..1ab3eda0d33da823b60e2c4e484aec770719930a 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 00a462be33b40ad29846c534916da75112148edd..cf96233802f6ca949215eeab259ae416e5045735 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 c5db6d1d8ff5daa5e349a23662f06799d1e03f66..2384113225c51eaf438f6aed87b252a36086fa07 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 30d4151466d8137545e36c343b81c8d60bf4af74..445daf03f02fcc7f3ef71d77c5f05b45cc702f02 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 bf285e43105c65ad2b3040992a6beff70542eb29..467955410754bc464ee17af6152ab68565bf0d7d 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 1c1abc5161efe305d408b137e31ae756fb4226fa..e43014e2fa1207fa23b54873a0505a28148c4d0d 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 d1fcc7c66bb1e241138b7daade04e001c9b6efcd..1693481d3703c4e6744501e6cd1d7ca82142cd4a 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 d7e7060b9092d2b8f80d01ac5cd1cdd1f9612815..b55aa9d82179b9659606aa4b4ccf22658c03511a 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 f12be25c1edfa078e0b431e86bd593e1b9ce6ec5..bfad3adf256c604fc15be4b0ac3247833d7305ec 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 87f0d117c6efcf82b6cec68a463716784fda85d2..344f1d26afd1e5227a13f1d788423de27b034e70 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 8be117d8aa4fb6853caea8d6bda137f5255cd1be..536a51113a9451557eb45fca96f9149adfbcdf0a 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 08858c5d6556673906c3c32a6220643173215eb5..f3fdfc502e344cc440cf17df9c09e2964922eb64 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 9ea48624212c3f8320c921d43cd972ec4c66a1a8..67d343211b309a41027bdad36a3f75959c878f49 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 7cf7374f3857de337f2f399ebfaa3af151192118..ab49a42e2e4f6bfd2f1fd6291e2b6f97099acade 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 a4c3f059db3dead7e2dad6b8ef0660f04870cfac..03c76ebf9e02e2c8fd7cef77f7b90558b32ed673 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 64b671dc94a76cd966fa7497286c7622b5892dfa..05901be70e0a151e00b09677ce5abddb6acb9ee8 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 e895ce6b55abb221590bb1b2aae28c4462c54fd7..b63b5d1a7979af0a55feba49300e63e7af267d7b 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 9c749e85e24641849fb11c1e23183ddf7ac75019..885ae54d578b236a8f27b387276b2a7e761f5828 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 3267d74614d0b2ba03ca95517205e47970f5c106..f1ea38a96d327c17516fdb9397eae22cd12b5a0a 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 455f74ec975d999dd33d292b4206a62d615f058a..ce7e4fa199dbd06fafe8e4cc056ecf0539061e70 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 9a10fe7897e697d6b4ab6c945462330c50d412f7..8912e0f619352d66f2945a34b29b608bbf79b638 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 8ae33b76bff1589e88ab8498eb49e2a12ce2be87..61dcb8be9e2985b99eb071738f129729cbd23d58 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 242fb1aeeaabc6d640fd986b58863c0bf30f5688..2b1979406954eb715ff85dc8ee408563a03f4af4 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 9f74ff42a193bd7ecb1608942202f6c17b5f50cf..f0b8269fbac856ed012f2f89592b53377c32eabd 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 eb16a1751389a088b1325bd98505b97d2205e24a..a07910ca165226d21d14a6e1c1b20dc3457bd998 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 0d7af992710735c1e17462eb6e5d6d8f71bb6c36..7ba0cef44baacd46e7a18dc9764f32261c5200e7 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 d0264a234dc81a3d3880e1a87ed8c0dcf31b5070..7b4f36a67ce7383d89e9badd034a949d86c386a7 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 45e141e11fb5191fe9b2d40b94c7f7a58904f278..0040cd9e5583b5e0d54050c426e7ce8435e1498b 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 01b79e4cd3ed3a4c989605ef41bec120fe3b4955..418f623d05719b05230ba0e0a315119c16fdda41 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 776bede31105c335c8eaaf0bab634dede7f034aa..5e87c910b57d1adcd7f45a8e7c0de82c0cd8a330 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 14711dfa30123b71415cf49f95399e522f763672..f88cb514863bf9343c06cee28923e207c99a0623 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 ed4f3479f6baea21c5af303dafa34a7bfd400042..f45957e617a26e4fa368066f4f60eace59bd6db9 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 65f0f37aabe1bb0753560b1023af3ae9791d1e60..242a53cbe7726c5c8088811e4f802f5a5eea5ff8 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 e88e9242d8e0fac60924bfd13f73b71b0a93cd9d..a18c588727a106aa43c3a122dd4b4b9e45a56b90 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 7a31807e8b369bbdf414f8dfa2be1d38b2e5d37a..388d8d8fa5d6bafd2779169d722abf56b60586f9 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 74e021d18065c204813997683a8e58e9ea8bbbfe..215010573e5406888956c7a5a7c6f15a1e5dab70 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 5c1f04b7ef856e079239ade84cd296d9ad1213eb..83dcd0c39f9f872e717011d47741c4bba32b4bfe 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 17aaecd4cc60a7c6768ce220c48e0dfc2a830730..75742227aa7c8ed067038b561ca966f2c9cac542 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 dbdd5c27f404dc3a1d027e281d1760523895b3a9..cb5587397a4eb78894b3d86a0715e3e0a05949c5 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 99360ccd0d426354e0853ec78e8028c91e6213e0..9c3acdf8a515bbb78a1b884cba26d8fe6027b5cb 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 e1d19769e2fceb2f3e1dd726a97665af9c1e3144..b87bf269e4b76cabb4aab44788716fe312ebb038 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 cb088f2bdb43641556cbfc99f0276bba66ea933d..938ee9f06c0d54650ae82c2971d2cd3b76f118cc 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 6bb0e62b36a25f8c736025f781e9e1f687399336..70718e1aea8f37263a7999bdada1550a48e57038 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 fe914cae9865fbdc3c9b782a95731a41efd93ae4..652d6eb4531983f5ba2122435010a3e113c75b02 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 3d2eb39636de66602312a23cd6ac54dcce8161f5..0f8bbf2b66f95450076aa836e0cc1cde04219456 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 51099d09753c0efaea3a0eca64ab5903f94eaece..dd5cf330646d40f0aecd61c9b455977836a874df 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 4b281a3ad249288b68d20bf238c7ec74241148e0..854d8889494d1e293db7e4ad90239b7749e84d34 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 00cbb5179de2360256f2a14fb1c92c9816abc3b5..5fd114954d81a4d6e218b149c67c52f7bfe604f2 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 804daad2473d00b77332d1c69eee17247e549bd5..e482c3ac9dd704e3b5c9b20d8d0352581709d9ad 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 8fbc7d447098048c72233203bb72dd0ddbb6533a..c209d8b4f6c34df5e739c00dd5fc7b42aa543b78 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 e0769ff47f5ad2e7beeb95613f69b8a4f7a1f473..385e898f7c90db7fa7639fb7ddbc04c2a8b77081 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 49ead29a872117e8118a99fd9df3d2a812fe8f2c..fd065cdc1e39cfd6465f6af90e33257b04e0135c 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 110e901c5b1519263537d6294fd4a8bbe42f4921..711543b02c2b95ab9c527c8eac0565a6ed3047ee 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 67365cf93a7e8591948361d30969ba30d2526acd..3ab4e9606a59ba9015059636359d107eef985255 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 6314c01becc08bdea0be29120920e5af5046a5ba..771a8fbb560ed802178abc4c4b0420d93ad296bb 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 );