Commit 355f28be authored by PRUVOST Florent's avatar PRUVOST Florent

save the exit status of kernels when possible (parsec)

parent 25615999
Pipeline #44096 passed with stages
in 13 minutes and 58 seconds
......@@ -31,13 +31,19 @@ CORE_zgetrf_parsec( parsec_execution_stream_t *context,
int *IPIV;
cham_bool_t *check_info;
int iinfo;
RUNTIME_sequence_t *sequence;
RUNTIME_request_t *request;
int info;
parsec_dtd_unpack_args(
this_task, &m, &n, &A, &lda, &IPIV, &check_info, &iinfo );
this_task, &m, &n, &A, &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 );
}
(void)context;
return PARSEC_HOOK_RETURN_DONE;
}
......@@ -52,12 +58,14 @@ void INSERT_TASK_zgetrf(const RUNTIME_option_t *options,
parsec_dtd_taskpool_insert_task(
PARSEC_dtd_taskpool, CORE_zgetrf_parsec, options->priority, "getrf",
sizeof(int), &m, VALUE,
sizeof(int), &n, VALUE,
PASSED_BY_REF, RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | INOUT | AFFINITY,
sizeof(int), &lda, VALUE,
sizeof(int)*nb, IPIV, SCRATCH,
sizeof(cham_bool_t), &check_info, VALUE,
sizeof(int), &iinfo, VALUE,
sizeof(int), &m, VALUE,
sizeof(int), &n, VALUE,
PASSED_BY_REF, RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | INOUT | AFFINITY,
sizeof(int), &lda, VALUE,
sizeof(int)*nb, IPIV, SCRATCH,
sizeof(cham_bool_t), &check_info, VALUE,
sizeof(int), &iinfo, VALUE,
sizeof(RUNTIME_sequence_t*), &(options->sequence), VALUE,
sizeof(RUNTIME_request_t*), &(options->request), VALUE,
PARSEC_DTD_ARG_END );
}
......@@ -86,14 +86,19 @@ CORE_zgetrf_incpiv_parsec( parsec_execution_stream_t *context,
int *IPIV;
cham_bool_t *check_info;
int iinfo;
RUNTIME_sequence_t *sequence;
RUNTIME_request_t *request;
int info;
parsec_dtd_unpack_args(
this_task, &m, &n, &ib, &A, &lda, &IPIV, &check_info, &iinfo );
this_task, &m, &n, &ib, &A, &lda, &IPIV, &check_info, &iinfo, &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 );
}
(void)context;
return PARSEC_HOOK_RETURN_DONE;
}
......@@ -109,14 +114,16 @@ void INSERT_TASK_zgetrf_incpiv( const RUNTIME_option_t *options,
parsec_dtd_taskpool_insert_task(
PARSEC_dtd_taskpool, CORE_zgetrf_incpiv_parsec, options->priority, "getrf_inc",
sizeof(int), &m, VALUE,
sizeof(int), &n, VALUE,
sizeof(int), &ib, VALUE,
PASSED_BY_REF, RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | INOUT | AFFINITY,
sizeof(int), &lda, VALUE,
sizeof(int*), &IPIV, VALUE,
sizeof(int), &check_info, VALUE,
sizeof(int), &iinfo, VALUE,
sizeof(int), &m, VALUE,
sizeof(int), &n, VALUE,
sizeof(int), &ib, VALUE,
PASSED_BY_REF, RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | INOUT | AFFINITY,
sizeof(int), &lda, VALUE,
sizeof(int*), &IPIV, VALUE,
sizeof(int), &check_info, VALUE,
sizeof(int), &iinfo, VALUE,
sizeof(RUNTIME_sequence_t*), &(options->sequence), VALUE,
sizeof(RUNTIME_request_t*), &(options->request), VALUE,
PARSEC_DTD_ARG_END );
(void)L;
......
......@@ -77,13 +77,19 @@ CORE_zgetrf_nopiv_parsec( parsec_execution_stream_t *context,
CHAMELEON_Complex64_t *A;
int lda;
int iinfo;
RUNTIME_sequence_t *sequence;
RUNTIME_request_t *request;
int info;
parsec_dtd_unpack_args(
this_task, &m, &n, &ib, &A, &lda, &iinfo );
this_task, &m, &n, &ib, &A, &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 );
}
(void)context;
return PARSEC_HOOK_RETURN_DONE;
}
......@@ -97,12 +103,14 @@ void INSERT_TASK_zgetrf_nopiv(const RUNTIME_option_t *options,
parsec_dtd_taskpool_insert_task(
PARSEC_dtd_taskpool, CORE_zgetrf_nopiv_parsec, options->priority, "getrf_nopiv",
sizeof(int), &m, VALUE,
sizeof(int), &n, VALUE,
sizeof(int), &ib, VALUE,
PASSED_BY_REF, RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | INOUT | AFFINITY,
sizeof(int), &lda, VALUE,
sizeof(int), &iinfo, VALUE,
sizeof(int), &m, VALUE,
sizeof(int), &n, VALUE,
sizeof(int), &ib, VALUE,
PASSED_BY_REF, RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | INOUT | AFFINITY,
sizeof(int), &lda, VALUE,
sizeof(int), &iinfo, VALUE,
sizeof(RUNTIME_sequence_t*), &(options->sequence), VALUE,
sizeof(RUNTIME_request_t*), &(options->request), VALUE,
PARSEC_DTD_ARG_END );
(void)nb;
......
......@@ -35,7 +35,6 @@ CORE_zlag2c_parsec( parsec_execution_stream_t *context,
int lda;
CHAMELEON_Complex32_t *B;
int ldb;
int info;
parsec_dtd_unpack_args(
this_task, &m, &n, &A, &lda, &B, &ldb );
......
......@@ -31,16 +31,19 @@ CORE_zpotrf_parsec( parsec_execution_stream_t *context,
{
cham_uplo_t uplo;
int tempkm, ldak, iinfo, info;
RUNTIME_sequence_t *sequence;
RUNTIME_request_t *request;
CHAMELEON_Complex64_t *A;
parsec_dtd_unpack_args(
this_task, &uplo, &tempkm, &A, &ldak, &iinfo );
this_task, &uplo, &tempkm, &A, &ldak, &iinfo, &sequence, &request );
CORE_zpotrf( uplo, tempkm, A, ldak, &info );
/* if ( (sequence->status == CHAMELEON_SUCCESS) && (info != 0) ) { */
/* RUNTIME_sequence_flush( (CHAM_context_t*)quark, sequence, request, iinfo+info ); */
/* } */
if ( (sequence->status == CHAMELEON_SUCCESS) && (info != 0) ) {
RUNTIME_sequence_flush( NULL, sequence, request, iinfo+info );
}
(void)context;
(void)info;
(void)iinfo;
......@@ -56,11 +59,13 @@ void INSERT_TASK_zpotrf(const RUNTIME_option_t *options,
parsec_dtd_taskpool_insert_task(
PARSEC_dtd_taskpool, CORE_zpotrf_parsec, options->priority, "potrf",
sizeof(int), &uplo, VALUE,
sizeof(int), &n, VALUE,
PASSED_BY_REF, RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | INOUT | AFFINITY,
sizeof(int), &lda, VALUE,
sizeof(int), &iinfo, VALUE,
sizeof(int), &uplo, VALUE,
sizeof(int), &n, VALUE,
PASSED_BY_REF, RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | INOUT | AFFINITY,
sizeof(int), &lda, VALUE,
sizeof(int), &iinfo, VALUE,
sizeof(RUNTIME_sequence_t*), &(options->sequence), VALUE,
sizeof(RUNTIME_request_t*), &(options->request), VALUE,
PARSEC_DTD_ARG_END );
(void)nb;
......
......@@ -30,13 +30,19 @@ CORE_ztrtri_parsec( parsec_execution_stream_t *context,
CHAMELEON_Complex64_t *A;
int LDA;
int iinfo;
RUNTIME_sequence_t *sequence;
RUNTIME_request_t *request;
int info;
parsec_dtd_unpack_args(
this_task, &uplo, &diag, &N, &A, &LDA, &iinfo );
this_task, &uplo, &diag, &N, &A, &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 );
}
(void)context;
return PARSEC_HOOK_RETURN_DONE;
}
......@@ -51,12 +57,14 @@ void INSERT_TASK_ztrtri( const RUNTIME_option_t *options,
parsec_dtd_taskpool_insert_task(
PARSEC_dtd_taskpool, CORE_ztrtri_parsec, options->priority, "trtri",
sizeof(int), &uplo, VALUE,
sizeof(int), &diag, VALUE,
sizeof(int), &n, VALUE,
PASSED_BY_REF, RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | INOUT | AFFINITY,
sizeof(int), &lda, VALUE,
sizeof(int), &iinfo, VALUE,
sizeof(int), &uplo, VALUE,
sizeof(int), &diag, VALUE,
sizeof(int), &n, VALUE,
PASSED_BY_REF, RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | INOUT | AFFINITY,
sizeof(int), &lda, VALUE,
sizeof(int), &iinfo, VALUE,
sizeof(RUNTIME_sequence_t*), &(options->sequence), VALUE,
sizeof(RUNTIME_request_t*), &(options->request), VALUE,
PARSEC_DTD_ARG_END );
(void)nb;
......
......@@ -39,14 +39,19 @@ CORE_ztstrf_parsec( parsec_execution_stream_t *context,
int ldwork;
cham_bool_t *check_info;
int iinfo;
RUNTIME_sequence_t *sequence;
RUNTIME_request_t *request;
int info;
parsec_dtd_unpack_args(
this_task, &m, &n, &ib, &nb, &U, &ldu, &A, &lda, &L, &ldl, &IPIV, &WORK, &ldwork, &check_info, &iinfo );
this_task, &m, &n, &ib, &nb, &U, &ldu, &A, &lda, &L, &ldl, &IPIV, &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 );
}
(void)context;
return PARSEC_HOOK_RETURN_DONE;
}
......@@ -63,21 +68,23 @@ void INSERT_TASK_ztstrf(const RUNTIME_option_t *options,
parsec_dtd_taskpool_insert_task(
PARSEC_dtd_taskpool, CORE_ztstrf_parsec, options->priority, "tstrf",
sizeof(int), &m, VALUE,
sizeof(int), &n, VALUE,
sizeof(int), &ib, VALUE,
sizeof(int), &nb, VALUE,
PASSED_BY_REF, RTBLKADDR( U, CHAMELEON_Complex64_t, Um, Un ), chameleon_parsec_get_arena_index( U ) | INOUT,
sizeof(int), &ldu, VALUE,
PASSED_BY_REF, RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | INOUT | AFFINITY,
sizeof(int), &lda, VALUE,
PASSED_BY_REF, RTBLKADDR( L, CHAMELEON_Complex64_t, Lm, Ln ), chameleon_parsec_get_arena_index( L ) | OUTPUT,
sizeof(int), &ldl, VALUE,
sizeof(int*), &IPIV, VALUE,
sizeof(int), &m, VALUE,
sizeof(int), &n, VALUE,
sizeof(int), &ib, VALUE,
sizeof(int), &nb, VALUE,
PASSED_BY_REF, RTBLKADDR( U, CHAMELEON_Complex64_t, Um, Un ), chameleon_parsec_get_arena_index( U ) | INOUT,
sizeof(int), &ldu, VALUE,
PASSED_BY_REF, RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | INOUT | AFFINITY,
sizeof(int), &lda, VALUE,
PASSED_BY_REF, RTBLKADDR( L, CHAMELEON_Complex64_t, Lm, Ln ), chameleon_parsec_get_arena_index( L ) | OUTPUT,
sizeof(int), &ldl, VALUE,
sizeof(int*), &IPIV, VALUE,
sizeof(CHAMELEON_Complex64_t)*ib*nb, NULL, SCRATCH,
sizeof(int), &nb, VALUE,
sizeof(int), &check_info, VALUE,
sizeof(int), &iinfo, VALUE,
sizeof(int), &nb, VALUE,
sizeof(int), &check_info, VALUE,
sizeof(int), &iinfo, VALUE,
sizeof(RUNTIME_sequence_t*), &(options->sequence), VALUE,
sizeof(RUNTIME_request_t*), &(options->request), VALUE,
PARSEC_DTD_ARG_END );
(void)nb;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment