summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libcuda/cuda_runtime_api.cc20
-rw-r--r--src/cuda-sim/cuda-sim.cc3
2 files changed, 21 insertions, 2 deletions
diff --git a/libcuda/cuda_runtime_api.cc b/libcuda/cuda_runtime_api.cc
index d971222..a45ed61 100644
--- a/libcuda/cuda_runtime_api.cc
+++ b/libcuda/cuda_runtime_api.cc
@@ -1157,6 +1157,26 @@ __host__ cudaError_t CUDARTAPI cudaStreamQuery(cudaStream_t stream)
#endif
}
+__host__ cudaError_t CUDARTAPI cudaStreamWaitEvent(cudaStream_t stream, cudaEvent_t event, unsigned int flags)
+{
+
+#if (CUDART_VERSION >= 3000)
+ if( stream == NULL )
+ return g_last_cudaError = cudaErrorInvalidResourceHandle;
+ return g_last_cudaError = stream->empty()?cudaSuccess:cudaErrorNotReady;
+#else
+ printf("GPGPU-Sim API: cudaStreamWaitEvent ** waiting for event\n");
+ fflush(stdout);
+ CUevent_st *e = (CUevent_st*) event;
+ while( !e->done() )
+ ;
+ printf("GPGPU-Sim API: cudaStreamWaitEvent ** event detected\n");
+ fflush(stdout);
+ printf("GPGPU-Sim PTX: WARNING: Asynchronous kernel execution not supported (%s)\n", __my_func__);
+ return g_last_cudaError = cudaSuccess; // it is always success because all cuda calls are synchronous
+#endif
+}
+
/*******************************************************************************
* *
* *
diff --git a/src/cuda-sim/cuda-sim.cc b/src/cuda-sim/cuda-sim.cc
index 05b6201..0e14dd0 100644
--- a/src/cuda-sim/cuda-sim.cc
+++ b/src/cuda-sim/cuda-sim.cc
@@ -107,7 +107,6 @@ void gpgpu_t::gpgpu_ptx_sim_bindNameToTexture(const char* name, const struct tex
std::string texname(name);
if (m_NameToTextureRef.find(texname)==m_NameToTextureRef.end()){
m_NameToTextureRef[texname] = std::set<const struct textureReference*>();
- m_NameToTextureRef[texname].insert(texref);
}else{
const struct textureReference* tr = *m_NameToTextureRef[texname].begin();
assert(tr!=NULL);
@@ -123,8 +122,8 @@ void gpgpu_t::gpgpu_ptx_sim_bindNameToTexture(const char* name, const struct tex
tr->channelDesc.w==texref->channelDesc.w&&
tr->channelDesc.f==texref->channelDesc.f
);
- m_NameToTextureRef[texname].insert(texref);
}
+ m_NameToTextureRef[texname].insert(texref);
m_TextureRefToName[texref] = texname;
const textureReferenceAttr *texAttr = new textureReferenceAttr(texref, dim, (enum cudaTextureReadMode)readmode, ext);
m_NameToAttribute[texname] = texAttr;