summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libcuda/cuda_runtime_api.cc6
-rw-r--r--src/cuda-sim/cuda-sim.cc6
-rw-r--r--src/cuda-sim/instructions.cc2
3 files changed, 14 insertions, 0 deletions
diff --git a/libcuda/cuda_runtime_api.cc b/libcuda/cuda_runtime_api.cc
index 5dfd3fc..3574fc1 100644
--- a/libcuda/cuda_runtime_api.cc
+++ b/libcuda/cuda_runtime_api.cc
@@ -1942,6 +1942,7 @@ __host__ cudaError_t CUDARTAPI cudaBindTextureInternal(
size_t *offset, const struct textureReference *texref, const void *devPtr,
const struct cudaChannelFormatDesc *desc, size_t size __dv(UINT_MAX),
gpgpu_context *gpgpu_ctx = NULL) {
+#if (CUDART_VERSION <= 1200)
gpgpu_context *ctx;
if (gpgpu_ctx) {
ctx = gpgpu_ctx;
@@ -1978,12 +1979,14 @@ __host__ cudaError_t CUDARTAPI cudaBindTextureInternal(
gpu->gpgpu_ptx_sim_bindTextureToArray(texref, array);
devPtr = (void *)(long long)array->devPtr32;
printf("GPGPU-Sim PTX: devPtr = %p\n", devPtr);
+#endif
return g_last_cudaError = cudaSuccess;
}
__host__ cudaError_t CUDARTAPI cudaBindTextureToArrayInternal(
const struct textureReference *texref, const struct cudaArray *array,
const struct cudaChannelFormatDesc *desc, gpgpu_context *gpgpu_ctx = NULL) {
+#if (CUDART_VERSION <= 1200)
gpgpu_context *ctx;
if (gpgpu_ctx) {
ctx = gpgpu_ctx;
@@ -2001,11 +2004,13 @@ __host__ cudaError_t CUDARTAPI cudaBindTextureToArrayInternal(
gpu->gpgpu_ptx_sim_findNamefromTexture(texref));
printf("GPGPU-Sim PTX: Texture Normalized? = %d\n", texref->normalized);
gpu->gpgpu_ptx_sim_bindTextureToArray(texref, array);
+#endif
return g_last_cudaError = cudaSuccess;
}
__host__ cudaError_t CUDARTAPI cudaUnbindTextureInternal(
const struct textureReference *texref, gpgpu_context *gpgpu_ctx = NULL) {
+#if (CUDART_VERSION <= 1200)
gpgpu_context *ctx;
if (gpgpu_ctx) {
ctx = gpgpu_ctx;
@@ -2025,6 +2030,7 @@ __host__ cudaError_t CUDARTAPI cudaUnbindTextureInternal(
gpu->gpgpu_ptx_sim_findNamefromTexture(texref));
gpu->gpgpu_ptx_sim_unbindTexture(texref);
+#endif
return g_last_cudaError = cudaSuccess;
}
diff --git a/src/cuda-sim/cuda-sim.cc b/src/cuda-sim/cuda-sim.cc
index 2fd90c0..d05549c 100644
--- a/src/cuda-sim/cuda-sim.cc
+++ b/src/cuda-sim/cuda-sim.cc
@@ -125,6 +125,7 @@ cudaLaunchDeviceV2_init_perWarp, cudaLaunchDevicV2_perKernel>"
void gpgpu_t::gpgpu_ptx_sim_bindNameToTexture(
const char *name, const struct textureReference *texref, int dim,
int readmode, int ext) {
+#if (CUDART_VERSION <= 1200)
std::string texname(name);
if (m_NameToTextureRef.find(texname) == m_NameToTextureRef.end()) {
m_NameToTextureRef[texname] = std::set<const struct textureReference *>();
@@ -148,6 +149,7 @@ void gpgpu_t::gpgpu_ptx_sim_bindNameToTexture(
const textureReferenceAttr *texAttr = new textureReferenceAttr(
texref, dim, (enum cudaTextureReadMode)readmode, ext);
m_NameToAttribute[texname] = texAttr;
+#endif
}
const char *gpgpu_t::gpgpu_ptx_sim_findNamefromTexture(
@@ -185,6 +187,7 @@ unsigned int intLOGB2(unsigned int v) {
void gpgpu_t::gpgpu_ptx_sim_bindTextureToArray(
const struct textureReference *texref, const struct cudaArray *array) {
+#if (CUDART_VERSION <= 1200)
std::string texname = gpgpu_ptx_sim_findNamefromTexture(texref);
std::map<std::string, const struct cudaArray *>::const_iterator t =
@@ -258,14 +261,17 @@ void gpgpu_t::gpgpu_ptx_sim_bindTextureToArray(
texInfo->texel_size = texel_size;
texInfo->texel_size_numbits = intLOGB2(texel_size);
m_NameToTextureInfo[texname] = texInfo;
+#endif
}
void gpgpu_t::gpgpu_ptx_sim_unbindTexture(
const struct textureReference *texref) {
+#if (CUDART_VERSION <= 1200)
// assumes bind-use-unbind-bind-use-unbind pattern
std::string texname = gpgpu_ptx_sim_findNamefromTexture(texref);
m_NameToCudaArray.erase(texname);
m_NameToTextureInfo.erase(texname);
+#endif
}
#define MAX_INST_SIZE 8 /*bytes*/
diff --git a/src/cuda-sim/instructions.cc b/src/cuda-sim/instructions.cc
index 843bf0b..8bc19d3 100644
--- a/src/cuda-sim/instructions.cc
+++ b/src/cuda-sim/instructions.cc
@@ -6046,6 +6046,7 @@ void textureNormalizeOutput(const struct cudaChannelFormatDesc &desc,
}
void tex_impl(const ptx_instruction *pI, ptx_thread_info *thread) {
+#if (CUDART_VERSION <= 1200)
unsigned dimension = pI->dimension();
const operand_info &dst =
pI->dst(); // the registers to which fetched texel will be placed
@@ -6373,6 +6374,7 @@ void tex_impl(const ptx_instruction *pI, ptx_thread_info *thread) {
}
thread->set_vector_operand_values(dst, data1, data2, data3, data4);
+#endif
}
void txq_impl(const ptx_instruction *pI, ptx_thread_info *thread) {