From a29ceeb854b5ac947c3d4574f8479121be4ea107 Mon Sep 17 00:00:00 2001 From: Mathieu Faverge <mathieu.faverge@inria.fr> Date: Wed, 24 Jan 2018 15:55:59 +0100 Subject: [PATCH] Add extra flush to norm computations for parsec --- compute/pzlange.c | 10 ++++++++++ compute/pzlanhe.c | 7 +++++++ compute/pzlansy.c | 7 +++++++ compute/pzlantr.c | 10 ++++++++++ 4 files changed, 34 insertions(+) diff --git a/compute/pzlange.c b/compute/pzlange.c index f893a4d9b..0394d6d33 100644 --- a/compute/pzlange.c +++ b/compute/pzlange.c @@ -154,6 +154,9 @@ void morse_pzlange( MORSE_enum norm, MORSE_desc_t *A, double *result, VECNORMS_STEP1(m, n), 1 ); } } + MORSE_Desc_Flush( VECNORMS_STEP2, sequence ); + MORSE_Desc_Flush( VECNORMS_STEP1, sequence ); + MORSE_Desc_Flush( RESULT, sequence ); RUNTIME_sequence_wait(morse, sequence); MORSE_Desc_Destroy( &(VECNORMS_STEP2) ); break; @@ -271,6 +274,9 @@ void morse_pzlange( MORSE_enum norm, MORSE_desc_t *A, double *result, VECNORMS_STEP1(m, n), 1 ); } } + MORSE_Desc_Flush( VECNORMS_STEP2, sequence ); + MORSE_Desc_Flush( VECNORMS_STEP1, sequence ); + MORSE_Desc_Flush( RESULT, sequence ); RUNTIME_sequence_wait(morse, sequence); MORSE_Desc_Destroy( &(VECNORMS_STEP2) ); break; @@ -339,6 +345,8 @@ void morse_pzlange( MORSE_enum norm, MORSE_desc_t *A, double *result, } } + MORSE_Desc_Flush( VECNORMS_STEP1, sequence ); + MORSE_Desc_Flush( RESULT, sequence ); RUNTIME_sequence_wait(morse, sequence); break; @@ -400,6 +408,8 @@ void morse_pzlange( MORSE_enum norm, MORSE_desc_t *A, double *result, } } + MORSE_Desc_Flush( VECNORMS_STEP1, sequence ); + MORSE_Desc_Flush( RESULT, sequence ); RUNTIME_sequence_wait(morse, sequence); } diff --git a/compute/pzlanhe.c b/compute/pzlanhe.c index af3b5bbab..ef78f795f 100644 --- a/compute/pzlanhe.c +++ b/compute/pzlanhe.c @@ -202,6 +202,9 @@ void morse_pzlanhe(MORSE_enum norm, MORSE_enum uplo, MORSE_desc_t *A, double *re VECNORMS_STEP1(m, n), 1 ); } } + MORSE_Desc_Flush( VECNORMS_STEP2, sequence ); + MORSE_Desc_Flush( VECNORMS_STEP1, sequence ); + MORSE_Desc_Flush( RESULT, sequence ); RUNTIME_sequence_wait(morse, sequence); *result = *(double *)VECNORMS_STEP1->get_blkaddr(VECNORMS_STEP1, A->myrank / A->q, A->myrank % A->q ); MORSE_Desc_Destroy( &(VECNORMS_STEP1) ); @@ -338,6 +341,8 @@ void morse_pzlanhe(MORSE_enum norm, MORSE_enum uplo, MORSE_desc_t *A, double *re } } + MORSE_Desc_Flush( VECNORMS_STEP1, sequence ); + MORSE_Desc_Flush( RESULT, sequence ); RUNTIME_sequence_wait(morse, sequence); *result = *(double *)VECNORMS_STEP1->get_blkaddr(VECNORMS_STEP1, A->myrank / A->q, A->myrank % A->q ); MORSE_Desc_Destroy( &(VECNORMS_STEP1) ); @@ -449,6 +454,8 @@ void morse_pzlanhe(MORSE_enum norm, MORSE_enum uplo, MORSE_desc_t *A, double *re } } + MORSE_Desc_Flush( VECNORMS_STEP1, sequence ); + MORSE_Desc_Flush( RESULT, sequence ); RUNTIME_sequence_wait(morse, sequence); *result = *(double *)VECNORMS_STEP1->get_blkaddr(VECNORMS_STEP1, A->myrank / A->q, A->myrank % A->q ); MORSE_Desc_Destroy( &(VECNORMS_STEP1) ); diff --git a/compute/pzlansy.c b/compute/pzlansy.c index f71eb5cb0..80c4df5a9 100644 --- a/compute/pzlansy.c +++ b/compute/pzlansy.c @@ -202,6 +202,9 @@ void morse_pzlansy(MORSE_enum norm, MORSE_enum uplo, MORSE_desc_t *A, double *re VECNORMS_STEP1(m, n), 1 ); } } + MORSE_Desc_Flush( VECNORMS_STEP2, sequence ); + MORSE_Desc_Flush( VECNORMS_STEP1, sequence ); + MORSE_Desc_Flush( RESULT, sequence ); RUNTIME_sequence_wait(morse, sequence); *result = *(double *)VECNORMS_STEP1->get_blkaddr(VECNORMS_STEP1, A->myrank / A->q, A->myrank % A->q ); MORSE_Desc_Destroy( &(VECNORMS_STEP1) ); @@ -347,6 +350,8 @@ void morse_pzlansy(MORSE_enum norm, MORSE_enum uplo, MORSE_desc_t *A, double *re } } + MORSE_Desc_Flush( VECNORMS_STEP1, sequence ); + MORSE_Desc_Flush( RESULT, sequence ); RUNTIME_sequence_wait(morse, sequence); *result = *(double *)VECNORMS_STEP1->get_blkaddr(VECNORMS_STEP1, A->myrank / A->q, A->myrank % A->q ); MORSE_Desc_Destroy( &(VECNORMS_STEP1) ); @@ -458,6 +463,8 @@ void morse_pzlansy(MORSE_enum norm, MORSE_enum uplo, MORSE_desc_t *A, double *re } } + MORSE_Desc_Flush( VECNORMS_STEP1, sequence ); + MORSE_Desc_Flush( RESULT, sequence ); RUNTIME_sequence_wait(morse, sequence); *result = *(double *)VECNORMS_STEP1->get_blkaddr(VECNORMS_STEP1, A->myrank / A->q, A->myrank % A->q ); MORSE_Desc_Destroy( &(VECNORMS_STEP1) ); diff --git a/compute/pzlantr.c b/compute/pzlantr.c index 7c1e28b71..5f6606615 100644 --- a/compute/pzlantr.c +++ b/compute/pzlantr.c @@ -225,6 +225,9 @@ void morse_pzlantr(MORSE_enum norm, MORSE_enum uplo, MORSE_enum diag, VECNORMS_STEP1(m, n), 1 ); } } + MORSE_Desc_Flush( VECNORMS_STEP2, sequence ); + MORSE_Desc_Flush( VECNORMS_STEP1, sequence ); + MORSE_Desc_Flush( RESULT, sequence ); RUNTIME_sequence_wait(morse, sequence); *result = *(double *)VECNORMS_STEP1->get_blkaddr(VECNORMS_STEP1, A->myrank / A->q, A->myrank % A->q ); MORSE_Desc_Destroy( &(VECNORMS_STEP1) ); @@ -394,6 +397,9 @@ void morse_pzlantr(MORSE_enum norm, MORSE_enum uplo, MORSE_enum diag, VECNORMS_STEP1(m, n), 1 ); } } + MORSE_Desc_Flush( VECNORMS_STEP2, sequence ); + MORSE_Desc_Flush( VECNORMS_STEP1, sequence ); + MORSE_Desc_Flush( RESULT, sequence ); RUNTIME_sequence_wait(morse, sequence); *result = *(double *)VECNORMS_STEP1->get_blkaddr(VECNORMS_STEP1, A->myrank / A->q, A->myrank % A->q ); MORSE_Desc_Destroy( &(VECNORMS_STEP1) ); @@ -534,6 +540,8 @@ void morse_pzlantr(MORSE_enum norm, MORSE_enum uplo, MORSE_enum diag, } } + MORSE_Desc_Flush( VECNORMS_STEP1, sequence ); + MORSE_Desc_Flush( RESULT, sequence ); RUNTIME_sequence_wait(morse, sequence); *result = *(double *)VECNORMS_STEP1->get_blkaddr(VECNORMS_STEP1, A->myrank / A->q, A->myrank % A->q ); MORSE_Desc_Destroy( &(VECNORMS_STEP1) ); @@ -658,6 +666,8 @@ void morse_pzlantr(MORSE_enum norm, MORSE_enum uplo, MORSE_enum diag, } } + MORSE_Desc_Flush( VECNORMS_STEP1, sequence ); + MORSE_Desc_Flush( RESULT, sequence ); RUNTIME_sequence_wait(morse, sequence); *result = *(double *)VECNORMS_STEP1->get_blkaddr(VECNORMS_STEP1, A->myrank / A->q, A->myrank % A->q ); MORSE_Desc_Destroy( &(VECNORMS_STEP1) ); -- GitLab