From 18e12d8045bbf9df454f2246b8d92f4f1e4a611f Mon Sep 17 00:00:00 2001 From: Prakalp Srivastava <prakalps@gmail.com> Date: Thu, 11 Jun 2015 10:01:54 -0500 Subject: [PATCH] Fixed timers in sgemm and spmv --- .../parboil/benchmarks/sgemm/src/opencl_base/main.cc | 9 ++++++--- llvm/test/VISC/parboil/benchmarks/sgemm/src/visc/main.cc | 7 ++++--- llvm/test/VISC/parboil/benchmarks/spmv/src/visc/main.c | 2 +- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/llvm/test/VISC/parboil/benchmarks/sgemm/src/opencl_base/main.cc b/llvm/test/VISC/parboil/benchmarks/sgemm/src/opencl_base/main.cc index 6360dfb643..4d199149e2 100644 --- a/llvm/test/VISC/parboil/benchmarks/sgemm/src/opencl_base/main.cc +++ b/llvm/test/VISC/parboil/benchmarks/sgemm/src/opencl_base/main.cc @@ -102,6 +102,7 @@ int main (int argc, char *argv[]) { exit(-1); } + pb_SwitchToTimer(&timers, visc_TimerID_SETUP); cl_int clStatus; cl_platform_id clPlatform; clStatus = clGetPlatformIDs(1,&clPlatform,NULL); @@ -139,14 +140,13 @@ int main (int argc, char *argv[]) { // load A readColMajorMatrixFile(params->inpFiles[0], matArow, matAcol, matA); - // copy A to device memory - A_sz = matArow*matAcol*sizeof(float); - // load B^T readColMajorMatrixFile(params->inpFiles[2], matBcol, matBrow, matBT); pb_SwitchToTimer( &timers, pb_TimerID_COMPUTE ); + // copy A to device memory + A_sz = matArow*matAcol*sizeof(float); B_sz = matBrow*matBcol*sizeof(float); // allocate space for C @@ -154,6 +154,8 @@ int main (int argc, char *argv[]) { // OpenCL memory allocation std::vector<float> matC(matArow*matBcol); + + pb_SwitchToTimer( &timers, pb_TimerID_COPY ); cl_mem dA = clCreateBuffer(clContext,CL_MEM_READ_ONLY,A_sz,NULL,&clStatus); CHECK_ERROR("clCreateBuffer") cl_mem dB = clCreateBuffer(clContext,CL_MEM_READ_ONLY,B_sz,NULL,&clStatus); @@ -174,6 +176,7 @@ int main (int argc, char *argv[]) { clStatus = clEnqueueWriteBuffer(clCommandQueue,dC,CL_TRUE,0,C_sz,&matC.front(),0,NULL,NULL); CHECK_ERROR("clEnqueueWriteBuffer") + pb_SwitchToTimer( &timers, pb_TimerID_COMPUTE ); pb_SwitchToTimer( &timers, pb_TimerID_KERNEL ); // Use standard sgemm interface diff --git a/llvm/test/VISC/parboil/benchmarks/sgemm/src/visc/main.cc b/llvm/test/VISC/parboil/benchmarks/sgemm/src/visc/main.cc index 81d791568b..23d89aeb16 100644 --- a/llvm/test/VISC/parboil/benchmarks/sgemm/src/visc/main.cc +++ b/llvm/test/VISC/parboil/benchmarks/sgemm/src/visc/main.cc @@ -108,14 +108,14 @@ int main (int argc, char *argv[]) { // load A readColMajorMatrixFile(params->inpFiles[0], matArow, matAcol, matA); - // copy A to device memory - A_sz = matArow*matAcol*sizeof(float); // load B^T readColMajorMatrixFile(params->inpFiles[2], matBcol, matBrow, matBT); pb_SwitchToTimer( &timers, pb_TimerID_COMPUTE ); + // copy A to device memory + A_sz = matArow*matAcol*sizeof(float); B_sz = matBrow*matBcol*sizeof(float); // allocate space for C @@ -133,7 +133,7 @@ int main (int argc, char *argv[]) { for(size_t i=0; i<matC.size(); i++) matC[i] = 0.0f; - pb_SwitchToTimer( &timers, pb_TimerID_KERNEL ); + pb_SwitchToTimer( &timers, pb_TimerID_NONE ); // Use standard sgemm interface basicSgemm('N', 'T', matArow, matBcol, matAcol, 1.0f, \ @@ -149,6 +149,7 @@ int main (int argc, char *argv[]) { matArow, matBcol, matC); } + pb_SwitchToTimer( &timers, visc_TimerID_MEM_UNTRACK ); llvm_visc_untrack_mem(&matA.front()); llvm_visc_untrack_mem(&matBT.front()); llvm_visc_untrack_mem(&matC.front()); diff --git a/llvm/test/VISC/parboil/benchmarks/spmv/src/visc/main.c b/llvm/test/VISC/parboil/benchmarks/spmv/src/visc/main.c index 78cef8f7af..cf153ac4d4 100644 --- a/llvm/test/VISC/parboil/benchmarks/spmv/src/visc/main.c +++ b/llvm/test/VISC/parboil/benchmarks/spmv/src/visc/main.c @@ -99,7 +99,6 @@ void spmv_jds(float *dst_vector, float *d_data, } int main(int argc, char** argv) { - __visc__init(); struct pb_TimerSet timers; struct pb_Parameters *parameters; @@ -114,6 +113,7 @@ int main(int argc, char** argv) { } pb_InitializeTimerSet(&timers); + __visc__init(); pb_SwitchToTimer(&timers, pb_TimerID_COMPUTE); //parameters declaration -- GitLab