From 7b649c4150964c45ddba13ee3d0fc3b15126083d Mon Sep 17 00:00:00 2001 From: Sergey Shlyapnikov Date: Wed, 8 Feb 2023 09:18:46 +0400 Subject: [PATCH] [GPU] Fix reset_execution() method with wait option enabled for `in_order` queue type (#15562) --- src/plugins/intel_gpu/src/graph/network.cpp | 23 +++++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/src/plugins/intel_gpu/src/graph/network.cpp b/src/plugins/intel_gpu/src/graph/network.cpp index e0562e8713a..a93f87f06b2 100644 --- a/src/plugins/intel_gpu/src/graph/network.cpp +++ b/src/plugins/intel_gpu/src/graph/network.cpp @@ -570,17 +570,22 @@ void network::set_arguments() { } void network::reset_execution(bool wait) { - if (wait && _events.size() > 0) { - std::vector events; - for (auto& pair : _events) { - auto& ev = pair.second; - if (ev->is_set()) - continue; + if (wait) { + auto queue_type = get_config().get_property(ov::intel_gpu::queue_type); + if (queue_type == QueueTypes::in_order) { + get_stream().finish(); + } else if (queue_type == QueueTypes::out_of_order && _events.size() > 0) { + std::vector events; + for (auto& pair : _events) { + auto& ev = pair.second; + if (ev->is_set()) + continue; - events.push_back(ev); + events.push_back(ev); + } + + get_stream().wait_for_events(events); } - - get_stream().wait_for_events(events); } _events.clear(); }