diff --git a/runtime/quark/codelets/codelet_zlag2c.c b/runtime/quark/codelets/codelet_zlag2c.c index 0cbac51c0ae09d23fba6b4fb4bbfdd34faa035e6..9e097eb26cf193ef0e0ca785a7cfda2e488ddc5b 100644 --- a/runtime/quark/codelets/codelet_zlag2c.c +++ b/runtime/quark/codelets/codelet_zlag2c.c @@ -35,12 +35,9 @@ void CORE_zlag2c_quark(Quark *quark) int ldb; RUNTIME_sequence_t *sequence; RUNTIME_request_t *request; - int info; quark_unpack_args_8(quark, m, n, A, lda, B, ldb, sequence, request); CORE_zlag2c( m, n, A, lda, B, ldb); - if (sequence->status == CHAMELEON_SUCCESS && info != 0) - RUNTIME_sequence_flush(quark, sequence, request, info); } void INSERT_TASK_zlag2c(const RUNTIME_option_t *options, diff --git a/runtime/starpu/codelets/codelet_zgetrf.c b/runtime/starpu/codelets/codelet_zgetrf.c index 74ed2c3e604f687c300b1f63217efac71540adf2..bfdfc86e50e1f1c70ce3d6dbd757cb0ad504ea43 100644 --- a/runtime/starpu/codelets/codelet_zgetrf.c +++ b/runtime/starpu/codelets/codelet_zgetrf.c @@ -47,6 +47,8 @@ void INSERT_TASK_zgetrf( const RUNTIME_option_t *options, STARPU_VALUE, &IPIV, sizeof(int*), STARPU_VALUE, &check_info, sizeof(cham_bool_t), STARPU_VALUE, &iinfo, sizeof(int), + STARPU_VALUE, &(options->sequence), sizeof(RUNTIME_sequence_t*), + STARPU_VALUE, &(options->request), sizeof(RUNTIME_request_t*), STARPU_PRIORITY, options->priority, STARPU_CALLBACK, callback, #if defined(CHAMELEON_CODELETS_HAVE_NAME) @@ -66,11 +68,18 @@ static void cl_zgetrf_cpu_func(void *descr[], void *cl_arg) int *IPIV; cham_bool_t check_info; int iinfo; + RUNTIME_sequence_t *sequence; + RUNTIME_request_t *request; int info = 0; A = (CHAMELEON_Complex64_t *)STARPU_MATRIX_GET_PTR(descr[0]); - starpu_codelet_unpack_args(cl_arg, &m, &n, &lda, &IPIV, &check_info, &iinfo); + + starpu_codelet_unpack_args(cl_arg, &m, &n, &lda, &IPIV, &check_info, &iinfo, &sequence, &request); CORE_zgetrf( m, n, A, lda, IPIV, &info ); + + if ( (sequence->status == CHAMELEON_SUCCESS) && (info != 0) ) { + RUNTIME_sequence_flush( NULL, sequence, request, iinfo+info ); + } } #endif /* !defined(CHAMELEON_SIMULATION) */ diff --git a/runtime/starpu/codelets/codelet_zgetrf_incpiv.c b/runtime/starpu/codelets/codelet_zgetrf_incpiv.c index 4c701b35cd8379f66f41425c4e4fc787469b837a..7b78a48e886be82734fee12cb522158115dd1f53 100644 --- a/runtime/starpu/codelets/codelet_zgetrf_incpiv.c +++ b/runtime/starpu/codelets/codelet_zgetrf_incpiv.c @@ -113,6 +113,8 @@ void INSERT_TASK_zgetrf_incpiv(const RUNTIME_option_t *options, STARPU_VALUE, &iinfo, sizeof(int), STARPU_SCRATCH, options->ws_worker, STARPU_VALUE, &h_work, sizeof(CHAMELEON_starpu_ws_t *), + STARPU_VALUE, &(options->sequence), sizeof(RUNTIME_sequence_t*), + STARPU_VALUE, &(options->request), sizeof(RUNTIME_request_t*), STARPU_PRIORITY, options->priority, STARPU_CALLBACK, callback, #if defined(CHAMELEON_CODELETS_HAVE_NAME) @@ -134,13 +136,18 @@ static void cl_zgetrf_incpiv_cpu_func(void *descr[], void *cl_arg) int *IPIV; cham_bool_t check_info; int iinfo; - + RUNTIME_sequence_t *sequence; + RUNTIME_request_t *request; int info = 0; A = (CHAMELEON_Complex64_t *)STARPU_MATRIX_GET_PTR(descr[0]); - starpu_codelet_unpack_args(cl_arg, &m, &n, &ib, &lda, &ldl, &IPIV, &check_info, &iinfo, &h_work); + starpu_codelet_unpack_args(cl_arg, &m, &n, &ib, &lda, &ldl, &IPIV, &check_info, &iinfo, &h_work, &sequence, &request); CORE_zgetrf_incpiv(m, n, ib, A, lda, IPIV, &info); + + if ( (sequence->status == CHAMELEON_SUCCESS) && (info != 0) ) { + RUNTIME_sequence_flush( NULL, sequence, request, iinfo+info ); + } } #endif /* !defined(CHAMELEON_SIMULATION) */ diff --git a/runtime/starpu/codelets/codelet_zgetrf_nopiv.c b/runtime/starpu/codelets/codelet_zgetrf_nopiv.c index 95037a66f484457833c8984950c83f210655d52b..70e9c9d1bdfa74968009aa7c061bebd3174bb16f 100644 --- a/runtime/starpu/codelets/codelet_zgetrf_nopiv.c +++ b/runtime/starpu/codelets/codelet_zgetrf_nopiv.c @@ -92,6 +92,8 @@ void INSERT_TASK_zgetrf_nopiv(const RUNTIME_option_t *options, STARPU_RW, RTBLKADDR(A, CHAMELEON_Complex64_t, Am, An), STARPU_VALUE, &lda, sizeof(int), STARPU_VALUE, &iinfo, sizeof(int), + STARPU_VALUE, &(options->sequence), sizeof(RUNTIME_sequence_t*), + STARPU_VALUE, &(options->request), sizeof(RUNTIME_request_t*), STARPU_PRIORITY, options->priority, STARPU_CALLBACK, callback, #if defined(CHAMELEON_CODELETS_HAVE_NAME) @@ -112,11 +114,18 @@ static void cl_zgetrf_nopiv_cpu_func(void *descr[], void *cl_arg) CHAMELEON_Complex64_t *A; int lda; int iinfo; + RUNTIME_sequence_t *sequence; + RUNTIME_request_t *request; int info = 0; A = (CHAMELEON_Complex64_t *)STARPU_MATRIX_GET_PTR(descr[0]); - starpu_codelet_unpack_args(cl_arg, &m, &n, &ib, &lda, &iinfo); + + starpu_codelet_unpack_args(cl_arg, &m, &n, &ib, &lda, &iinfo, &sequence, &request); CORE_zgetrf_nopiv(m, n, ib, A, lda, &info); + + if ( (sequence->status == CHAMELEON_SUCCESS) && (info != 0) ) { + RUNTIME_sequence_flush( NULL, sequence, request, iinfo+info ); + } } #endif /* !defined(CHAMELEON_SIMULATION) */ diff --git a/runtime/starpu/codelets/codelet_zpotrf.c b/runtime/starpu/codelets/codelet_zpotrf.c index cabfed48c9faadf887dc2d59a63ad57b0253e6fa..fc55ced7abfab26e5fb94548ad59418903010fa1 100644 --- a/runtime/starpu/codelets/codelet_zpotrf.c +++ b/runtime/starpu/codelets/codelet_zpotrf.c @@ -51,6 +51,8 @@ void INSERT_TASK_zpotrf(const RUNTIME_option_t *options, STARPU_RW, RTBLKADDR(A, CHAMELEON_Complex64_t, Am, An), STARPU_VALUE, &lda, sizeof(int), STARPU_VALUE, &iinfo, sizeof(int), + STARPU_VALUE, &(options->sequence), sizeof(RUNTIME_sequence_t*), + STARPU_VALUE, &(options->request), sizeof(RUNTIME_request_t*), /* STARPU_SCRATCH, options->ws_worker, */ STARPU_PRIORITY, options->priority, STARPU_CALLBACK, callback, @@ -69,12 +71,18 @@ static void cl_zpotrf_cpu_func(void *descr[], void *cl_arg) CHAMELEON_Complex64_t *A; int lda; int iinfo; + RUNTIME_sequence_t *sequence; + RUNTIME_request_t *request; int info = 0; A = (CHAMELEON_Complex64_t *)STARPU_MATRIX_GET_PTR(descr[0]); - starpu_codelet_unpack_args(cl_arg, &uplo, &n, &lda, &iinfo); + starpu_codelet_unpack_args(cl_arg, &uplo, &n, &lda, &iinfo, &sequence, &request); CORE_zpotrf(uplo, n, A, lda, &info); + + if ( (sequence->status == CHAMELEON_SUCCESS) && (info != 0) ) { + RUNTIME_sequence_flush( NULL, sequence, request, iinfo+info ); + } } #endif /* !defined(CHAMELEON_SIMULATION) */ diff --git a/runtime/starpu/codelets/codelet_ztrtri.c b/runtime/starpu/codelets/codelet_ztrtri.c index 0d131109309a4fee3268358516f3572f77fc600c..823237a59bbea34e963e206966cb36e2cd6cbb7d 100644 --- a/runtime/starpu/codelets/codelet_ztrtri.c +++ b/runtime/starpu/codelets/codelet_ztrtri.c @@ -53,6 +53,8 @@ void INSERT_TASK_ztrtri(const RUNTIME_option_t *options, STARPU_RW, RTBLKADDR(A, CHAMELEON_Complex64_t, Am, An), STARPU_VALUE, &lda, sizeof(int), STARPU_VALUE, &iinfo, sizeof(int), + STARPU_VALUE, &(options->sequence), sizeof(RUNTIME_sequence_t*), + STARPU_VALUE, &(options->request), sizeof(RUNTIME_request_t*), STARPU_PRIORITY, options->priority, STARPU_CALLBACK, callback, #if defined(CHAMELEON_CODELETS_HAVE_NAME) @@ -71,12 +73,18 @@ static void cl_ztrtri_cpu_func(void *descr[], void *cl_arg) CHAMELEON_Complex64_t *A; int LDA; int iinfo; - + RUNTIME_sequence_t *sequence; + RUNTIME_request_t *request; int info = 0; A = (CHAMELEON_Complex64_t *)STARPU_MATRIX_GET_PTR(descr[0]); - starpu_codelet_unpack_args(cl_arg, &uplo, &diag, &N, &LDA, &iinfo); + + starpu_codelet_unpack_args(cl_arg, &uplo, &diag, &N, &LDA, &iinfo, &sequence, &request); CORE_ztrtri(uplo, diag, N, A, LDA, &info); + + if ( (sequence->status == CHAMELEON_SUCCESS) && (info != 0) ) { + RUNTIME_sequence_flush( NULL, sequence, request, iinfo+info ); + } } #endif /* !defined(CHAMELEON_SIMULATION) */ diff --git a/runtime/starpu/codelets/codelet_ztstrf.c b/runtime/starpu/codelets/codelet_ztstrf.c index b943c4091373dd260dc67247652e9eed82b8fa2e..b97bae2a92b2be90a431eabc9fd8b809d3dea19e 100644 --- a/runtime/starpu/codelets/codelet_ztstrf.c +++ b/runtime/starpu/codelets/codelet_ztstrf.c @@ -130,6 +130,8 @@ void INSERT_TASK_ztstrf(const RUNTIME_option_t *options, STARPU_VALUE, &nb, sizeof(int), STARPU_VALUE, &check_info, sizeof(cham_bool_t), STARPU_VALUE, &iinfo, sizeof(int), + STARPU_VALUE, &(options->sequence), sizeof(RUNTIME_sequence_t*), + STARPU_VALUE, &(options->request), sizeof(RUNTIME_request_t*), STARPU_PRIORITY, options->priority, STARPU_CALLBACK, callback, #if defined(CHAMELEON_CODELETS_HAVE_NAME) @@ -158,7 +160,8 @@ static void cl_ztstrf_cpu_func(void *descr[], void *cl_arg) int ldwork; cham_bool_t check_info; int iinfo; - + RUNTIME_sequence_t *sequence; + RUNTIME_request_t *request; int info = 0; U = (CHAMELEON_Complex64_t *)STARPU_MATRIX_GET_PTR(descr[0]); @@ -166,9 +169,15 @@ static void cl_ztstrf_cpu_func(void *descr[], void *cl_arg) L = (CHAMELEON_Complex64_t *)STARPU_MATRIX_GET_PTR(descr[2]); WORK = (CHAMELEON_Complex64_t *)STARPU_MATRIX_GET_PTR(descr[3]); - starpu_codelet_unpack_args(cl_arg, &m, &n, &ib, &nb, &ldu, &lda, &ldl, &IPIV, &d_work, &ldwork, &check_info, &iinfo); + starpu_codelet_unpack_args(cl_arg, &m, &n, &ib, &nb, &ldu, &lda, &ldl, + &IPIV, &d_work, &ldwork, &check_info, &iinfo, + &sequence, &request); CORE_ztstrf(m, n, ib, nb, U, ldu, A, lda, L, ldl, IPIV, WORK, ldwork, &info); + + if ( (sequence->status == CHAMELEON_SUCCESS) && (info != 0) ) { + RUNTIME_sequence_flush( NULL, sequence, request, iinfo+info ); + } } #endif /* !defined(CHAMELEON_SIMULATION) */