summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/stream_manager.cc7
-rw-r--r--src/stream_manager.h11
2 files changed, 17 insertions, 1 deletions
diff --git a/src/stream_manager.cc b/src/stream_manager.cc
index 3b6cbd5..5b886ab 100644
--- a/src/stream_manager.cc
+++ b/src/stream_manager.cc
@@ -195,6 +195,13 @@ bool stream_operation::do_operation( gpgpu_sim *gpu )
m_stream->record_next_done();
}
break;
+ case stream_wait_event: {
+ if(g_debug_execution >= 3)
+ printf("stream wait event\n");
+ if(m_event->done())
+ m_stream->record_next_done();
+ }
+ break;
default:
abort();
}
diff --git a/src/stream_manager.h b/src/stream_manager.h
index 222a1b2..edf2b24 100644
--- a/src/stream_manager.h
+++ b/src/stream_manager.h
@@ -51,7 +51,8 @@ enum stream_operation_type {
stream_memcpy_to_symbol,
stream_memcpy_from_symbol,
stream_kernel_launch,
- stream_event
+ stream_event,
+ stream_wait_event
};
class stream_operation {
@@ -101,6 +102,14 @@ public:
m_stream=stream;
m_done=false;
}
+ stream_operation( struct CUstream_st *stream, class CUevent_st *e, unsigned int flags )
+ {
+ m_kernel=NULL;
+ m_type=stream_wait_event;
+ m_event=e;
+ m_stream=stream;
+ m_done=false;
+ }
stream_operation( const void *host_address_src, size_t device_address_dst, size_t cnt, struct CUstream_st *stream )
{
m_kernel=NULL;