From 13f17d254b71dc8edd66a89cfbf30441c43566f9 Mon Sep 17 00:00:00 2001 From: Tikhonov Ivan Date: Thu, 2 Mar 2023 12:24:12 +0000 Subject: [PATCH 1/2] fix TS for Interpolate + codestyle --- .../transpose_sinking_binary.cpp | 3 +- .../transpose_sinking_data_movement.cpp | 7 +-- .../transpose_sinking_fuse.cpp | 8 ++- .../transpose_sinking_general.cpp | 3 ++ .../transpose_sinking_interpolate.cpp | 28 +++++----- .../transpose_sinking_reduction.cpp | 52 ++++++++----------- .../transpose_sinking_unary.cpp | 7 ++- .../transpose_sinking_pad_test.cpp | 17 +++--- 8 files changed, 62 insertions(+), 63 deletions(-) diff --git a/src/common/transformations/src/transformations/common_optimizations/transpose_sinking_binary.cpp b/src/common/transformations/src/transformations/common_optimizations/transpose_sinking_binary.cpp index a005a0646a9..06b0329188e 100644 --- a/src/common/transformations/src/transformations/common_optimizations/transpose_sinking_binary.cpp +++ b/src/common/transformations/src/transformations/common_optimizations/transpose_sinking_binary.cpp @@ -2,6 +2,8 @@ // SPDX-License-Identifier: Apache-2.0 // +#include "transformations/common_optimizations/transpose_sinking_binary.hpp" + #include #include @@ -9,7 +11,6 @@ #include "openvino/op/util/op_types.hpp" #include "openvino/pass/pattern/op/wrap_type.hpp" #include "transformations/common_optimizations/transpose_sinking_utils.hpp" -#include "transformations/common_optimizations/transpose_sinking_binary.hpp" #include "transformations/rt_info/transpose_sinking_attr.hpp" using namespace ov::pass::pattern; diff --git a/src/common/transformations/src/transformations/common_optimizations/transpose_sinking_data_movement.cpp b/src/common/transformations/src/transformations/common_optimizations/transpose_sinking_data_movement.cpp index 3e8892cf40c..413b54be98b 100644 --- a/src/common/transformations/src/transformations/common_optimizations/transpose_sinking_data_movement.cpp +++ b/src/common/transformations/src/transformations/common_optimizations/transpose_sinking_data_movement.cpp @@ -23,7 +23,8 @@ ov::pass::TransposeSinkingDataMovementForward::TransposeSinkingDataMovementForwa MATCHER_SCOPE(TransposeSinkingDataMovementForward); auto const_label = wrap_type(); auto transpose_label = wrap_type({any_input(), const_label}); - auto main_node_label = wrap_type({transpose_label, any_input(), any_input(), any_input()}); + auto main_node_label = + wrap_type({transpose_label, any_input(), any_input(), any_input()}); matcher_pass_callback matcher_pass_callback = [=](Matcher& m) { const auto& pattern_to_node = m.get_pattern_map(); @@ -57,7 +58,7 @@ ov::pass::TransposeSinkingDataMovementForward::TransposeSinkingDataMovementForwa const auto& stb = std::dynamic_pointer_cast(main_node); if (bts || stb) { main_node->input(3).replace_source_output( - ChangeValuesOrder(main_node->input_value(3), reversed_transpose_order, axis)); + ChangeValuesOrder(main_node->input_value(3), reversed_transpose_order, axis)); } main_node->validate_and_infer_types(); @@ -114,7 +115,7 @@ ov::pass::TransposeSinkingDataMovementBackward::TransposeSinkingDataMovementBack const auto& stb = std::dynamic_pointer_cast(main_node); if (bts || stb) { main_node->input(3).replace_source_output( - ChangeValuesOrder(main_node->input_value(3), transpose_axis_order, axis)); + ChangeValuesOrder(main_node->input_value(3), transpose_axis_order, axis)); } main_node->validate_and_infer_types(); return true; diff --git a/src/common/transformations/src/transformations/common_optimizations/transpose_sinking_fuse.cpp b/src/common/transformations/src/transformations/common_optimizations/transpose_sinking_fuse.cpp index 9a6a720bccd..b267471c51f 100644 --- a/src/common/transformations/src/transformations/common_optimizations/transpose_sinking_fuse.cpp +++ b/src/common/transformations/src/transformations/common_optimizations/transpose_sinking_fuse.cpp @@ -8,9 +8,9 @@ #include #include "itt.hpp" +#include "openvino/core/validation_util.hpp" #include "openvino/opsets/opset10.hpp" #include "openvino/pass/pattern/op/wrap_type.hpp" -#include "openvino/core/validation_util.hpp" #include "transformations/common_optimizations/transpose_sinking_utils.hpp" #include "transformations/utils/utils.hpp" @@ -19,13 +19,11 @@ using namespace opset10; ov::pass::TransposeFuse::TransposeFuse() { MATCHER_SCOPE(TransposeFuse); - auto transpose_label = - pattern::wrap_type({pattern::any_input(), pattern::wrap_type()}); + auto transpose_label = pattern::wrap_type({pattern::any_input(), pattern::wrap_type()}); ov::matcher_pass_callback matcher_pass_callback = [=](pattern::Matcher& m) { const auto& pattern_to_output = m.get_pattern_map(); auto transpose_1 = pattern_to_output.at(transpose_label); - auto order_const_1 = - std::dynamic_pointer_cast(transpose_1->input_value(1).get_node_shared_ptr()); + auto order_const_1 = std::dynamic_pointer_cast(transpose_1->input_value(1).get_node_shared_ptr()); auto consumers = transpose_1->get_output_target_inputs(0); std::vector saved_order_values; diff --git a/src/common/transformations/src/transformations/common_optimizations/transpose_sinking_general.cpp b/src/common/transformations/src/transformations/common_optimizations/transpose_sinking_general.cpp index cc98c858916..d40c49ad4e9 100644 --- a/src/common/transformations/src/transformations/common_optimizations/transpose_sinking_general.cpp +++ b/src/common/transformations/src/transformations/common_optimizations/transpose_sinking_general.cpp @@ -14,6 +14,7 @@ #include "transformations/common_optimizations/transpose_sinking_binary.hpp" #include "transformations/common_optimizations/transpose_sinking_concat.hpp" #include "transformations/common_optimizations/transpose_sinking_data_movement.hpp" +#include "transformations/common_optimizations/transpose_sinking_interpolate.hpp" #include "transformations/common_optimizations/transpose_sinking_split.hpp" #include "transformations/common_optimizations/transpose_sinking_unary.hpp" #include "transformations/utils/utils.hpp" @@ -26,6 +27,7 @@ ov::pass::TransposeSinkingGeneralForward::TransposeSinkingGeneralForward() { add_matcher(); add_matcher(); add_matcher(); + add_matcher(); add_matcher(); } @@ -37,6 +39,7 @@ ov::pass::TransposeSinkingGeneralBackward::TransposeSinkingGeneralBackward() { add_matcher(); add_matcher(); add_matcher(); + add_matcher(); add_matcher(); } diff --git a/src/common/transformations/src/transformations/common_optimizations/transpose_sinking_interpolate.cpp b/src/common/transformations/src/transformations/common_optimizations/transpose_sinking_interpolate.cpp index 71b097840ef..59a9df598a5 100644 --- a/src/common/transformations/src/transformations/common_optimizations/transpose_sinking_interpolate.cpp +++ b/src/common/transformations/src/transformations/common_optimizations/transpose_sinking_interpolate.cpp @@ -44,12 +44,11 @@ ov::pass::TransposeSinkingInterpolateForward::TransposeSinkingInterpolateForward main_node->input(0).replace_source_output(transpose_parent); const auto transpose_axis_order = transpose_const->get_axis_vector_val(); - const auto reversed_transpose_order = ReverseTransposeOrder(transpose_axis_order); auto axis = std::make_shared(element::i32, Shape{}, std::vector{0}); const auto& interpolate = std::dynamic_pointer_cast(main_node); - auto data = std::make_shared(element::i32, Shape{reversed_transpose_order.size()}, reversed_transpose_order); + auto data = std::make_shared(element::i32, Shape{transpose_axis_order.size()}, transpose_axis_order); const auto& indices = main_node->input_value(3); auto new_axis = std::make_shared(data, indices, axis); @@ -57,13 +56,13 @@ ov::pass::TransposeSinkingInterpolateForward::TransposeSinkingInterpolateForward if (interpolate) { op::v4::Interpolate::InterpolateAttrs attrs = interpolate->get_attrs(); if (!attrs.pads_begin.empty() || !attrs.pads_end.empty()) { - const auto &order_size = reversed_transpose_order.size(); + const auto& order_size = transpose_axis_order.size(); attrs.pads_begin.resize(order_size); attrs.pads_end.resize(order_size); std::vector new_pads_begin(order_size), new_pads_end(order_size); for (size_t i = 0; i < order_size; ++i) { - new_pads_begin[i] = attrs.pads_begin[reversed_transpose_order[i]]; - new_pads_end[i] = attrs.pads_end[reversed_transpose_order[i]]; + new_pads_begin[i] = attrs.pads_begin[transpose_axis_order[i]]; + new_pads_end[i] = attrs.pads_end[transpose_axis_order[i]]; } std::swap(attrs.pads_begin, new_pads_begin); std::swap(attrs.pads_end, new_pads_end); @@ -71,7 +70,6 @@ ov::pass::TransposeSinkingInterpolateForward::TransposeSinkingInterpolateForward } } - main_node->validate_and_infer_types(); TransposeInputsInfo transpose_input_info = {transpose, transpose_const, 0}; for (auto& new_node : sink_forward::InsertOutputTransposes(main_node, transpose_input_info)) { @@ -95,9 +93,9 @@ ov::pass::TransposeSinkingInterpolateBackward::TransposeSinkingInterpolateBackwa auto transpose_const_label = wrap_type(); auto transpose_label = - wrap_type({main_node_label, transpose_const_label}, [](const Output& output) -> bool { - return has_static_rank()(output) && is_sinking_node(output); - }); + wrap_type({main_node_label, transpose_const_label}, [](const Output& output) -> bool { + return has_static_rank()(output) && is_sinking_node(output); + }); matcher_pass_callback matcher_pass_callback = [=](Matcher& m) { const auto& pattern_to_output = m.get_pattern_value_map(); @@ -107,7 +105,7 @@ ov::pass::TransposeSinkingInterpolateBackward::TransposeSinkingInterpolateBackwa for (auto& new_node : sink_backward::InsertTransposeBeforeNode(main_node, transpose_const, - /* input_indexes= */ {0})) { + /* input_indexes= */ {0})) { register_new_node(new_node); } @@ -115,21 +113,23 @@ ov::pass::TransposeSinkingInterpolateBackward::TransposeSinkingInterpolateBackwa RemoveSingleOutputConsumers(main_node); const auto transpose_axis_order = transpose_const->get_axis_vector_val(); + const auto reversed_transpose_order = ReverseTransposeOrder(transpose_axis_order); auto axis = std::make_shared(element::i32, Shape{}, std::vector{0}); - auto data = std::make_shared(element::i32, Shape{transpose_axis_order.size()}, transpose_axis_order); + auto data = + std::make_shared(element::i32, Shape{reversed_transpose_order.size()}, reversed_transpose_order); const auto& indices = main_node->input_value(3); auto new_axis = std::make_shared(data, indices, axis); const auto& interpolate = std::dynamic_pointer_cast(main_node); if (interpolate) { op::v4::Interpolate::InterpolateAttrs attrs = interpolate->get_attrs(); if (!attrs.pads_begin.empty() || !attrs.pads_end.empty()) { - const auto &order_size = transpose_axis_order.size(); + const auto& order_size = reversed_transpose_order.size(); attrs.pads_begin.resize(order_size); attrs.pads_end.resize(order_size); std::vector new_pads_begin(order_size), new_pads_end(order_size); for (size_t i = 0; i < order_size; ++i) { - new_pads_begin[i] = attrs.pads_begin[transpose_axis_order[i]]; - new_pads_end[i] = attrs.pads_end[transpose_axis_order[i]]; + new_pads_begin[i] = attrs.pads_begin[reversed_transpose_order[i]]; + new_pads_end[i] = attrs.pads_end[reversed_transpose_order[i]]; } std::swap(attrs.pads_begin, new_pads_begin); std::swap(attrs.pads_end, new_pads_end); diff --git a/src/common/transformations/src/transformations/common_optimizations/transpose_sinking_reduction.cpp b/src/common/transformations/src/transformations/common_optimizations/transpose_sinking_reduction.cpp index baac699b5ba..aa82bbf0205 100644 --- a/src/common/transformations/src/transformations/common_optimizations/transpose_sinking_reduction.cpp +++ b/src/common/transformations/src/transformations/common_optimizations/transpose_sinking_reduction.cpp @@ -8,9 +8,9 @@ #include #include "itt.hpp" +#include "openvino/core/validation_util.hpp" #include "openvino/opsets/opset10.hpp" #include "openvino/pass/pattern/op/wrap_type.hpp" -#include "openvino/core/validation_util.hpp" #include "transformations/common_optimizations/transpose_sinking_utils.hpp" #include "transformations/utils/utils.hpp" @@ -77,19 +77,16 @@ bool get_keep_dims(const std::shared_ptr& reduction) { keep_dims = arithmetic_reduce->get_keep_dims(); return keep_dims; } -} +} // namespace ov::pass::TransposeSinkingReductionForward::TransposeSinkingReductionForward() { MATCHER_SCOPE(TransposeSinkingReductionForward); - auto transpose_label = - pattern::wrap_type({pattern::any_input(), pattern::wrap_type()}, - pattern::consumers_count(1)); - auto reduce_or_squeeze_label = - pattern::wrap_type({transpose_label, pattern::wrap_type()}); + auto transpose_label = pattern::wrap_type({pattern::any_input(), pattern::wrap_type()}, + pattern::consumers_count(1)); + auto reduce_or_squeeze_label = pattern:: + wrap_type( + {transpose_label, pattern::wrap_type()}); ov::matcher_pass_callback matcher_pass_callback = [=](pattern::Matcher& m) { const auto& pattern_to_output = m.get_pattern_value_map(); @@ -104,9 +101,9 @@ ov::pass::TransposeSinkingReductionForward::TransposeSinkingReductionForward() { return false; auto unsqueeze = std::dynamic_pointer_cast(reduction); auto rank = - unsqueeze ? reduction->get_output_partial_shape(0).rank() : reduction->get_input_partial_shape(0).rank(); + unsqueeze ? reduction->get_output_partial_shape(0).rank() : reduction->get_input_partial_shape(0).rank(); auto non_negative_axes = - normalize_axes(reduction->get_friendly_name(), reduction_axes->cast_vector(), rank); + normalize_axes(reduction->get_friendly_name(), reduction_axes->cast_vector(), rank); auto transpose_order_values = transpose_order->cast_vector(); std::vector new_values; @@ -136,14 +133,13 @@ ov::pass::TransposeSinkingReductionForward::TransposeSinkingReductionForward() { } } auto new_transpose_order = std::make_shared(transpose_order->get_element_type(), - Shape{transpose_order_values.size()}, - transpose_order_values); + Shape{transpose_order_values.size()}, + transpose_order_values); std::shared_ptr new_reduction; if (!unsqueeze) { - auto new_const = std::make_shared(reduction_axes->get_element_type(), - reduction_axes->get_shape(), - new_values); + auto new_const = + std::make_shared(reduction_axes->get_element_type(), reduction_axes->get_shape(), new_values); new_reduction = reduction->clone_with_new_inputs({transpose->input_value(0), new_const}); } else { new_reduction = reduction->clone_with_new_inputs({transpose->input_value(0), reduction->input_value(1)}); @@ -165,14 +161,11 @@ ov::pass::TransposeSinkingReductionForward::TransposeSinkingReductionForward() { ov::pass::TransposeSinkingReductionBackward::TransposeSinkingReductionBackward() { MATCHER_SCOPE(TransposeSinkingReductionBackward); - auto reduce_or_squeeze_label = - pattern::wrap_type({pattern::any_input(), pattern::wrap_type()}, - transpose_sinking::HasSameOutputTransposeNodes); - auto transpose_label = - pattern::wrap_type({reduce_or_squeeze_label, pattern::wrap_type()}); + auto reduce_or_squeeze_label = pattern:: + wrap_type( + {pattern::any_input(), pattern::wrap_type()}, + transpose_sinking::HasSameOutputTransposeNodes); + auto transpose_label = pattern::wrap_type({reduce_or_squeeze_label, pattern::wrap_type()}); ov::matcher_pass_callback matcher_pass_callback = [=](pattern::Matcher& m) { const auto& pattern_to_output = m.get_pattern_value_map(); @@ -186,9 +179,9 @@ ov::pass::TransposeSinkingReductionBackward::TransposeSinkingReductionBackward() auto unsqueeze = std::dynamic_pointer_cast(reduction); auto rank = - unsqueeze ? reduction->get_output_partial_shape(0).rank() : reduction->get_input_partial_shape(0).rank(); + unsqueeze ? reduction->get_output_partial_shape(0).rank() : reduction->get_input_partial_shape(0).rank(); auto non_negative_axes = - normalize_axes(reduction->get_friendly_name(), reduction_axes->cast_vector(), rank); + normalize_axes(reduction->get_friendly_name(), reduction_axes->cast_vector(), rank); auto transpose_order_values = transpose_order->cast_vector(); auto old_transpose_order_values = transpose_order_values; @@ -249,9 +242,8 @@ ov::pass::TransposeSinkingReductionBackward::TransposeSinkingReductionBackward() copy_runtime_info({transpose, reduction}, {new_transpose, new_reduction}); register_new_node(new_transpose); } else { - auto new_const = std::make_shared(reduction_axes->get_element_type(), - reduction_axes->get_shape(), - new_values); + auto new_const = + std::make_shared(reduction_axes->get_element_type(), reduction_axes->get_shape(), new_values); auto new_transpose = transpose->clone_with_new_inputs({reduction->input_value(0), new_transpose_order}); auto new_reduction = reduction->clone_with_new_inputs({new_transpose, new_const}); replace_node(transpose, new_reduction); diff --git a/src/common/transformations/src/transformations/common_optimizations/transpose_sinking_unary.cpp b/src/common/transformations/src/transformations/common_optimizations/transpose_sinking_unary.cpp index b2f66094e50..fe464511fd7 100644 --- a/src/common/transformations/src/transformations/common_optimizations/transpose_sinking_unary.cpp +++ b/src/common/transformations/src/transformations/common_optimizations/transpose_sinking_unary.cpp @@ -55,7 +55,9 @@ ov::pass::TransposeSinkingUnaryForward::TransposeSinkingUnaryForward() { MATCHER_SCOPE(TransposeSinkingUnaryForward); auto transpose_label = wrap_type({any_input(), any_input()}); - auto unary_label = wrap_type({transpose_label}); + auto unary_label = + wrap_type( + {transpose_label}); ov::matcher_pass_callback matcher_pass_callback = [=](Matcher& m) { const auto& pattern_to_output = m.get_pattern_value_map(); @@ -90,7 +92,8 @@ ov::pass::TransposeSinkingUnaryBackward::TransposeSinkingUnaryBackward() { auto unary_label = wrap_type( - {any_input()}, unary_restrictions); + {any_input()}, + unary_restrictions); auto transpose_const_label = wrap_type(); diff --git a/src/common/transformations/tests/common_optimizations/transpose_sinking_pad_test.cpp b/src/common/transformations/tests/common_optimizations/transpose_sinking_pad_test.cpp index ce09456ff3f..b5ca5661384 100644 --- a/src/common/transformations/tests/common_optimizations/transpose_sinking_pad_test.cpp +++ b/src/common/transformations/tests/common_optimizations/transpose_sinking_pad_test.cpp @@ -292,14 +292,15 @@ INSTANTIATE_TEST_SUITE_P(TransposeSinkingPadForwardSingleConsumerTestSuite, ::testing::Values(element::f32)), TransposeSinkingPadTestFixture::get_test_name); -INSTANTIATE_TEST_SUITE_P(TransposeSinkingPadBackwardSingleConsumerTestSuite, - TransposeSinkingPadTestFixture, - ::testing::Combine(::testing::Values(CREATE_PASS_FACTORY(TransposeSinkingDataMovementBackward)), - ::testing::ValuesIn(pad_operations_numbers), - ::testing::Values(backward::single_consumer::CreateFunction), - ::testing::Values(backward::single_consumer::CreateReferenceFunction), - ::testing::Values(element::f32)), - TransposeSinkingPadTestFixture::get_test_name); +INSTANTIATE_TEST_SUITE_P( + TransposeSinkingPadBackwardSingleConsumerTestSuite, + TransposeSinkingPadTestFixture, + ::testing::Combine(::testing::Values(CREATE_PASS_FACTORY(TransposeSinkingDataMovementBackward)), + ::testing::ValuesIn(pad_operations_numbers), + ::testing::Values(backward::single_consumer::CreateFunction), + ::testing::Values(backward::single_consumer::CreateReferenceFunction), + ::testing::Values(element::f32)), + TransposeSinkingPadTestFixture::get_test_name); INSTANTIATE_TEST_SUITE_P( TransposeSinkingPadBackwardSingleConsumerMultiTransposesTestSuite, From 873d15ce1a0dd05465c46378f991ffa50e3aa0e8 Mon Sep 17 00:00:00 2001 From: Tikhonov Ivan Date: Thu, 2 Mar 2023 13:33:40 +0000 Subject: [PATCH 2/2] fix gna build --- src/plugins/intel_gna/src/gna_transformations_pipeline.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/intel_gna/src/gna_transformations_pipeline.cpp b/src/plugins/intel_gna/src/gna_transformations_pipeline.cpp index 160ff525356..0d1b1bfaeb1 100644 --- a/src/plugins/intel_gna/src/gna_transformations_pipeline.cpp +++ b/src/plugins/intel_gna/src/gna_transformations_pipeline.cpp @@ -166,7 +166,7 @@ void TransformationsPipeline::apply(const std::shared_ptr& model) { pass_config->disable(); // TransposeReduction can be enabled when Transpose-Conv-Transpose patterns will be handled in ngraph // transformations - pass_config->disable(); + pass_config->disable(); // Operations Max and Min aren't supported pass_config->disable();