summaryrefslogtreecommitdiff
path: root/src/stream_manager.h
diff options
context:
space:
mode:
authorMahmoud <[email protected]>2019-07-29 21:18:06 -0400
committerMahmoud <[email protected]>2019-07-29 21:18:06 -0400
commit5875fda72d4402413bc5c04ee5ec15085ff2b90a (patch)
treec920268d899df331e1a5e451a35133eaff7ca341 /src/stream_manager.h
parentc05dc90da35fc2bd9dd42da9626bf3a60e2c9e8d (diff)
parent21d937256fbca004c926531cfef1adefcedeef91 (diff)
Merge branch 'dev' of https://github.com/mkhairy/gpgpu-sim-private into dev-purdue-integration-trace
Diffstat (limited to 'src/stream_manager.h')
-rw-r--r--src/stream_manager.h20
1 files changed, 16 insertions, 4 deletions
diff --git a/src/stream_manager.h b/src/stream_manager.h
index 222a1b2..3fbdbaf 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 {
@@ -93,7 +94,7 @@ public:
m_stream=stream;
m_done=false;
}
- stream_operation( class CUevent_st *e, struct CUstream_st *stream )
+ stream_operation( struct CUevent_st *e, struct CUstream_st *stream )
{
m_kernel=NULL;
m_type=stream_event;
@@ -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;
@@ -172,10 +181,10 @@ private:
bool m_sim_mode;
kernel_info_t *m_kernel;
- class CUevent_st *m_event;
+ struct CUevent_st *m_event;
};
-class CUevent_st {
+struct CUevent_st {
public:
CUevent_st( bool blocking )
{
@@ -246,8 +255,11 @@ public:
bool empty();
void print( FILE *fp);
void push( stream_operation op );
+ void pushCudaStreamWaitEventToAllStreams( CUevent_st *e, unsigned int flags );
bool operation(bool * sim);
void stop_all_running_kernels();
+ unsigned size() {return m_streams.size(); };
+ bool is_blocking() {return m_cuda_launch_blocking; };
private:
void print_impl( FILE *fp);