diff options
| author | Tor Aamodt <[email protected]> | 2010-10-22 14:22:21 -0800 |
|---|---|---|
| committer | Tor Aamodt <[email protected]> | 2010-10-22 14:22:21 -0800 |
| commit | 4da926e61569a069bac229e8ba649e600fc78a04 (patch) | |
| tree | cdb7fb44f15cf844c587bf2c92b37d3d2412c152 /src/gpgpu-sim/shader.cc | |
| parent | dc93f319051a9a9936a02cd9c1f7843a382a2da0 (diff) | |
enables global loads/stores for ptxplus
passing CUDA 3.1 and ptxplus correlation
correlation back to around 0.89 on ptxplus vs quadro fx5800
[git-p4: depot-paths = "//depot/gpgpu_sim_research/fermi/distribution/": change = 7898]
Diffstat (limited to 'src/gpgpu-sim/shader.cc')
| -rw-r--r-- | src/gpgpu-sim/shader.cc | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/gpgpu-sim/shader.cc b/src/gpgpu-sim/shader.cc index 5c73126..79665cc 100644 --- a/src/gpgpu-sim/shader.cc +++ b/src/gpgpu-sim/shader.cc @@ -684,6 +684,8 @@ bool ldst_unit::constant_cycle( warp_inst_t &inst, mem_stage_stall_type &rc_fail { if( inst.empty() || ((inst.space.get_type() != const_space) && (inst.space.get_type() != param_space_kernel)) ) return true; + if( inst.active_count() == 0 ) + return true; mem_stage_stall_type fail = process_memory_access_queue(m_L1C,inst); if (fail != NO_RC_FAIL){ rc_fail = fail; //keep other fails if this didn't fail. @@ -699,6 +701,8 @@ bool ldst_unit::texture_cycle( warp_inst_t &inst, mem_stage_stall_type &rc_fail, { if( inst.empty() || inst.space.get_type() != tex_space ) return true; + if( inst.active_count() == 0 ) + return true; mem_stage_stall_type fail = process_memory_access_queue(m_L1T,inst); if (fail != NO_RC_FAIL){ rc_fail = fail; //keep other fails if this didn't fail. @@ -714,6 +718,8 @@ bool ldst_unit::memory_cycle( warp_inst_t &inst, mem_stage_stall_type &stall_rea (inst.space.get_type() != local_space) && (inst.space.get_type() != param_space_local)) ) return true; + if( inst.active_count() == 0 ) + return true; assert( !inst.accessq_empty() ); mem_stage_stall_type stall_cond = NO_RC_FAIL; const mem_access_t &access = inst.accessq_back(); |
