aboutsummaryrefslogtreecommitdiff
path: root/src/cuda-sim/cuda_device_runtime.cc
diff options
context:
space:
mode:
authorTim Rogers <[email protected]>2018-11-16 13:24:28 -0500
committerGitHub <[email protected]>2018-11-16 13:24:28 -0500
commit52df8562368a64a578ed1278680621a36ba98a64 (patch)
tree3949a1f5600e5e42f7c3365909fb1c6a39ca7187 /src/cuda-sim/cuda_device_runtime.cc
parent0265d747b06c18d0a1ee00fb1641032201425c97 (diff)
parentf9a626f93d891b553c11bb86172b41ccc1deb569 (diff)
Merge pull request #81 from deval281shah/dev
Merging changes for cuDNN, Pytorch and checkpoint support
Diffstat (limited to 'src/cuda-sim/cuda_device_runtime.cc')
-rw-r--r--src/cuda-sim/cuda_device_runtime.cc14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/cuda-sim/cuda_device_runtime.cc b/src/cuda-sim/cuda_device_runtime.cc
index 4a8ffe5..b399133 100644
--- a/src/cuda-sim/cuda_device_runtime.cc
+++ b/src/cuda-sim/cuda_device_runtime.cc
@@ -177,6 +177,20 @@ void gpgpusim_cuda_launchDeviceV2(const ptx_instruction * pI, ptx_thread_info *
//device_grid = op.grid;
device_kernel_entry = config.entry;
DEV_RUNTIME_REPORT("find device kernel " << device_kernel_entry->get_name());
+
+ //PDOM analysis is done for Parent kernel but not for child kernel.
+ if (device_kernel_entry->is_pdom_set()) {
+ printf("GPGPU-Sim PTX: PDOM analysis already done for %s \n", device_kernel_entry->get_name().c_str() );
+ } else {
+ printf("GPGPU-Sim PTX: finding reconvergence points for \'%s\'...\n", device_kernel_entry->get_name().c_str() );
+ /*
+ * Some of the instructions like printf() gives the gpgpusim the wrong impression that it is a function call.
+ * As printf() doesnt have a body like functions do, doing pdom analysis for printf() causes a crash.
+ */
+ if (device_kernel_entry->get_function_size() >0)
+ device_kernel_entry->do_pdom();
+ device_kernel_entry->set_pdom();
+ }
//copy data in parameter_buffer to device kernel param memory
unsigned device_kernel_arg_size = device_kernel_entry->get_args_aligned_size();