Mentions légales du service

Skip to content
Snippets Groups Projects
Commit 355f28be authored by PRUVOST Florent's avatar PRUVOST Florent
Browse files

save the exit status of kernels when possible (parsec)

parent 25615999
No related branches found
No related tags found
No related merge requests found
......@@ -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;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment