From e34be5a6eb7ad5d3bfa95e0ceefff0f4100ad00f Mon Sep 17 00:00:00 2001 From: Alexandra Sidorova Date: Mon, 9 Sep 2024 09:18:39 +0400 Subject: [PATCH] [Snippets] Applied Vladislav comments --- .../snippets/lowered/expressions/buffer_expression.hpp | 2 +- src/common/snippets/src/generator.cpp | 2 +- src/common/snippets/src/lowered/expression.cpp | 8 +++++--- src/common/snippets/src/lowered/expression_factory.cpp | 2 +- src/common/snippets/src/lowered/linear_ir.cpp | 6 +++--- src/common/snippets/src/lowered/pass/validate_buffers.cpp | 2 +- 6 files changed, 12 insertions(+), 10 deletions(-) diff --git a/src/common/snippets/include/snippets/lowered/expressions/buffer_expression.hpp b/src/common/snippets/include/snippets/lowered/expressions/buffer_expression.hpp index 94fdf1c8dcdc1a..c62a0ee59d5d84 100644 --- a/src/common/snippets/include/snippets/lowered/expressions/buffer_expression.hpp +++ b/src/common/snippets/include/snippets/lowered/expressions/buffer_expression.hpp @@ -18,7 +18,7 @@ class LoopManager; /** * @interface BufferExpression * @brief This is a base class for memory storage. - * Notes that Buffer should be a single consumer for operation output port + * Note that Buffer should be a single consumer for operation output port * @param m_allocation_size - memory size for allocation in bytes. Dynamic value means undefined size. * @param m_offset - offset in common Buffer scratchpad * @param m_reg_group - number of register group. The Buffers from the same register group will have the same GPR diff --git a/src/common/snippets/src/generator.cpp b/src/common/snippets/src/generator.cpp index d76545e0a5ba40..d059ddd94d5724 100644 --- a/src/common/snippets/src/generator.cpp +++ b/src/common/snippets/src/generator.cpp @@ -29,7 +29,7 @@ LoweringResult Generator::generate(const lowered::LinearIRPtr& linear_ir, const const auto kernel_op = op::Kernel::make_kernel(*linear_ir); kernel_op->compile_params = compile_params; - const auto kernel_expr = linear_ir->get_expr_factory()->build<>(kernel_op, std::vector{}); + const auto kernel_expr = linear_ir->get_expr_factory()->build(kernel_op, std::vector{}); const auto kernel = target->get(kernel_expr->get_node()->get_type_info())(kernel_expr); kernel->emit_code({}, {}); diff --git a/src/common/snippets/src/lowered/expression.cpp b/src/common/snippets/src/lowered/expression.cpp index 01d301fdb86063..b7fe496f66896a 100644 --- a/src/common/snippets/src/lowered/expression.cpp +++ b/src/common/snippets/src/lowered/expression.cpp @@ -32,12 +32,14 @@ Expression::Expression(const Expression& other) : std::enable_shared_from_this(other), m_source_node(other.m_source_node), m_emitter(other.m_emitter), m_loop_ids(other.m_loop_ids), m_shapeInference(other.m_shapeInference), m_need_shape_infer(other.m_need_shape_infer), m_exec_num(other.m_exec_num) { - m_input_port_descriptors = {}; - m_output_port_descriptors = {}; // Note that connectors are not filled on purpose, since you need a shared pointer to this to initialize them, // which is not available in constructor. Also, an expression copy is rarely expected to use the same connectors. m_input_port_connectors = {}; m_output_port_connectors = {}; + // The copy ctor is used only in `clone_with_new_inputs`. This method is responsible for initialization of + // input port connectors and input port descriptors - they must be consistent. + m_input_port_descriptors = {}; + m_output_port_descriptors = {}; validate_attributes(); } @@ -132,7 +134,7 @@ void Expression::set_loop_ids(const std::vector& loops) { } void Expression::update_port_attributes(const std::shared_ptr& new_node, const std::vector& new_inputs, - const std::vector& new_in_descs, const std::vector& new_out_descs) { + const std::vector& new_in_descs, const std::vector& new_out_descs) { OPENVINO_ASSERT(m_source_node->get_type_info() == new_node->get_type_info(), "Can't clone expression for a new node with incompatible type"); m_source_node = new_node; OPENVINO_ASSERT(new_inputs.size() == new_in_descs.size(), "Can't create Expression with new inputs: invalid number of input port connectors passed"); diff --git a/src/common/snippets/src/lowered/expression_factory.cpp b/src/common/snippets/src/lowered/expression_factory.cpp index c6ba395909c9f3..668df3b65c415e 100644 --- a/src/common/snippets/src/lowered/expression_factory.cpp +++ b/src/common/snippets/src/lowered/expression_factory.cpp @@ -29,7 +29,7 @@ std::shared_ptr ExpressionFactory::build(const std::shared_ptr return create(perf_counter, inputs, m_shape_infer_factory); #endif } - return create<>(n, inputs, m_shape_infer_factory); + return create(n, inputs, m_shape_infer_factory); } void ExpressionFactory::create_expression_outputs(const ExpressionPtr& expr) { diff --git a/src/common/snippets/src/lowered/linear_ir.cpp b/src/common/snippets/src/lowered/linear_ir.cpp index 6c5afadecb0285..89da5449efb9dc 100644 --- a/src/common/snippets/src/lowered/linear_ir.cpp +++ b/src/common/snippets/src/lowered/linear_ir.cpp @@ -35,7 +35,7 @@ LinearIR::LinearIR(const std::shared_ptr& model, constExprIt last_param = m_expressions.end(); for (const auto& n : get_ordered_ops(model)) { constExprIt insertion_pos = m_expressions.end(); - const auto expr = get_expr_factory()->build<>(n, get_expression_inputs_by_node(n)); + const auto expr = get_expr_factory()->build(n, get_expression_inputs_by_node(n)); // Scalar should be on the Linear IR beginning after Parameters to have valid expression order after Loop passes. // After these passes we must call pass MoveScalarToConsumer() to have a correct accuracy. @@ -97,7 +97,7 @@ void update_consumers_and_regs(const ExpressionPtr& new_expr, const std::vector< ExpressionPtr LinearIR::create_expression(const std::shared_ptr& n, const std::vector& new_inputs, const std::vector& loop_ids, bool update_loop_ports, const std::vector>& consumers) { - const auto new_expr = get_expr_factory()->build<>(n, new_inputs); + const auto new_expr = get_expr_factory()->build(n, new_inputs); update_consumers_and_regs(new_expr, consumers); new_expr->set_loop_ids(loop_ids); @@ -265,7 +265,7 @@ LinearIR::exprIt LinearIR::insert(LinearIR::constExprIt pos, const NodeVector& n } LinearIR::exprIt LinearIR::insert(LinearIR::constExprIt pos, const std::shared_ptr& n) { - const auto& expr = get_expr_factory()->build<>(n, get_expression_inputs_by_node(n)); + const auto& expr = get_expr_factory()->build(n, get_expression_inputs_by_node(n)); register_expression(expr, m_config.m_manual_build_support, get_inserted_expr_exec_num(pos)); return m_expressions.insert(pos, expr); } diff --git a/src/common/snippets/src/lowered/pass/validate_buffers.cpp b/src/common/snippets/src/lowered/pass/validate_buffers.cpp index c5100f42333ede..751450f834c908 100644 --- a/src/common/snippets/src/lowered/pass/validate_buffers.cpp +++ b/src/common/snippets/src/lowered/pass/validate_buffers.cpp @@ -1,4 +1,4 @@ -// Copyright (C) 2023 Intel Corporation +// Copyright (C) 2024 Intel Corporation // SPDX-License-Identifier: Apache-2.0 //