summaryrefslogtreecommitdiff
path: root/src/gpgpu-sim/shader.cc
diff options
context:
space:
mode:
authorAndrew M. B. Boktor <[email protected]>2012-04-18 16:33:33 -0800
committerAndrew Boktor <[email protected]>2014-08-14 13:19:05 -0700
commit0cb76063ce079a0606598e145da351f134235ab5 (patch)
treec1d2de65b2d03d4ef4257ec15037b656a03657c5 /src/gpgpu-sim/shader.cc
parent5a65fb7a5f0cb1a8d7831bae33749e8bd15a947d (diff)
This changelist implements the following:
1. Adds support for using cuobjdump for both ptx and ptxplus execution. This has been tested with CUDA 4.0 . Ptxplus is no longer supported through decuda/decuda_to_ptxplus 2. Adds support for converting the SASS output by cuobjdump to ptxplus. This has been tested with CUDA 4.0 . The old path that extracts ptx from cubin files is still preserved 3. Adds a bank group model. (WARNING: memory config has changed, please adapt yours). To disable the bank groups model, set nbkgrp to 1 and tCCDL and tRTPL to 0 Diff the configuration files to learn about how to use those new options. Merging //depot/gpgpu_sim_research/fermi-test/distribution/... to //depot/gpgpu_sim_research/fermi/distribution/... [git-p4: depot-paths = "//depot/gpgpu_sim_research/fermi/distribution/": change = 12023]
Diffstat (limited to 'src/gpgpu-sim/shader.cc')
-rw-r--r--src/gpgpu-sim/shader.cc17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/gpgpu-sim/shader.cc b/src/gpgpu-sim/shader.cc
index 4c90667..527fdcb 100644
--- a/src/gpgpu-sim/shader.cc
+++ b/src/gpgpu-sim/shader.cc
@@ -1736,7 +1736,22 @@ void barrier_set_t::dump() const
void shader_core_ctx::warp_exit( unsigned warp_id )
{
- m_barriers.warp_exit( warp_id );
+ bool done = true;
+ for ( unsigned i = warp_id*get_config()->warp_size;
+ i < (warp_id+1)*get_config()->warp_size;
+ i++ ) {
+
+// if(this->m_thread[i]->m_functional_model_thread_state && this->m_thread[i].m_functional_model_thread_state->donecycle()==0) {
+// done = false;
+// }
+
+
+ if (m_thread[i] && !m_thread[i]->is_done()) done = false;
+ }
+ //if (m_warp[warp_id].get_n_completed() == get_config()->warp_size)
+ //if (this->m_simt_stack[warp_id]->get_num_entries() == 0)
+ if (done)
+ m_barriers.warp_exit( warp_id );
}
bool shader_core_ctx::warp_waiting_at_barrier( unsigned warp_id ) const