diff --git a/src/plugins/intel_gpu/include/intel_gpu/graph/network.hpp b/src/plugins/intel_gpu/include/intel_gpu/graph/network.hpp index 8de14be784b8f0..f6207e25a5ca41 100644 --- a/src/plugins/intel_gpu/include/intel_gpu/graph/network.hpp +++ b/src/plugins/intel_gpu/include/intel_gpu/graph/network.hpp @@ -36,7 +36,7 @@ struct network_output { // TODO: in_order queue doesn't create proper output event in some cases which leads to syncronization issues with user app // So call finish for associated stream to enusre that the output data is ready. if (do_sync) { - if (_stream->get_queue_type() == QueueTypes::in_order) { + if (_stream->get_queue_type() == QueueTypes::in_order || !_event) { _stream->finish(); } else { _event->wait(); diff --git a/src/plugins/intel_gpu/src/graph/impls/cpu/activation.cpp b/src/plugins/intel_gpu/src/graph/impls/cpu/activation.cpp index 32ca45882b133e..a6ef4036c2dfc8 100644 --- a/src/plugins/intel_gpu/src/graph/impls/cpu/activation.cpp +++ b/src/plugins/intel_gpu/src/graph/impls/cpu/activation.cpp @@ -278,7 +278,7 @@ struct activation_impl : public typed_primitive_impl { return stream.group_events(events); } - return make_output_event(stream); + return make_output_event(stream, instance.is_output()); } void init_kernels(const kernels_cache& , const kernel_impl_params&) override {} diff --git a/src/plugins/intel_gpu/src/graph/impls/cpu/broadcast.cpp b/src/plugins/intel_gpu/src/graph/impls/cpu/broadcast.cpp index d4595cee72fcb6..bb159019053124 100644 --- a/src/plugins/intel_gpu/src/graph/impls/cpu/broadcast.cpp +++ b/src/plugins/intel_gpu/src/graph/impls/cpu/broadcast.cpp @@ -112,7 +112,7 @@ struct broadcast_impl : public typed_primitive_impl { return stream.group_events(events); } - return make_output_event(stream); + return make_output_event(stream, instance.is_output()); } void init_kernels(const kernels_cache& , const kernel_impl_params&) override {} diff --git a/src/plugins/intel_gpu/src/graph/impls/cpu/concat.cpp b/src/plugins/intel_gpu/src/graph/impls/cpu/concat.cpp index 2bd4afdda78795..c542ab21a20183 100644 --- a/src/plugins/intel_gpu/src/graph/impls/cpu/concat.cpp +++ b/src/plugins/intel_gpu/src/graph/impls/cpu/concat.cpp @@ -99,7 +99,7 @@ struct concatenation_impl : public typed_primitive_impl { return stream.group_events(events); } - return make_output_event(stream); + return make_output_event(stream, instance.is_output()); } void init_kernels(const kernels_cache& , const kernel_impl_params&) override {} diff --git a/src/plugins/intel_gpu/src/graph/impls/cpu/cpu_impl_helpers.hpp b/src/plugins/intel_gpu/src/graph/impls/cpu/cpu_impl_helpers.hpp index cad472b1a23d37..891a536b063375 100644 --- a/src/plugins/intel_gpu/src/graph/impls/cpu/cpu_impl_helpers.hpp +++ b/src/plugins/intel_gpu/src/graph/impls/cpu/cpu_impl_helpers.hpp @@ -77,8 +77,8 @@ using vector3D = vector2D>; template using vector4D = vector2D>; -inline event::ptr make_output_event(cldnn::stream& stream) { - if (stream.get_sync_method() == SyncMethods::events) +inline event::ptr make_output_event(cldnn::stream& stream, bool is_output) { + if (is_output) return stream.create_user_event(true); return nullptr; } diff --git a/src/plugins/intel_gpu/src/graph/impls/cpu/crop.cpp b/src/plugins/intel_gpu/src/graph/impls/cpu/crop.cpp index 25bd82dcea09a8..816f4e1cb1e095 100644 --- a/src/plugins/intel_gpu/src/graph/impls/cpu/crop.cpp +++ b/src/plugins/intel_gpu/src/graph/impls/cpu/crop.cpp @@ -99,7 +99,7 @@ struct crop_impl : public typed_primitive_impl { return stream.group_events(events); } - return make_output_event(stream); + return make_output_event(stream, instance.is_output()); } void init_kernels(const kernels_cache& , const kernel_impl_params&) override {} diff --git a/src/plugins/intel_gpu/src/graph/impls/cpu/detection_output.cpp b/src/plugins/intel_gpu/src/graph/impls/cpu/detection_output.cpp index 35136fd3b49496..637578fb0147e3 100644 --- a/src/plugins/intel_gpu/src/graph/impls/cpu/detection_output.cpp +++ b/src/plugins/intel_gpu/src/graph/impls/cpu/detection_output.cpp @@ -852,7 +852,7 @@ struct detection_output_impl : typed_primitive_impl { return stream.group_events(events); } - return make_output_event(stream); + return make_output_event(stream, instance.is_output()); } void init_kernels(const kernels_cache& , const kernel_impl_params&) override {} diff --git a/src/plugins/intel_gpu/src/graph/impls/cpu/eltwise.cpp b/src/plugins/intel_gpu/src/graph/impls/cpu/eltwise.cpp index 6f0aa5f6a837cd..314749bf4a9c7b 100644 --- a/src/plugins/intel_gpu/src/graph/impls/cpu/eltwise.cpp +++ b/src/plugins/intel_gpu/src/graph/impls/cpu/eltwise.cpp @@ -212,7 +212,7 @@ struct eltwise_impl : public typed_primitive_impl { return stream.group_events(events); } - return make_output_event(stream); + return make_output_event(stream, instance.is_output()); } void init_kernels(const kernels_cache& , const kernel_impl_params&) override {} diff --git a/src/plugins/intel_gpu/src/graph/impls/cpu/gather.cpp b/src/plugins/intel_gpu/src/graph/impls/cpu/gather.cpp index 99eef112aaa70d..130ee6f8181cf0 100644 --- a/src/plugins/intel_gpu/src/graph/impls/cpu/gather.cpp +++ b/src/plugins/intel_gpu/src/graph/impls/cpu/gather.cpp @@ -102,7 +102,7 @@ struct gather_impl : public typed_primitive_impl { return stream.group_events(events); } - return make_output_event(stream); + return make_output_event(stream, instance.is_output()); } void init_kernels(const kernels_cache& , const kernel_impl_params&) override {} diff --git a/src/plugins/intel_gpu/src/graph/impls/cpu/non_max_suppression.cpp b/src/plugins/intel_gpu/src/graph/impls/cpu/non_max_suppression.cpp index 9204b64477415d..a9dc38b476ad80 100644 --- a/src/plugins/intel_gpu/src/graph/impls/cpu/non_max_suppression.cpp +++ b/src/plugins/intel_gpu/src/graph/impls/cpu/non_max_suppression.cpp @@ -416,7 +416,7 @@ struct non_max_suppression_impl : typed_primitive_impl { return stream.group_events(events); } - return make_output_event(stream); + return make_output_event(stream, instance.is_output()); } static std::unique_ptr create(const non_max_suppression_node&, const kernel_impl_params&) { @@ -460,7 +460,7 @@ struct non_max_suppression_gather_impl : typed_primitive_impl create(const non_max_suppression_gather_node&, const kernel_impl_params&) { diff --git a/src/plugins/intel_gpu/src/graph/impls/cpu/proposal.cpp b/src/plugins/intel_gpu/src/graph/impls/cpu/proposal.cpp index 3d96caeb82869d..ea4a3c30d3057a 100644 --- a/src/plugins/intel_gpu/src/graph/impls/cpu/proposal.cpp +++ b/src/plugins/intel_gpu/src/graph/impls/cpu/proposal.cpp @@ -435,7 +435,7 @@ struct proposal_impl : typed_primitive_impl { return stream.group_events(events); } - return make_output_event(stream); + return make_output_event(stream, instance.is_output()); } void init_kernels(const kernels_cache&, const kernel_impl_params&) override {} diff --git a/src/plugins/intel_gpu/src/graph/impls/cpu/range.cpp b/src/plugins/intel_gpu/src/graph/impls/cpu/range.cpp index 32fef3a2ee0b17..9d4aafb812cbc9 100644 --- a/src/plugins/intel_gpu/src/graph/impls/cpu/range.cpp +++ b/src/plugins/intel_gpu/src/graph/impls/cpu/range.cpp @@ -79,7 +79,7 @@ struct range_impl : public typed_primitive_impl { return stream.group_events(events); } - return make_output_event(stream); + return make_output_event(stream, instance.is_output()); } void init_kernels(const kernels_cache& , const kernel_impl_params&) override {} diff --git a/src/plugins/intel_gpu/src/graph/impls/cpu/read_value.cpp b/src/plugins/intel_gpu/src/graph/impls/cpu/read_value.cpp index 2dee64f6db0f54..09734a68acaffc 100644 --- a/src/plugins/intel_gpu/src/graph/impls/cpu/read_value.cpp +++ b/src/plugins/intel_gpu/src/graph/impls/cpu/read_value.cpp @@ -81,7 +81,7 @@ struct read_value_impl : public typed_primitive_impl { return stream.aggregate_events(res_events, res_events.size() > 1); } - return make_output_event(stream); + return make_output_event(stream, instance.is_output()); } void init_kernels(const kernels_cache& , const kernel_impl_params&) override {} diff --git a/src/plugins/intel_gpu/src/graph/impls/cpu/reduce.cpp b/src/plugins/intel_gpu/src/graph/impls/cpu/reduce.cpp index 6ff25dfb9941c7..af1a6d0d950a7c 100644 --- a/src/plugins/intel_gpu/src/graph/impls/cpu/reduce.cpp +++ b/src/plugins/intel_gpu/src/graph/impls/cpu/reduce.cpp @@ -139,7 +139,7 @@ struct reduce_impl : public typed_primitive_impl { return stream.group_events(events); } - return make_output_event(stream); + return make_output_event(stream, instance.is_output()); } void init_kernels(const kernels_cache& , const kernel_impl_params&) override {} diff --git a/src/plugins/intel_gpu/src/graph/impls/cpu/reorder.cpp b/src/plugins/intel_gpu/src/graph/impls/cpu/reorder.cpp index c6673fa607d883..fc7eb5329c362a 100644 --- a/src/plugins/intel_gpu/src/graph/impls/cpu/reorder.cpp +++ b/src/plugins/intel_gpu/src/graph/impls/cpu/reorder.cpp @@ -72,7 +72,7 @@ struct reorder_impl : public typed_primitive_impl { return stream.group_events(events); } - return make_output_event(stream); + return make_output_event(stream, instance.is_output()); } void init_kernels(const kernels_cache& , const kernel_impl_params&) override {} diff --git a/src/plugins/intel_gpu/src/graph/impls/cpu/scatter_update.cpp b/src/plugins/intel_gpu/src/graph/impls/cpu/scatter_update.cpp index 659c69f339f965..7e2b2beadf74c0 100644 --- a/src/plugins/intel_gpu/src/graph/impls/cpu/scatter_update.cpp +++ b/src/plugins/intel_gpu/src/graph/impls/cpu/scatter_update.cpp @@ -94,7 +94,7 @@ struct scatter_update_impl : public typed_primitive_impl { return stream.group_events(events); } - return make_output_event(stream); + return make_output_event(stream, instance.is_output()); } void init_kernels(const kernels_cache& , const kernel_impl_params&) override {} diff --git a/src/plugins/intel_gpu/src/graph/impls/cpu/select.cpp b/src/plugins/intel_gpu/src/graph/impls/cpu/select.cpp index f6263a9b7ba2c1..7c9c501bedf8de 100644 --- a/src/plugins/intel_gpu/src/graph/impls/cpu/select.cpp +++ b/src/plugins/intel_gpu/src/graph/impls/cpu/select.cpp @@ -89,7 +89,7 @@ struct select_impl : public typed_primitive_impl