diff --git a/src/plugins/intel_gpu/include/intel_gpu/plugin/program_builder.hpp b/src/plugins/intel_gpu/include/intel_gpu/plugin/program_builder.hpp index 0931e931014..5cede62fd17 100644 --- a/src/plugins/intel_gpu/include/intel_gpu/plugin/program_builder.hpp +++ b/src/plugins/intel_gpu/include/intel_gpu/plugin/program_builder.hpp @@ -80,8 +80,7 @@ struct PerfCounter { class ProgramBuilder final { public: - ProgramBuilder(std::shared_ptr model, cldnn::engine& engine, const ExecutionConfig& config, - bool createTopologyOnly = false, bool partialBuild = false, + ProgramBuilder(std::shared_ptr model, cldnn::engine& engine, const ExecutionConfig& config, bool partialBuild = false, std::shared_ptr task_executor = nullptr, std::shared_ptr compilation_context = nullptr, bool innerProgram = false); @@ -174,10 +173,9 @@ private: void cleanup_build(); // TODO(eunsoo): remove createTopolpgyOnly argument and add another method to create topology from ngraph function - std::shared_ptr build(const std::vector>& ops, - bool createTopologyOnly = false, bool partialBuild = false, bool innerProgram = false); + std::shared_ptr build(const std::vector>& ops, bool partialBuild = false, bool innerProgram = false); - void CreateSingleLayerPrimitive(cldnn::topology& topology, const std::shared_ptr& op); + void CreateSingleLayerPrimitive(const std::shared_ptr& op); }; void CreateCustomOp(ProgramBuilder& p, const std::shared_ptr& node, CustomLayerPtr customLayer); @@ -189,8 +187,6 @@ void CreateElementwiseOp(ProgramBuilder& p, std::vector coefficients = {}, bool pythondiv = true); -bool IsNodeOnConstPath(const std::shared_ptr& node); - void validate_inputs_count(const std::shared_ptr& op, std::vector possible_inputs_count); inline bool ends_with(const std::string& value, const std::string& suffix) { diff --git a/src/plugins/intel_gpu/src/plugin/compiled_model.cpp b/src/plugins/intel_gpu/src/plugin/compiled_model.cpp index bfaea6ea279..52fa7f03e14 100644 --- a/src/plugins/intel_gpu/src/plugin/compiled_model.cpp +++ b/src/plugins/intel_gpu/src/plugin/compiled_model.cpp @@ -2,28 +2,17 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "openvino/pass/serialize.hpp" #include "openvino/runtime/iplugin.hpp" #include "openvino/runtime/intel_gpu/properties.hpp" #include "openvino/runtime/internal_properties.hpp" -#include "openvino/util/common_util.hpp" #include "intel_gpu/graph/serialization/binary_buffer.hpp" -#include "intel_gpu/graph/serialization/layout_serializer.hpp" -#include "intel_gpu/graph/serialization/string_serializer.hpp" -#include "intel_gpu/graph/serialization/utils.hpp" -#include "intel_gpu/graph/serialization/vector_serializer.hpp" #include "intel_gpu/runtime/itt.hpp" #include "intel_gpu/plugin/graph.hpp" #include "intel_gpu/plugin/compiled_model.hpp" #include "intel_gpu/plugin/async_infer_request.hpp" -#include -#include #include -#include -#include -#include namespace ov { namespace intel_gpu { diff --git a/src/plugins/intel_gpu/src/plugin/graph.cpp b/src/plugins/intel_gpu/src/plugin/graph.cpp index 852a75f0ef4..cc35d024322 100644 --- a/src/plugins/intel_gpu/src/plugin/graph.cpp +++ b/src/plugins/intel_gpu/src/plugin/graph.cpp @@ -39,7 +39,7 @@ Graph::Graph(std::shared_ptr model, const RemoteContextImpl::Ptr& con : m_context(context) , m_config(config) , m_stream_id(stream_id) { - auto program_builder = std::make_shared(model, get_engine(), config, false, false); + auto program_builder = std::make_shared(model, get_engine(), config, false); m_config = program_builder->get_config(); build(program_builder->get_compiled_program()); diff --git a/src/plugins/intel_gpu/src/plugin/ops/condition.cpp b/src/plugins/intel_gpu/src/plugin/ops/condition.cpp index ba238e111c7..4b7b3748d6e 100644 --- a/src/plugins/intel_gpu/src/plugin/ops/condition.cpp +++ b/src/plugins/intel_gpu/src/plugin/ops/condition.cpp @@ -31,7 +31,7 @@ static cldnn::condition::branch gen_branch(ProgramBuilder& p, const std::shared_ config.set_property(ov::intel_gpu::max_dynamic_batch(1)); config.set_property(ov::intel_gpu::allow_new_shape_infer(op->is_dynamic() || p.use_new_shape_infer())); - ProgramBuilder prog(internal_body, p.get_engine(), config, false, false, p.get_task_executor(), p.get_compilation_context(), true); + ProgramBuilder prog(internal_body, p.get_engine(), config, false, p.get_task_executor(), p.get_compilation_context(), true); branch.inner_program = prog.get_compiled_program(); auto& input_map = branch.input_map; diff --git a/src/plugins/intel_gpu/src/plugin/ops/loop.cpp b/src/plugins/intel_gpu/src/plugin/ops/loop.cpp index d280be79ada..21314503caa 100644 --- a/src/plugins/intel_gpu/src/plugin/ops/loop.cpp +++ b/src/plugins/intel_gpu/src/plugin/ops/loop.cpp @@ -297,7 +297,7 @@ static void CreateCommonLoopOp(ProgramBuilder& p, const std::shared_ptr(cloned_model, engine, config, false, true); + program = std::make_shared(cloned_model, engine, config, true); std::pair device_memory_usage = program->get_compiled_program()->get_estimated_device_mem_usage(); if (device_memory_usage.first == static_cast(-1L) && device_memory_usage.second == static_cast(-1L)) { return static_cast(max_batch_size); diff --git a/src/plugins/intel_gpu/src/plugin/program_builder.cpp b/src/plugins/intel_gpu/src/plugin/program_builder.cpp index 499744f8d0e..f28fee32d39 100644 --- a/src/plugins/intel_gpu/src/plugin/program_builder.cpp +++ b/src/plugins/intel_gpu/src/plugin/program_builder.cpp @@ -54,7 +54,7 @@ std::string layer_type_name_ID(const std::shared_ptr& op) { } ProgramBuilder::ProgramBuilder(std::shared_ptr model, cldnn::engine& engine, const ExecutionConfig& config, - bool create_topology_only, bool partial_build, + bool partial_build, std::shared_ptr task_executor, std::shared_ptr compilation_context, bool is_inner_program) @@ -103,7 +103,7 @@ ProgramBuilder::ProgramBuilder(std::shared_ptr model, cldnn::engine& auto ops = model->get_ordered_ops(); - m_program = build(ops, create_topology_only, partial_build, is_inner_program); + m_program = build(ops, partial_build, is_inner_program); } ProgramBuilder::ProgramBuilder(cldnn::engine& engine, const ExecutionConfig& config) @@ -133,8 +133,7 @@ void ProgramBuilder::cleanup_build() { #endif } -std::shared_ptr ProgramBuilder::build(const std::vector>& ops, - bool create_topology_only, bool partial_build, bool is_inner_program) { +std::shared_ptr ProgramBuilder::build(const std::vector>& ops, bool partial_build, bool is_inner_program) { OV_ITT_SCOPED_TASK(itt::domains::intel_gpu_plugin, "ProgramBuilder::build"); // In the case of inner program, allow_new_shape_infer flag is setted by outside of program. // So, do not check allow_new_shape_infer for inner program build @@ -157,35 +156,31 @@ std::shared_ptr ProgramBuilder::build(const std::vector& op) { OV_ITT_SCOPED_TASK(itt::domains::intel_gpu_plugin, "ProgramBuilder::is_op_supported"); - cldnn::topology topology; try { // Query mode disables checks that input primitives are created, // as is_op_supported method is called for each operation separately @@ -199,7 +194,7 @@ bool ProgramBuilder::is_op_supported(const std::shared_ptr& op) { // reliable results of QueryNetwork call. prepare_build(); allow_new_shape_infer = requires_new_shape_infer(op); - CreateSingleLayerPrimitive(topology, op); + CreateSingleLayerPrimitive(op); cleanup_build(); DisableQueryMode(); } catch (std::exception&) { @@ -211,7 +206,7 @@ bool ProgramBuilder::is_op_supported(const std::shared_ptr& op) { return true; } -void ProgramBuilder::CreateSingleLayerPrimitive(cldnn::topology& topology, const std::shared_ptr& op) { +void ProgramBuilder::CreateSingleLayerPrimitive(const std::shared_ptr& op) { OV_ITT_SCOPED_TASK(itt::domains::intel_gpu_plugin, "ProgramBuilder::CreateSingleLayerPrimitive"); GPU_DEBUG_LOG << "Process " << "op::" << op->get_type_info().version_id << "::" << op->get_type_name() << " operation " << "(friendly_name=" << op->get_friendly_name() << ")" << std::endl; @@ -369,28 +364,6 @@ int64_t ProgramBuilder::get_result_index(const ov::Output& value return m_model->get_result_index(value); } -// TODO: Does it make sense to add such method to ov core? -bool IsNodeOnConstPath(const std::shared_ptr& node) { - std::set> nodes_processed = {}; - std::function&)> is_const_node = [&nodes_processed, &is_const_node](const std::shared_ptr& node) { - if (nodes_processed.count(node)) return true; - nodes_processed.insert(node); - // If input is constant, then drop it from the processing list - if (std::dynamic_pointer_cast(node) != nullptr) - return true; - // If the node doesn't have any parents and it's not a constant, then we deal with dynamic path - if (node->get_input_size() == 0) - return false; - for (size_t i = 0; i < node->get_input_size(); i++) { - auto input_node = node->get_input_node_shared_ptr(i); - if (!is_const_node(input_node)) - return false; - } - return true; - }; - return is_const_node(node); -} - void validate_inputs_count(const std::shared_ptr& op, std::vector valid_inputs_count) { for (auto ic : valid_inputs_count) { if (op->get_input_size() == ic) { diff --git a/src/plugins/intel_gpu/src/plugin/sync_infer_request.cpp b/src/plugins/intel_gpu/src/plugin/sync_infer_request.cpp index 3018a4f0b96..dba2809c7b1 100644 --- a/src/plugins/intel_gpu/src/plugin/sync_infer_request.cpp +++ b/src/plugins/intel_gpu/src/plugin/sync_infer_request.cpp @@ -6,8 +6,6 @@ #include "openvino/core/preprocess/input_tensor_info.hpp" #include "openvino/core/parallel.hpp" #include "openvino/core/validation_util.hpp" -#include "openvino/op/util/op_types.hpp" -#include "transformations/utils/utils.hpp" #include "intel_gpu/primitives/kv_cache.hpp" #include "intel_gpu/plugin/usm_host_tensor.hpp" diff --git a/src/plugins/intel_gpu/src/plugin/usm_host_tensor.cpp b/src/plugins/intel_gpu/src/plugin/usm_host_tensor.cpp index ebc4d20b3c1..5ffe32f7a2d 100644 --- a/src/plugins/intel_gpu/src/plugin/usm_host_tensor.cpp +++ b/src/plugins/intel_gpu/src/plugin/usm_host_tensor.cpp @@ -5,7 +5,6 @@ #include "intel_gpu/plugin/usm_host_tensor.hpp" #include "intel_gpu/plugin/remote_tensor.hpp" #include "intel_gpu/plugin/remote_context.hpp" -#include "openvino/runtime/make_tensor.hpp" #include namespace ov {