summaryrefslogtreecommitdiff
path: root/src/cuda-sim/cuda-sim.cc
diff options
context:
space:
mode:
authorJonathan <[email protected]>2018-05-17 09:27:07 -0700
committerJonathan <[email protected]>2018-05-17 09:27:07 -0700
commita851f6d6217396ebd8cd8a895ecad697336387b4 (patch)
tree6964d5e9f2649d7286cfd3ef73f3da9ab708761e /src/cuda-sim/cuda-sim.cc
parent8b34db6513e20335e06c8b40ead6d181e3ebba44 (diff)
allows gpgpusim to select a set of texture array,attr,info but maybe not the right one
Diffstat (limited to 'src/cuda-sim/cuda-sim.cc')
-rw-r--r--src/cuda-sim/cuda-sim.cc30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/cuda-sim/cuda-sim.cc b/src/cuda-sim/cuda-sim.cc
index 946043a..6e04ca8 100644
--- a/src/cuda-sim/cuda-sim.cc
+++ b/src/cuda-sim/cuda-sim.cc
@@ -140,6 +140,36 @@ unsigned int intLOGB2( unsigned int v ) {
void gpgpu_t::gpgpu_ptx_sim_bindTextureToArray(const struct textureReference* texref, const struct cudaArray* array)
{
+ // counts number of matches
+// int normalized;
+// enum cudaTextureFilterMode filterMode;
+// enum cudaTextureAddressMode addressMode[3];
+// struct cudaChannelFormatDesc channelDesc;
+// int x;
+// int y;
+// int z;
+// int w;
+// enum cudaChannelFormatKind f;
+// int trMatches = 0;
+// for (auto& kv : m_NameToTextureRef){
+// const struct textureReference* tr = kv.second;
+// if (tr->normalized==texref->normalized&&
+// tr->filterMode==texref->filterMode&&
+// tr->addressMode[0]==texref->addressMode[0]&&
+// tr->addressMode[1]==texref->addressMode[1]&&
+// tr->addressMode[2]==texref->addressMode[2]&&
+// tr->channelDesc.x==texref->channelDesc.x&&
+// tr->channelDesc.y==texref->channelDesc.y&&
+// tr->channelDesc.z==texref->channelDesc.z&&
+// tr->channelDesc.w==texref->channelDesc.w&&
+// tr->channelDesc.f==texref->channelDesc.f){
+//
+// m_TextureRefToCudaArray[tr] = array;
+// trMatches++;
+// }
+// }
+// printf("GPGPU-Sim PTX: matches to texref = %d\n", trMatches);
+// assert(trMatches==1);
m_TextureRefToCudaArray[texref] = array;
unsigned int texel_size_bits = array->desc.w + array->desc.x + array->desc.y + array->desc.z;
unsigned int texel_size = texel_size_bits/8;