From b351e239fba665f147dbb708f1fa55a282c7b10d Mon Sep 17 00:00:00 2001
From: Raphael Boucherie <raphael.boucherie@inria.fr>
Date: Mon, 21 Aug 2017 16:46:51 +0200
Subject: [PATCH] add dataflush

---
 compute/pzgelqf.c       | 7 +++++++
 compute/pzgelqf_param.c | 5 +++++
 compute/pzgeqrf.c       | 5 +++++
 compute/pzgeqrf_param.c | 5 +++++
 4 files changed, 22 insertions(+)

diff --git a/compute/pzgelqf.c b/compute/pzgelqf.c
index 1dbea93bc..73050c199 100644
--- a/compute/pzgelqf.c
+++ b/compute/pzgelqf.c
@@ -127,6 +127,10 @@ void morse_pzgelqf(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *D,
                 T(k, k), T->mb,
                 A(m, k), ldam);
         }
+
+        MORSE_TASK_dataflush( &options, D(k)    );
+        MORSE_TASK_dataflush( &options, T(k, k) );
+
         for (n = k+1; n < A->nt; n++) {
             tempnn = n == A->nt-1 ? A->n-n*A->nb : A->nb;
 
@@ -156,6 +160,9 @@ void morse_pzgelqf(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *D,
                     A(m, k), ldam,
                     A(m, n), ldam);
             }
+
+            MORSE_TASK_dataflush( &options, A(k, n) );
+            MORSE_TASK_dataflush( &options, T(k, n) );
         }
 
         /* Restore the original location of the tiles */
diff --git a/compute/pzgelqf_param.c b/compute/pzgelqf_param.c
index ef2a60080..677beeb3f 100644
--- a/compute/pzgelqf_param.c
+++ b/compute/pzgelqf_param.c
@@ -136,6 +136,9 @@ void morse_pzgelqf_param( const libhqr_tree_t *qrtree, MORSE_desc_t *A,
                     A(m, p), ldam);
             }
         }
+        MORSE_TASK_dataflush( &options, D(k, p) );
+        MORSE_TASK_dataflush( &options, T(k, p) );
+
 
         /* Setting the order of the tiles */
         libhqr_walk_stepk( qrtree, k, tiles + (k+1) );
@@ -188,6 +191,8 @@ void morse_pzgelqf_param( const libhqr_tree_t *qrtree, MORSE_desc_t *A,
                     A(m, p), ldam,
                     A(m, n), ldam);
             }
+            MORSE_TASK_dataflush( &options, A(k, n) );
+            MORSE_TASK_dataflush( &options, T(k, n) );
         }
 
         /* Restore the original location of the tiles */
diff --git a/compute/pzgeqrf.c b/compute/pzgeqrf.c
index cb06ffea4..ef1d8cbe5 100644
--- a/compute/pzgeqrf.c
+++ b/compute/pzgeqrf.c
@@ -121,6 +121,8 @@ void morse_pzgeqrf(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *D,
                 T(k, k), T->mb,
                 A(k, n), ldak);
         }
+        MORSE_TASK_dataflush( &options, D(k)    );
+        MORSE_TASK_dataflush( &options, T(k, k) );
 
         for (m = k+1; m < A->mt; m++) {
             tempmm = m == A->mt-1 ? A->m-m*A->mb : A->mb;
@@ -153,6 +155,9 @@ void morse_pzgeqrf(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *D,
                     A(k, n), ldak,
                     A(m, n), ldam);
             }
+
+            MORSE_TASK_dataflush( &options, A(m, k) );
+            MORSE_TASK_dataflush( &options, T(m, k) );
         }
 
         /* Restore the original location of the tiles */
diff --git a/compute/pzgeqrf_param.c b/compute/pzgeqrf_param.c
index 897c935c5..f8712176f 100644
--- a/compute/pzgeqrf_param.c
+++ b/compute/pzgeqrf_param.c
@@ -133,6 +133,8 @@ void morse_pzgeqrf_param( const libhqr_tree_t *qrtree, MORSE_desc_t *A,
                     A(m, n), ldam);
             }
         }
+        MORSE_TASK_dataflush( &options, D(m, k) );
+        MORSE_TASK_dataflush( &options, T(m, k) );
 
         /* Setting the order of the tiles */
         libhqr_walk_stepk( qrtree, k, tiles + (k+1) );
@@ -185,6 +187,9 @@ void morse_pzgeqrf_param( const libhqr_tree_t *qrtree, MORSE_desc_t *A,
                     A(p, n), ldap,
                     A(m, n), ldam);
             }
+
+            MORSE_TASK_dataflush( &options, A(m, k) );
+            MORSE_TASK_dataflush( &options, T(m, k) );
         }
 
         /* Restore the original location of the tiles */
-- 
GitLab