diff options
| author | Tor Aamodt <[email protected]> | 2010-10-24 11:07:46 -0800 |
|---|---|---|
| committer | Tor Aamodt <[email protected]> | 2010-10-24 11:07:46 -0800 |
| commit | ad07a5645d60d1db972d1a063585deb1a9ac229c (patch) | |
| tree | cfc5e041edb8a02fbdfdb03e1119a4770607f1f7 /src/gpgpu-sim | |
| parent | 9ce235efd70782eba687da0f3163ff0f3f2840ef (diff) | |
1. fix load imbalance issue (CTA's were filling up first core in a cluster before moving to next)
this improves correlation to 0.9471
2. update config to use sm_12 if available (goal: seems like BlackScholes has different ipc on hardware
from before, this didn't help though)
3. update comparison scripts since no ld_const stuff was removed
[git-p4: depot-paths = "//depot/gpgpu_sim_research/fermi/distribution/": change = 7911]
Diffstat (limited to 'src/gpgpu-sim')
| -rw-r--r-- | src/gpgpu-sim/shader.cc | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/gpgpu-sim/shader.cc b/src/gpgpu-sim/shader.cc index 20910be..f723b78 100644 --- a/src/gpgpu-sim/shader.cc +++ b/src/gpgpu-sim/shader.cc @@ -1996,10 +1996,10 @@ simt_core_cluster::simt_core_cluster( class gpgpu_sim *gpu, const struct memory_config *mem_config, shader_core_stats *stats ) { - m_cta_issue_next_core=0; + m_config = config; + m_cta_issue_next_core=m_config->n_simt_cores_per_cluster-1; // this causes first launch to use hw cta 0 m_cluster_id=cluster_id; m_gpu = gpu; - m_config = config; m_stats = stats; m_core = new shader_core_ctx*[ config->n_simt_cores_per_cluster ]; for( unsigned i=0; i < config->n_simt_cores_per_cluster; i++ ) @@ -2043,10 +2043,11 @@ unsigned simt_core_cluster::issue_block2core( class kernel_info_t &kernel ) { unsigned num_blocks_issued=0; for( unsigned i=0; i < m_config->n_simt_cores_per_cluster; i++ ) { - unsigned core = (i+m_cta_issue_next_core)%m_config->n_simt_cores_per_cluster; + unsigned core = (i+m_cta_issue_next_core+1)%m_config->n_simt_cores_per_cluster; if( m_core[core]->get_n_active_cta() < m_config->max_cta(kernel) ) { m_core[core]->issue_block2core(kernel); num_blocks_issued++; + m_cta_issue_next_core=core; break; } } |
