diff options
| author | Tor Aamodt <[email protected]> | 2010-10-03 15:16:46 -0800 |
|---|---|---|
| committer | Tor Aamodt <[email protected]> | 2010-10-03 15:16:46 -0800 |
| commit | f97c52bbaed425f5ada9758c248c9a2c2b9853dd (patch) | |
| tree | 99879a71c34f52a9a6038e85a947b3ffa4bc62c2 /src/cuda-sim | |
| parent | 5c220c406491b72054a00d1dceab222ab796f06a (diff) | |
1. enable L2 cache as a texture cache (also some bug fixes for L2 as regular cache)
2. update gpgpusim.config for Quadro to use L1 cache geometry from Henry's ISPASS paper
3. minor edit to CUDA api : add notion of fat_cubin_handle (currently not used for anything)
4. minor edits to deadlock detection message (more accurate reporting of source of deadlock)
5. other minor edits
[git-p4: depot-paths = "//depot/gpgpu_sim_research/fermi/distribution/": change = 7809]
Diffstat (limited to 'src/cuda-sim')
| -rw-r--r-- | src/cuda-sim/cuda-sim.cc | 6 | ||||
| -rw-r--r-- | src/cuda-sim/cuda-sim.h | 2 | ||||
| -rw-r--r-- | src/cuda-sim/ptx_loader.cc | 11 | ||||
| -rw-r--r-- | src/cuda-sim/ptx_loader.h | 2 |
4 files changed, 12 insertions, 9 deletions
diff --git a/src/cuda-sim/cuda-sim.cc b/src/cuda-sim/cuda-sim.cc index de4445a..afadbe4 100644 --- a/src/cuda-sim/cuda-sim.cc +++ b/src/cuda-sim/cuda-sim.cc @@ -1396,7 +1396,7 @@ void print_splash() } } -void gpgpu_ptx_sim_register_kernel(const char *hostFun, const char *deviceFun) +void gpgpu_ptx_sim_register_kernel(void **fatCubinHandle,const char *hostFun, const char *deviceFun) { const void* key=hostFun; print_splash(); @@ -1428,16 +1428,12 @@ void gpgpu_ptx_sim_register_const_variable(void *hostVar, const char *deviceName { printf("GPGPU-Sim PTX registering constant %s (%zu bytes) to name mapping\n", deviceName, size ); g_const_name_lookup[hostVar] = deviceName; - //assert( g_current_symbol_table != NULL ); - //g_sym_name_to_symbol_table[deviceName] = g_current_symbol_table; } void gpgpu_ptx_sim_register_global_variable(void *hostVar, const char *deviceName, size_t size ) { printf("GPGPU-Sim PTX registering global %s hostVar to name mapping\n", deviceName ); g_global_name_lookup[hostVar] = deviceName; - //assert( g_current_symbol_table != NULL ); - //g_sym_name_to_symbol_table[deviceName] = g_current_symbol_table; } void gpgpu_ptx_sim_memcpy_symbol(const char *hostVar, const void *src, size_t count, size_t offset, int to ) diff --git a/src/cuda-sim/cuda-sim.h b/src/cuda-sim/cuda-sim.h index 57f2837..fa42341 100644 --- a/src/cuda-sim/cuda-sim.h +++ b/src/cuda-sim/cuda-sim.h @@ -41,7 +41,7 @@ extern void gpgpu_ptx_sim_memcpy_gpu_to_gpu( size_t dst, size_t src, size_t co extern void gpgpu_ptx_sim_memset( size_t dst_start_addr, int c, size_t count ); extern void gpgpu_ptx_sim_init_memory(); extern void gpgpu_ptx_sim_load_gpu_kernels(); -extern void gpgpu_ptx_sim_register_kernel(const char *hostFun, const char *deviceFun); +extern void gpgpu_ptx_sim_register_kernel(void **fatCubinHandle,const char *hostFun, const char *deviceFun); extern void gpgpu_ptx_sim_register_const_variable(void*, const char *deviceName, size_t size ); extern void gpgpu_ptx_sim_register_global_variable(void *hostVar, const char *deviceName, size_t size ); extern void gpgpu_ptx_sim_memcpy_symbol(const char *hostVar, const void *src, size_t count, size_t offset, int to ); diff --git a/src/cuda-sim/ptx_loader.cc b/src/cuda-sim/ptx_loader.cc index 1aa5101..cea9912 100644 --- a/src/cuda-sim/ptx_loader.cc +++ b/src/cuda-sim/ptx_loader.cc @@ -78,6 +78,7 @@ memory_space *g_param_mem; bool g_override_embedded_ptx = false; struct ptx_info_t { + unsigned fat_cubin_handle; char *str; char *cubin_str; char *fname; @@ -292,15 +293,21 @@ void gpgpu_ptx_sim_load_gpu_kernels() } } -void gpgpu_ptx_sim_add_ptxstring( const char *ptx_string, const char *cubin_string, const char *sourcefname ) +void gpgpu_ptx_sim_add_ptxstring( unsigned fat_cubin_handle, const char *ptx_string, const char *cubin_string, const char *sourcefname ) { ptx_info_t *t = new ptx_info_t; t->next = NULL; t->str = strdup(ptx_string); + t->fat_cubin_handle = fat_cubin_handle; if (cubin_string != NULL) { t->cubin_str = strdup(cubin_string); } else { - assert(g_ptx_convert_to_ptxplus == 0); + if(g_ptx_convert_to_ptxplus != 0) { + printf("GPGPU-Sim PTX: ERROR cubin information, required for ptxplus, missing from fat bin object\n"); + printf("GPGPU-Sim PTX: ptxplus currently requires CUDA 2.3 or earlier... disable ptxplus by removing\n"); + printf("GPGPU-Sim PTX: \'-gpgpu_ptx_convert_to_ptxplus 1\' in \'gpgpusim.config\'\n"); + abort(); + } t->cubin_str = NULL; } t->fname = strdup(sourcefname); diff --git a/src/cuda-sim/ptx_loader.h b/src/cuda-sim/ptx_loader.h index 01dc0b7..432ee10 100644 --- a/src/cuda-sim/ptx_loader.h +++ b/src/cuda-sim/ptx_loader.h @@ -75,7 +75,7 @@ extern memory_space *g_param_mem; extern bool g_override_embedded_ptx; void gpgpu_ptx_sim_load_gpu_kernels(); -void gpgpu_ptx_sim_add_ptxstring( const char *ptx_string, const char *cubin_string, const char *sourcefname ); +void gpgpu_ptx_sim_add_ptxstring( unsigned cubin_handle, const char *ptx_string, const char *cubin_string, const char *sourcefname ); class symbol_table *gpgpu_ptx_sim_load_ptx_from_string( const char *p, const char *p_for_info, unsigned source_num ); char* gpgpu_ptx_sim_convert_ptx_to_ptxplus(const char *ptx_str, const char *cubin_str, unsigned source_num); |
