From a14ac6f1d2aeb787436ced57948e2730eb2501d2 Mon Sep 17 00:00:00 2001
From: Jean-Matthieu Etancelin <jean-matthieu.etancelin@univ-reims.fr>
Date: Mon, 20 Oct 2014 14:34:47 +0200
Subject: [PATCH] Multi-GPU profiling output

---
 .../hysop/gpu/multi_gpu_particle_advection.py | 26 +++++++++++--------
 1 file changed, 15 insertions(+), 11 deletions(-)

diff --git a/HySoP/hysop/gpu/multi_gpu_particle_advection.py b/HySoP/hysop/gpu/multi_gpu_particle_advection.py
index b05f17395..c9e5d20d4 100644
--- a/HySoP/hysop/gpu/multi_gpu_particle_advection.py
+++ b/HySoP/hysop/gpu/multi_gpu_particle_advection.py
@@ -248,7 +248,11 @@ class MultiGPUParticleAdvection(GPUParticleAdvection):
         self._v_n_blocks = self._v_l_buff.nbytes / self._v_block_size
         self._s_elem_block = np.prod(self._s_l_buff.shape) / self._s_n_blocks
         self._v_elem_block = np.prod(self._v_l_buff.shape) / self._v_n_blocks
-        print self._v_l_buff.nbytes, self._v_n_blocks, self._v_elem_block
+        print "MULTI-GPU Communications of size {0}MB, by {1} blocs of {2}MB ({3} width)".format(
+            self._s_l_buff.nbytes / (1024. * 1024.),
+            self._s_n_blocks,
+            self._s_block_size / (1024. * 1024.),
+            str((self._s_buff_width, self.resol_dir[1], self.resol_dir[2])))
         self._evt_get_l = [None, ] * self._s_n_blocks
         self._evt_get_r = [None, ] * self._s_n_blocks
         self._l_send = [None, ] * self._s_n_blocks
@@ -842,15 +846,15 @@ class MultiGPUParticleAdvection(GPUParticleAdvection):
         self._v_l_buff.base.release(self.cl_env.queue)
 
     def get_profiling_info(self):
-        for k in [self.copy, self.transpose_xy, self.transpose_xy_r,
-                  self.transpose_xz, self.transpose_xz_r,
-                  self.num_advec,
-                  self.num_remesh,
-                  self.num_advec_and_remesh,
-                  self.num_remesh_comm_l,
-                  self.num_remesh_comm_r,
-                  self.num_advec_and_remesh_comm_l,
-                  self.num_advec_and_remesh_comm_r]:
-            if k is not None:
+        super(MultiGPUParticleAdvection, self).get_profiling_info()
+        if self._is2kernel:
+            for k in (self.num_remesh_comm_l,
+                      self.num_remesh_comm_r):
+                for p in k.profile:
+                    self.profiler += p
+        else:        
+            for k in (self.num_advec_and_remesh_comm_l,
+                      self.num_advec_and_remesh_comm_r):
                 for p in k.profile:
                     self.profiler += p
+        
-- 
GitLab