summaryrefslogtreecommitdiff
path: root/src/cuda-sim
diff options
context:
space:
mode:
authorTor Aamodt <[email protected]>2010-10-24 23:41:43 -0800
committerTor Aamodt <[email protected]>2010-10-24 23:41:43 -0800
commit0efd3c00f5611bfa82b01d87d175122388d621cc (patch)
treeb86c29b46a2bdf1586dd1d321e760c71df841d3f /src/cuda-sim
parent826a0dc10ca939af1f2c24d0d2e63eb2b33cb731 (diff)
0.9756 correlation. Set L1T line size to 128 bytes... problem was
stalling to send four requests per warp into L1T tag lookup. If L1T is really 32B blocks (as per Henry's paper), this suggests banking of L1T needs to be modeled. Other changes: 1. bug fix in memory access generation for texture/const cache access 2. adding back memory latency measurement for visualizer [git-p4: depot-paths = "//depot/gpgpu_sim_research/fermi/distribution/": change = 7913]
Diffstat (limited to 'src/cuda-sim')
-rw-r--r--src/cuda-sim/cuda-sim.cc20
-rw-r--r--src/cuda-sim/instructions.cc7
2 files changed, 7 insertions, 20 deletions
diff --git a/src/cuda-sim/cuda-sim.cc b/src/cuda-sim/cuda-sim.cc
index 1982218..b1893a0 100644
--- a/src/cuda-sim/cuda-sim.cc
+++ b/src/cuda-sim/cuda-sim.cc
@@ -142,21 +142,11 @@ void gpgpu_t::gpgpu_ptx_sim_bindTextureToArray(const struct textureReference* te
printf("GPGPU-Sim PTX: texture cache linesize = %d\n", m_function_model_config.get_texcache_linesize());
//first determine base Tx size for given linesize
switch (m_function_model_config.get_texcache_linesize()) {
- case 16:
- Tx = 4;
- break;
- case 32:
- Tx = 8;
- break;
- case 64:
- Tx = 8;
- break;
- case 128:
- Tx = 16;
- break;
- case 256:
- Tx = 16;
- break;
+ case 16: Tx = 4; break;
+ case 32: Tx = 8; break;
+ case 64: Tx = 8; break;
+ case 128: Tx = 16; break;
+ case 256: Tx = 16; break;
default:
printf("GPGPU-Sim PTX: Line size of %d bytes currently not supported.\n", m_function_model_config.get_texcache_linesize());
assert(0);
diff --git a/src/cuda-sim/instructions.cc b/src/cuda-sim/instructions.cc
index 2b6ce9c..ad2eb43 100644
--- a/src/cuda-sim/instructions.cc
+++ b/src/cuda-sim/instructions.cc
@@ -3745,11 +3745,8 @@ void tex_impl( const ptx_instruction *pI, ptx_thread_info *thread )
thread->m_last_effective_address = tex_array_index;
break;
case GEOM_MODIFIER_2D:
- x_block_coord = x;
- x_block_coord = x_block_coord >> (texInfo->Tx_numbits + texInfo->texel_size_numbits);
-
- y_block_coord = y;
- y_block_coord = y_block_coord >> texInfo->Ty_numbits;
+ x_block_coord = x >> (texInfo->Tx_numbits + texInfo->texel_size_numbits);
+ y_block_coord = y >> texInfo->Ty_numbits;
memreqindex = ((y_block_coord*cuArray->width/texInfo->Tx)+x_block_coord)<<6;