summaryrefslogtreecommitdiff
path: root/libopencl
diff options
context:
space:
mode:
authorRoy Spliet <[email protected]>2019-07-25 18:20:56 +0100
committerRoy Spliet <[email protected]>2019-10-17 11:39:02 +0100
commit6cdb7b18f70f8a1da200020f1b72f56fc33864d8 (patch)
tree2c275ad99003aea72802c969d3656bd486b593da /libopencl
parent690774e8f70624ef759f0f76f88d804f89db8f46 (diff)
libopencl: Perform PDOM analysis
Signed-off-by: Roy Spliet <[email protected]>
Diffstat (limited to 'libopencl')
-rw-r--r--libopencl/opencl_runtime_api.cc11
1 files changed, 11 insertions, 0 deletions
diff --git a/libopencl/opencl_runtime_api.cc b/libopencl/opencl_runtime_api.cc
index a21e11d..23e52f6 100644
--- a/libopencl/opencl_runtime_api.cc
+++ b/libopencl/opencl_runtime_api.cc
@@ -950,6 +950,17 @@ clEnqueueNDRangeKernel(cl_command_queue command_queue,
gpgpu_ptx_sim_memcpy_symbol( "%_global_block_offset", zeros, 3 * sizeof(int), 0, 1, gpu );
}
kernel_info_t *grid = gpgpu_opencl_ptx_sim_init_grid(kernel->get_implementation(),params,GridDim,BlockDim,gpu);
+
+ //do dynamic PDOM analysis for performance simulation scenario
+ std::string kname = grid->name();
+ function_info *kernel_func_info = grid->entry();
+ if (kernel_func_info->is_pdom_set()) {
+ printf("GPGPU-Sim PTX: PDOM analysis already done for %s \n", kname.c_str() );
+ } else {
+ printf("GPGPU-Sim PTX: finding reconvergence points for \'%s\'...\n", kname.c_str() );
+ kernel_func_info->do_pdom();
+ kernel_func_info->set_pdom();
+ }
if ( g_ptx_sim_mode )
gpgpu_opencl_ptx_sim_main_func( grid );
else