diff options
| author | Wilson Fung <[email protected]> | 2013-08-30 02:45:59 -0800 |
|---|---|---|
| committer | Andrew Boktor <[email protected]> | 2014-08-14 13:50:59 -0700 |
| commit | bb2a665ccd57f71043561a965a4c11931f96e7ef (patch) | |
| tree | 5ce4a038736541d9b481f7f6f3c4756ce1d56d5a | |
| parent | 1cf38dabd66231ab259efe086b1317373d722303 (diff) | |
Fixing assertion that occurs when L1 cache is configured with write-allocation policy. Also added description for the write-allocation fix implemented by Tayler.
[git-p4: depot-paths = "//depot/gpgpu_sim_research/fermi/distribution/": change = 16914]
| -rw-r--r-- | CHANGES | 4 | ||||
| -rw-r--r-- | src/gpgpu-sim/shader.cc | 1 | ||||
| -rw-r--r-- | src/gpgpu-sim/shader.h | 1 | ||||
| -rw-r--r-- | src/gpgpu-sim/traffic_breakdown.cc | 1 |
4 files changed, 7 insertions, 0 deletions
@@ -80,6 +80,10 @@ Version 3.2.1+edits (development branch) versus 3.2.1 dram_t::cycle(). - Fixed the segmentation faults that occur when L2 cache is diabled. The bug was introduced when GPUWattch was integrated into GPGPU-Sim. + - Fixed the deadlock that occurs when L1 cache is configured with + write-back, write-allocate policy. The fix involves generating different + types of write-allocation requests for L1 and L2 caches, so that + write-allocation requests from L1 cache are not consumed by the L2 cache. Version 3.2.1 versus 3.2.0 - Added kernel name and launch uids to performance statistics log. diff --git a/src/gpgpu-sim/shader.cc b/src/gpgpu-sim/shader.cc index df858fa..230af89 100644 --- a/src/gpgpu-sim/shader.cc +++ b/src/gpgpu-sim/shader.cc @@ -3189,6 +3189,7 @@ void simt_core_cluster::icnt_inject_request_packet(class mem_fetch *mf) case INST_ACC_R: m_stats->gpgpu_n_mem_read_inst++; break; case L1_WRBK_ACC: m_stats->gpgpu_n_mem_write_global++; break; case L2_WRBK_ACC: m_stats->gpgpu_n_mem_l2_writeback++; break; + case L1_WR_ALLOC_R: m_stats->gpgpu_n_mem_l1_write_allocate++; break; case L2_WR_ALLOC_R: m_stats->gpgpu_n_mem_l2_write_allocate++; break; default: assert(0); } diff --git a/src/gpgpu-sim/shader.h b/src/gpgpu-sim/shader.h index f141019..c2775cf 100644 --- a/src/gpgpu-sim/shader.h +++ b/src/gpgpu-sim/shader.h @@ -1387,6 +1387,7 @@ struct shader_core_stats_pod { int gpgpu_n_mem_read_inst; int gpgpu_n_mem_l2_writeback; + int gpgpu_n_mem_l1_write_allocate; int gpgpu_n_mem_l2_write_allocate; unsigned made_write_mfs; diff --git a/src/gpgpu-sim/traffic_breakdown.cc b/src/gpgpu-sim/traffic_breakdown.cc index b21b8d8..32f0d30 100644 --- a/src/gpgpu-sim/traffic_breakdown.cc +++ b/src/gpgpu-sim/traffic_breakdown.cc @@ -36,6 +36,7 @@ std::string traffic_breakdown::classify_memfetch(class mem_fetch * mf) case INST_ACC_R: case L1_WRBK_ACC: case L2_WRBK_ACC: + case L1_WR_ALLOC_R: case L2_WR_ALLOC_R: traffic_name = mem_access_type_str(access_type); break; |
