From bd3cbd187ac51a9b292667c2bc0ee333ed457985 Mon Sep 17 00:00:00 2001
From: Prakalp Srivastava <prakalps@gmail.com>
Date: Wed, 3 Jun 2015 19:10:51 -0500
Subject: [PATCH] Fixed timers in lbm

---
 .../parboil/benchmarks/lbm/src/opencl_nvidia/main.c  |  7 ++++---
 .../test/VISC/parboil/benchmarks/lbm/src/visc/main.c | 12 ++++++++----
 2 files changed, 12 insertions(+), 7 deletions(-)

diff --git a/llvm/test/VISC/parboil/benchmarks/lbm/src/opencl_nvidia/main.c b/llvm/test/VISC/parboil/benchmarks/lbm/src/opencl_nvidia/main.c
index 0270bc6914..433a17c299 100644
--- a/llvm/test/VISC/parboil/benchmarks/lbm/src/opencl_nvidia/main.c
+++ b/llvm/test/VISC/parboil/benchmarks/lbm/src/opencl_nvidia/main.c
@@ -147,13 +147,13 @@ void MAIN_initialize( const MAIN_Param* param, const OpenCL_Param* prm ) {
 	LBM_initializeSpecialCellsForLDC( TEMP_srcGrid );
 	LBM_initializeSpecialCellsForLDC( TEMP_dstGrid );
 	
-        pb_SwitchToTimer(&timers, pb_TimerID_COPY);
-	
+        pb_SwitchToTimer(&timers, visc_TimerID_SETUP);
 	//Setup DEVICE datastructures
 	OpenCL_LBM_allocateGrid( prm, &OpenCL_srcGrid );
 	OpenCL_LBM_allocateGrid( prm, &OpenCL_dstGrid );
 	
 	//Initialize DEVICE datastructures
+        pb_SwitchToTimer(&timers, pb_TimerID_COPY);
 	OpenCL_LBM_initializeGrid( prm, OpenCL_srcGrid, TEMP_srcGrid );
 	OpenCL_LBM_initializeGrid( prm, OpenCL_dstGrid, TEMP_dstGrid );
 	
@@ -182,6 +182,8 @@ void MAIN_finalize( const MAIN_Param* param, const OpenCL_Param* prm ) {
 	LBM_storeVelocityField( TEMP_srcGrid, param->resultFilename, TRUE );
 
 	LBM_freeGrid( (float**) &TEMP_srcGrid );
+
+        pb_SwitchToTimer(&timers, visc_TimerID_SETUP);
 	OpenCL_LBM_freeGrid( OpenCL_srcGrid );
 	OpenCL_LBM_freeGrid( OpenCL_dstGrid );
 
@@ -189,7 +191,6 @@ void MAIN_finalize( const MAIN_Param* param, const OpenCL_Param* prm ) {
 	clReleaseKernel(prm->clKernel);
 	clReleaseCommandQueue(prm->clCommandQueue);
 	clReleaseContext(prm->clContext);
-	
 }
 
 void OpenCL_initialize(OpenCL_Param* prm)
diff --git a/llvm/test/VISC/parboil/benchmarks/lbm/src/visc/main.c b/llvm/test/VISC/parboil/benchmarks/lbm/src/visc/main.c
index cec7935291..0a9d87c708 100644
--- a/llvm/test/VISC/parboil/benchmarks/lbm/src/visc/main.c
+++ b/llvm/test/VISC/parboil/benchmarks/lbm/src/visc/main.c
@@ -29,11 +29,11 @@ static LBM_Grid srcGrid, dstGrid;
 
 struct pb_TimerSet timers;
 int main( int nArgs, char* arg[] ) {
-    __visc__init();
     MAIN_Param param;
     int t;
 
     pb_InitializeTimerSet(&timers);
+    __visc__init();
     struct pb_Parameters* params;
     params = pb_ReadParameters(&nArgs, arg);
 
@@ -47,13 +47,16 @@ int main( int nArgs, char* arg[] ) {
     MAIN_initialize( &param );
 
     size_t size   = TOTAL_PADDED_CELLS*N_CELL_ENTRIES*sizeof( float );
+    pb_SwitchToTimer(&timers, visc_TimerID_MEM_TRACK);
     llvm_visc_track_mem(srcGrid-MARGIN, size);
     llvm_visc_track_mem(dstGrid-MARGIN, size);
 
+    pb_SwitchToTimer(&timers, pb_TimerID_COMPUTE);
 
     for( t = 1; t <= param.nTimeSteps; t++ ) {
-        pb_SwitchToTimer(&timers, pb_TimerID_KERNEL);
+        pb_SwitchToTimer(&timers, pb_TimerID_NONE);
         MAIN_performStreamCollide( srcGrid, dstGrid );
+
         pb_SwitchToTimer(&timers, pb_TimerID_COMPUTE);
         LBM_swapGrids( &srcGrid, &dstGrid );
 
@@ -65,8 +68,11 @@ int main( int nArgs, char* arg[] ) {
 #endif
         }
     }
+
+    pb_SwitchToTimer(&timers, pb_TimerID_COPY);
     llvm_visc_request_mem(srcGrid-MARGIN, size);
 
+    pb_SwitchToTimer(&timers, pb_TimerID_COMPUTE);
     MAIN_finalize( &param );
 
     pb_SwitchToTimer(&timers, visc_TimerID_MEM_UNTRACK);
@@ -319,7 +325,6 @@ __attribute__((noinline)) void MAIN_performStreamCollide( LBM_Grid src, LBM_Grid
     unsigned dimBlock[3] = {SIZE_X,1,1};
     unsigned dimGrid[3] = {SIZE_X*SIZE_Y,SIZE_Z,1};
     size_t size   = TOTAL_PADDED_CELLS*N_CELL_ENTRIES*sizeof( float );
-
     unsigned lbmDFG = __visc__node(performStreamCollide_kernel, 2, 3, dimBlock[0], dimBlock[1], dimBlock[2], dimGrid[0]/dimBlock[0], dimGrid[1]/dimBlock[1], dimGrid[2]/dimBlock[2], 4, src-MARGIN, size, dst-MARGIN, size, 0);
     __visc__wait(lbmDFG);
 
@@ -356,7 +361,6 @@ void MAIN_finalize( const MAIN_Param* param ) {
 
     //Setup TEMP datastructures
 
-    pb_SwitchToTimer(&timers, pb_TimerID_COMPUTE);
     LBM_showGridStatistics( srcGrid );
 
     LBM_storeVelocityField( srcGrid, param->resultFilename, TRUE );
-- 
GitLab