summaryrefslogtreecommitdiff
path: root/src/stream_manager.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/stream_manager.cc')
-rw-r--r--src/stream_manager.cc12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/stream_manager.cc b/src/stream_manager.cc
index 0ce3c6a..72f8bb0 100644
--- a/src/stream_manager.cc
+++ b/src/stream_manager.cc
@@ -302,6 +302,14 @@ bool stream_manager::register_finished_kernel(unsigned grid_uid) {
void stream_manager::stop_all_running_kernels() {
pthread_mutex_lock(&m_lock);
+ std::vector<unsigned long long> finished_streams;
+ std::vector<kernel_info_t *> running_kernels = m_gpu->get_running_kernels();
+ for (kernel_info_t *k : running_kernels) {
+ if (k != NULL) {
+ finished_streams.push_back(k->get_streamID());
+ }
+ }
+
// Signal m_gpu to stop all running kernels
m_gpu->stop_all_running_kernels();
@@ -312,7 +320,9 @@ void stream_manager::stop_all_running_kernels() {
}
// If any kernels completed, print out the current stats
- if (count > 0) m_gpu->print_stats();
+ for (unsigned long long streamID : finished_streams) {
+ m_gpu->print_stats(streamID);
+ }
pthread_mutex_unlock(&m_lock);
}