summaryrefslogtreecommitdiff
path: root/src/gpgpu-sim/shader.cc
diff options
context:
space:
mode:
authorWilson Fung <[email protected]>2012-02-22 05:52:04 -0800
committerAndrew Boktor <[email protected]>2014-08-14 13:19:03 -0700
commit14c9cd2ccd09e3f1ce8b6a4659556bbb41b971fb (patch)
treecbce5f9fd9cd0a00322d6843a17411e987473319 /src/gpgpu-sim/shader.cc
parentf14d1687d360a9a9007eacec680a4a71cf9bc76b (diff)
Adding option 'gpgpu_simt_core_sim_order' which allow the user to specify the order in which cores are simulator per cycle. Also adding support for calling function with empty parameter list.
[git-p4: depot-paths = "//depot/gpgpu_sim_research/fermi/distribution/": change = 11489]
Diffstat (limited to 'src/gpgpu-sim/shader.cc')
-rw-r--r--src/gpgpu-sim/shader.cc10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/gpgpu-sim/shader.cc b/src/gpgpu-sim/shader.cc
index 742d3c9..060dd07 100644
--- a/src/gpgpu-sim/shader.cc
+++ b/src/gpgpu-sim/shader.cc
@@ -2046,13 +2046,19 @@ simt_core_cluster::simt_core_cluster( class gpgpu_sim *gpu,
for( unsigned i=0; i < config->n_simt_cores_per_cluster; i++ ) {
unsigned sid = m_config->cid_to_sid(i,m_cluster_id);
m_core[i] = new shader_core_ctx(gpu,this,sid,m_cluster_id,config,mem_config,stats);
+ m_core_sim_order.push_back(i);
}
}
void simt_core_cluster::core_cycle()
{
- for( unsigned i=0; i < m_config->n_simt_cores_per_cluster; i++ )
- m_core[i]->cycle();
+ for( std::list<unsigned>::iterator it = m_core_sim_order.begin(); it != m_core_sim_order.end(); ++it ) {
+ m_core[*it]->cycle();
+ }
+
+ if (m_config->simt_core_sim_order == 1) {
+ m_core_sim_order.splice(m_core_sim_order.end(), m_core_sim_order, m_core_sim_order.begin());
+ }
}
void simt_core_cluster::reinit()