summaryrefslogtreecommitdiff
path: root/src/cuda-sim/cuda-sim.cc
diff options
context:
space:
mode:
authorTor Aamodt <[email protected]>2010-07-21 01:30:39 -0800
committerTor Aamodt <[email protected]>2010-07-21 01:30:39 -0800
commit58d928ca0eb339d1bbc9985730c163af26c4e2e1 (patch)
treefd6e6796b5aa5e9ba297081ed332db7664ac8695 /src/cuda-sim/cuda-sim.cc
parenta884b505457d48dcd2783563d407e14a607456ee (diff)
- reduce 3.1 sdk regression test runtimes (as per 2.3 sdk versions)
- add ldu support (just use ld for now) - get rid of asserts for .const[n] - status: cuda sdk 3.1 dct8x8, eigenvalues, MersenneTwister, reduction, scan still running (too slow) ocl sdk 3.1 oclQuasirandomGenerator still running (too slow) ocl sdk 3.1 oclReduction fail comparison (cuda 3.1) ocl sdk 3.1 oclMatrixMul exits mid computation ocl sdk 3.1 oclTranspose hits "clCreateBuffer - buffer already created for this host variable" ocl sdk 3.1 oclSortingNetworks fails w/ message about min workgroup size remaining 30 tests pass [git-p4: depot-paths = "//depot/gpgpu_sim_research/fermi/distribution/": change = 6927]
Diffstat (limited to 'src/cuda-sim/cuda-sim.cc')
-rw-r--r--src/cuda-sim/cuda-sim.cc14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/cuda-sim/cuda-sim.cc b/src/cuda-sim/cuda-sim.cc
index 2a41e4b..bf90938 100644
--- a/src/cuda-sim/cuda-sim.cc
+++ b/src/cuda-sim/cuda-sim.cc
@@ -555,7 +555,7 @@ void gpgpu_ptx_sim_init_memory()
static bool initialized = false;
if ( !initialized ) {
g_global_mem = new memory_space_impl<8192>("global",64*1024);
- g_param_mem = new memory_space_impl<64>("param",64*1024);
+ g_param_mem = new memory_space_impl<8192>("param",64*1024);
g_tex_mem = new memory_space_impl<8192>("tex",64*1024);
g_surf_mem = new memory_space_impl<8192>("surf",64*1024);
initialized = true;
@@ -992,12 +992,14 @@ void function_info::add_param_name_type_size( unsigned index, std::string name,
void function_info::add_param_data( unsigned argn, struct gpgpu_ptx_sim_arg *args )
{
const void *data = args->m_start;
- param_t tmp;
if( data ) {
+ param_t tmp;
+
tmp.pdata = args->m_start;
tmp.size = args->m_nbytes;
tmp.offset = args->m_offset;
+ tmp.type = 0;
std::map<unsigned,param_info>::iterator i=m_ptx_kernel_param_info.find(argn);
if( i != m_ptx_kernel_param_info.end()) {
i->second.add_data(tmp);
@@ -1139,6 +1141,8 @@ void function_info::ptx_exec_inst( ptx_thread_info *thread,
unsigned index = pc - m_start_PC;
assert( index < m_instr_mem_size );
ptx_instruction *pI = m_instr_mem[index];
+ try {
+
g_current_symbol_table = thread->get_finfo()->get_symtab();
thread->clearRPC();
thread->m_last_set_operand_value.u64 = 0;
@@ -1248,6 +1252,12 @@ void function_info::ptx_exec_inst( ptx_thread_info *thread,
*space = insn_space;
*addr = insn_memaddr;
*data_size = insn_data_size;
+
+ } catch ( int x ) {
+ printf("GPGPU-Sim PTX: ERROR (%d) executing intruction (%s:%u)\n", x, pI->source_file(), pI->source_line() );
+ printf("GPGPU-Sim PTX: '%s'\n", pI->get_source() );
+ abort();
+ }
}
unsigned g_gx, g_gy, g_gz;