summaryrefslogtreecommitdiff
path: root/src/stream_manager.cc
diff options
context:
space:
mode:
authorboyealkim <[email protected]>2019-07-26 11:55:45 +0900
committerboyealkim <[email protected]>2019-07-26 11:55:45 +0900
commitb13557baa4ea6d1084bdcc9b28b9eb660c394427 (patch)
tree7449fad69416a28321c66190192bea6fb2b0cd97 /src/stream_manager.cc
parent8e9f0375a6a8bed217b0634a08f7f1f0cd149744 (diff)
fix indentation
Diffstat (limited to 'src/stream_manager.cc')
-rw-r--r--src/stream_manager.cc58
1 files changed, 28 insertions, 30 deletions
diff --git a/src/stream_manager.cc b/src/stream_manager.cc
index 6e02dcd..d0eecdd 100644
--- a/src/stream_manager.cc
+++ b/src/stream_manager.cc
@@ -198,13 +198,13 @@ bool stream_operation::do_operation( gpgpu_sim *gpu )
//only allows next op to go if event is done
//otherwise stays in the stream queue
printf("stream wait event processing...\n");
- if(m_event->done()){
+ if(m_event->done()){
printf("stream wait event done\n");
m_stream->record_next_done();
}
- else{
- return false;
- }
+ else{
+ return false;
+ }
break;
default:
abort();
@@ -235,7 +235,7 @@ stream_manager::stream_manager( gpgpu_sim *gpu, bool cuda_launch_blocking )
m_service_stream_zero = false;
m_cuda_launch_blocking = cuda_launch_blocking;
pthread_mutex_init(&m_lock,NULL);
- m_last_stream = m_streams.begin();
+ m_last_stream = m_streams.begin();
}
bool stream_manager::operation( bool * sim)
@@ -336,29 +336,25 @@ stream_operation stream_manager::front()
}
if(!m_service_stream_zero)
{
- std::list<struct CUstream_st*>::iterator s = m_last_stream;
- if(m_last_stream == m_streams.end()){
- s = m_streams.begin();
- }
- else{
- s++;
- }
- for(size_t ii = 0 ; ii < m_streams.size(); ii++, s++) {
- if(s == m_streams.end()){
- s = m_streams.begin();
- }
- m_last_stream = s;
- CUstream_st *stream = *s;
- if( !stream->busy() && !stream->empty() ) {
- result = stream->next();
- if( result.is_kernel() ) {
- unsigned grid_id = result.get_kernel()->get_uid();
- m_grid_id_to_stream[grid_id] = stream;
- }
- break;
- }
- }
- }
+ std::list<struct CUstream_st*>::iterator s = m_last_stream;
+ if(m_last_stream == m_streams.end()){ s = m_streams.begin(); }
+ else{ s++; }
+ for(size_t ii = 0 ; ii < m_streams.size(); ii++, s++) {
+ if(s == m_streams.end()){
+ s = m_streams.begin();
+ }
+ m_last_stream = s;
+ CUstream_st *stream = *s;
+ if( !stream->busy() && !stream->empty() ) {
+ result = stream->next();
+ if( result.is_kernel() ) {
+ unsigned grid_id = result.get_kernel()->get_uid();
+ m_grid_id_to_stream[grid_id] = stream;
+ }
+ break;
+ }
+ }
+ }
return result;
}
@@ -383,8 +379,8 @@ void stream_manager::destroy_stream( CUstream_st *stream )
break;
}
}
- delete stream;
- m_last_stream = m_streams.begin();
+ delete stream;
+ m_last_stream = m_streams.begin();
pthread_mutex_unlock(&m_lock);
}
@@ -398,6 +394,7 @@ bool stream_manager::concurrent_streams_empty()
for( s=m_streams.begin(); s!=m_streams.end();++s ) {
struct CUstream_st *stream = *s;
if( !stream->empty() ) {
+ //stream->print(stdout);
result = false;
break;
}
@@ -450,6 +447,7 @@ void stream_manager::print_impl( FILE *fp)
void stream_manager::push( stream_operation op )
{
struct CUstream_st *stream = op.get_stream();
+
// block if stream 0 (or concurrency disabled) and pending concurrent operations exist
bool block= !stream || m_cuda_launch_blocking;
while(block) {