summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Rogers <[email protected]>2012-06-27 14:57:05 -0800
committerAndrew Boktor <[email protected]>2014-08-14 13:47:33 -0700
commit2031dd162995157c3f7830d68896b19b178b9146 (patch)
treec19a3999057e9d775da4fe329a98c640fb84f294
parent19fbc3bf016d656e7c4da5f247f87c05bbf02daf (diff)
Fixing a bug in the opencl prebuilt ptx flow.
If a kernel made modidifcations to the .cl code at runtime (like changed the block size or some other constants) then recompiled itself the saved_embedded_ptx would just get overwritten. Same on using the prebuilt ptx file - I always wanted to load the same ptx file even though there should have been more than one. [git-p4: depot-paths = "//depot/gpgpu_sim_research/fermi/distribution/": change = 13217]
-rw-r--r--libopencl/opencl_runtime_api.cc5
-rw-r--r--version2
2 files changed, 5 insertions, 2 deletions
diff --git a/libopencl/opencl_runtime_api.cc b/libopencl/opencl_runtime_api.cc
index 213b4b4..0b00556 100644
--- a/libopencl/opencl_runtime_api.cc
+++ b/libopencl/opencl_runtime_api.cc
@@ -181,6 +181,7 @@ struct _cl_program {
private:
cl_context m_context;
std::map<cl_uint,pgm_info> m_pgm;
+ static unsigned m_kernels_compiled;
};
struct _cl_kernel {
@@ -381,6 +382,7 @@ cl_mem _cl_context::lookup_mem( cl_mem m )
}
}
+unsigned _cl_program::m_kernels_compiled = 0;
_cl_program::_cl_program( cl_context context,
cl_uint count,
const char ** strings,
@@ -392,7 +394,8 @@ _cl_program::_cl_program( cl_context context,
char *tmp = (char*)malloc(len+1);
memcpy(tmp,strings[i],len);
tmp[len] = 0;
- m_pgm[i].m_source = tmp;
+ m_pgm[m_kernels_compiled].m_source = tmp;
+ ++m_kernels_compiled;
free(tmp);
}
}
diff --git a/version b/version
index 05ae64e..6b8660c 100644
--- a/version
+++ b/version
@@ -1,2 +1,2 @@
const char *g_gpgpusim_version_string = "GPGPU-Sim Simulator Version 3.1.0+edits (development branch)";
-const char *g_gpgpusim_build_string = "$Change: 13139 $";
+const char *g_gpgpusim_build_string = "$Change: 13216 $";