diff options
| author | Jonathan <[email protected]> | 2018-05-25 17:05:28 -0700 |
|---|---|---|
| committer | Jonathan <[email protected]> | 2018-05-25 17:05:28 -0700 |
| commit | fbf8e1180008db2fec31ba1f1e916ea4cb4af97a (patch) | |
| tree | fa53ae3473f11df9123d04c3ff6cb06b8a4a32de /src | |
| parent | 7aa77ad0cb1265b3858a0daa08b5afe026c129f7 (diff) | |
tentative impl of cudaStreamWaitEvent
Diffstat (limited to 'src')
| -rw-r--r-- | src/stream_manager.cc | 7 | ||||
| -rw-r--r-- | src/stream_manager.h | 11 |
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; |
