From 95352215cd36bf70299bb66201722aef41764bff Mon Sep 17 00:00:00 2001 From: Prakalp Srivastava <psrivas2@illinois.edu> Date: Sat, 5 Mar 2016 20:39:44 -0600 Subject: [PATCH] (1) visc-rt Added debugging code to differentiate between get_Output failure and request_mem failure (2) modified visc_sh version of sgemm --- llvm/projects/visc-rt/visc-rt.cpp | 4 ++-- llvm/test/VISC/parboil/benchmarks/sgemm/src/visc_sh/main.cc | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/llvm/projects/visc-rt/visc-rt.cpp b/llvm/projects/visc-rt/visc-rt.cpp index a7c87a04dd..b087ceff6a 100644 --- a/llvm/projects/visc-rt/visc-rt.cpp +++ b/llvm/projects/visc-rt/visc-rt.cpp @@ -199,7 +199,7 @@ void* llvm_visc_request_mem(void* ptr, size_t size) { 0, NULL, NULL); visc_SwitchToTimer(&kernel_timer, visc_TimerID_NONE); DEBUG(cout << " done\n"); - checkErr(errcode, CL_SUCCESS, "Failure to read output"); + checkErr(errcode, CL_SUCCESS, "[request mem] Failure to read output"); DEBUG(cout << "Free mem object on device\n"); clReleaseMemObject((cl_mem) MTE->getAddress()); DEBUG(cout << "Updated Table\n"); @@ -1307,7 +1307,7 @@ void* llvm_visc_ocl_getOutput(void* graphID, void* h_output, void* d_output, siz DFNodeContext_OCL* Context = (DFNodeContext_OCL*) graphID; cl_int errcode = clEnqueueReadBuffer(Context->clCommandQue, (cl_mem)d_output, CL_TRUE, 0, size, h_output, 0, NULL, NULL); - checkErr(errcode, CL_SUCCESS, "Failure to read output"); + checkErr(errcode, CL_SUCCESS, "[getOutput] Failure to read output"); return h_output; } diff --git a/llvm/test/VISC/parboil/benchmarks/sgemm/src/visc_sh/main.cc b/llvm/test/VISC/parboil/benchmarks/sgemm/src/visc_sh/main.cc index 3ef592e0aa..c40ce36c4b 100644 --- a/llvm/test/VISC/parboil/benchmarks/sgemm/src/visc_sh/main.cc +++ b/llvm/test/VISC/parboil/benchmarks/sgemm/src/visc_sh/main.cc @@ -91,9 +91,11 @@ void packData(RootIn* args, // be translated. void Allocation(int block_x, int block_y) { // Memory shared between threadblocks - void* shB = __visc__malloc(block_x*block_y*sizeof(float)); + int bl_x = TILE_N; + int bl_y = TILE_TB_HEIGHT; + void* shB = __visc__malloc(bl_x*bl_y*sizeof(float)); - __visc__return(shB, block_x*block_y*sizeof(float)); + __visc__return(shB, bl_x*bl_y*sizeof(float)); } -- GitLab