diff --git a/.github/actions/smart-ci/requirements.txt b/.github/actions/smart-ci/requirements.txt index 2f1df1ac26ac74..789841ddd366d3 100644 --- a/.github/actions/smart-ci/requirements.txt +++ b/.github/actions/smart-ci/requirements.txt @@ -1,3 +1,3 @@ ghapi==1.0.4 pyyaml==6.0.1 -jsonschema==4.19.1 +jsonschema==4.19.2 diff --git a/.github/workflows/ubuntu_22.yml b/.github/workflows/ubuntu_22.yml index 59776f73ddf0cb..3a4ce2d9346424 100644 --- a/.github/workflows/ubuntu_22.yml +++ b/.github/workflows/ubuntu_22.yml @@ -16,6 +16,7 @@ on: - master - 'releases/**' + concurrency: # github.ref is not unique in post-commit group: ${{ github.event_name == 'push' && github.run_id || github.ref }}-ubuntu-22 diff --git a/src/common/transformations/src/transformations/common_optimizations/moc_transformations.cpp b/src/common/transformations/src/transformations/common_optimizations/moc_transformations.cpp index 585a7d0a747f14..e5148b5e47d5dd 100644 --- a/src/common/transformations/src/transformations/common_optimizations/moc_transformations.cpp +++ b/src/common/transformations/src/transformations/common_optimizations/moc_transformations.cpp @@ -153,7 +153,7 @@ bool ov::pass::MOCTransformations::run_on_model(const std::shared_ptr REGISTER_PASS(manager, EliminateScatterUpdate) REGISTER_PASS(manager, RemoveConcatZeroDimInput) REGISTER_PASS(manager, EliminateLoopInputsOutputs); - REGISTER_PASS(manager, Validate) + // REGISTER_PASS(manager, Validate) // todo: ticket 96960 // the order EliminateDuplicateTIInputs and RemoveMultiSubGraphOpDanglingParamsResults is important // it looks like we need to combine these transformations into one. @@ -163,20 +163,20 @@ bool ov::pass::MOCTransformations::run_on_model(const std::shared_ptr REGISTER_PASS(manager, DisableRandomUniformConstantFolding) REGISTER_PASS(manager, PushConstantToSubgraph) REGISTER_PASS(manager, ConstantFolding) - REGISTER_PASS(manager, Validate) + // REGISTER_PASS(manager, Validate) // FusedFilteringBoxesBySize transformation has the complex pattern // which can be affected by further transformations. So we have to // execute it at the beginning of the pipeline. Also, this pass resolves // dynamism, so we have to execute type/shape propagation after. REGISTER_PASS(manager, FuseFilteringBoxesBySize) - REGISTER_PASS(manager, Validate) + // REGISTER_PASS(manager, Validate) if (!m_use_shapes) { // Approved Smart Reshape REGISTER_PASS(manager, LSTMStatesBroadcast) - REGISTER_PASS(manager, Validate) + // REGISTER_PASS(manager, Validate) REGISTER_PASS(manager, ReshapeSinkingMatMul) - REGISTER_PASS(manager, Validate) + // REGISTER_PASS(manager, Validate) } REGISTER_PASS(manager, ConvertQuantizeDequantize) REGISTER_PASS(manager, SimplifyShapeOfSubGraph, m_use_shapes) diff --git a/src/common/transformations/src/transformations/common_optimizations/simplify_shape_of_sub_graph.cpp b/src/common/transformations/src/transformations/common_optimizations/simplify_shape_of_sub_graph.cpp index 80f4866842376b..514818e0206dcf 100644 --- a/src/common/transformations/src/transformations/common_optimizations/simplify_shape_of_sub_graph.cpp +++ b/src/common/transformations/src/transformations/common_optimizations/simplify_shape_of_sub_graph.cpp @@ -371,8 +371,6 @@ bool pass::SimplifyShapeOfSubGraph::run_on_model(const std::shared_ptr& f REGISTER_PASS(manager, PrepareShapeOpsForEliminationAroundBE) REGISTER_PASS(manager, AbsSinking) - // FIXME: manager runs Validate based on the last pass, when fixed the following line must be deleted - REGISTER_PASS(manager, Validate) REGISTER_PASS(manager, SharedOpOptimization) REGISTER_PASS(manager, EliminateGatherUnsqueeze) // should run after SharedOpOptimization REGISTER_PASS(manager, NopElimination, m_use_shapes) diff --git a/src/core/include/openvino/core/core.hpp b/src/core/include/openvino/core/core.hpp index 183df7bc2dadac..a2a5d533a641b7 100644 --- a/src/core/include/openvino/core/core.hpp +++ b/src/core/include/openvino/core/core.hpp @@ -59,3 +59,4 @@ // type #include "openvino/core/type/element_type.hpp" #include "openvino/core/type/element_type_traits.hpp" +// comment for triggering CI \ No newline at end of file diff --git a/src/core/include/openvino/core/type/element_type.hpp b/src/core/include/openvino/core/type/element_type.hpp index a255cfbd3727e5..659e8ce35055e8 100644 --- a/src/core/include/openvino/core/type/element_type.hpp +++ b/src/core/include/openvino/core/type/element_type.hpp @@ -66,6 +66,7 @@ enum class Type_t { f4e2m1, //!< f4e2m1 element type f8e8m0, //!< f8e8m0 element type }; +// comment for triggering CI /// \brief Base class to define element type /// \ingroup ov_element_cpp_api diff --git a/src/core/include/openvino/pass/manager.hpp b/src/core/include/openvino/pass/manager.hpp index 46e297c06e9613..29127cb595b317 100644 --- a/src/core/include/openvino/pass/manager.hpp +++ b/src/core/include/openvino/pass/manager.hpp @@ -104,7 +104,7 @@ class OPENVINO_API Manager { std::string m_name = "UnnamedManager"; private: - bool run_pass(const std::shared_ptr& pass, const std::shared_ptr& model, bool needs_validate); + bool run_pass(const std::shared_ptr& pass, const std::shared_ptr& model, bool& needs_validate); }; } // namespace pass } // namespace ov diff --git a/src/core/src/pass/manager.cpp b/src/core/src/pass/manager.cpp index 125c0aaffa5668..24dd82ffcf7f6c 100644 --- a/src/core/src/pass/manager.cpp +++ b/src/core/src/pass/manager.cpp @@ -337,6 +337,7 @@ bool ov::pass::Manager::run_passes(const std::shared_ptr& model) { bool model_changed = false; bool pass_changed_model = false; + bool needs_validate = false; profiler.start_timer(m_name); for (const auto& pass : m_pass_list) { @@ -347,6 +348,7 @@ bool ov::pass::Manager::run_passes(const std::shared_ptr& model) { profiler.stop_timer(pass_name, pass_changed_model); model_changed = model_changed || pass_changed_model; + needs_validate = needs_validate || pass_changed_model; profiler.visualize(model, pass_name); profiler.serialize(model, pass_name); @@ -358,7 +360,7 @@ bool ov::pass::Manager::run_passes(const std::shared_ptr& model) { bool ov::pass::Manager::run_pass(const std::shared_ptr& pass, const std::shared_ptr& model, - bool needs_validate) { + bool& needs_validate) { if (m_pass_config->is_disabled(pass->get_type_info())) { OPENVINO_DEBUG("Pass ", pass->get_name(), " is disabled."); return false; @@ -380,8 +382,11 @@ bool ov::pass::Manager::run_pass(const std::shared_ptr& pass, // GraphRewrite is a temporary container for MatcherPass to make execution on entire ov::Model return GraphRewrite(matcher_pass).run_on_model(model); } else if (auto model_pass = ov::as_type_ptr(pass)) { - if (ov::as_type_ptr(model_pass) && !needs_validate) { - return false; + if (ov::as_type_ptr(model_pass)) { + if (!needs_validate) { + return false; + } + needs_validate = false; } return model_pass->run_on_model(model); } diff --git a/src/core/src/type/element_type.cpp b/src/core/src/type/element_type.cpp index eedf93017ab3a2..c3f986426affac 100644 --- a/src/core/src/type/element_type.cpp +++ b/src/core/src/type/element_type.cpp @@ -19,6 +19,7 @@ namespace { constexpr size_t idx(Type_t e) noexcept { return static_cast>(e); } +// comment for triggering CI // Update it when new type is added constexpr size_t enum_types_size = idx(f8e8m0) + 1; diff --git a/src/plugins/intel_cpu/src/transformations/cpu_opset/convert_to_cpu_specific_opset.hpp b/src/plugins/intel_cpu/src/transformations/cpu_opset/convert_to_cpu_specific_opset.hpp index 9210fe4454e230..e25a806aee4c87 100644 --- a/src/plugins/intel_cpu/src/transformations/cpu_opset/convert_to_cpu_specific_opset.hpp +++ b/src/plugins/intel_cpu/src/transformations/cpu_opset/convert_to_cpu_specific_opset.hpp @@ -53,7 +53,7 @@ inline void ConvertToCPUSpecificOpset(std::shared_ptr& model, const C CPU_REGISTER_PASS_X64(manager, pass::ConvertFCToFCQuantizedLegacy); CPU_REGISTER_PASS_COMMON(manager, MoveFCReshapeToWeights); - CPU_REGISTER_PASS_COMMON(manager, ov::pass::Validate); + // CPU_REGISTER_PASS_COMMON(manager, ov::pass::Validate); CPU_REGISTER_PASS_COMMON(manager, AlignMatMulInputRanks); CPU_REGISTER_PASS_COMMON(manager, ConvertTileToSeqTiles); CPU_REGISTER_PASS_COMMON(manager, ConvertToPowerStatic); diff --git a/src/plugins/intel_cpu/src/transformations/transformation_pipeline.cpp b/src/plugins/intel_cpu/src/transformations/transformation_pipeline.cpp index eb032ae22ae538..d8b1e9267cc922 100644 --- a/src/plugins/intel_cpu/src/transformations/transformation_pipeline.cpp +++ b/src/plugins/intel_cpu/src/transformations/transformation_pipeline.cpp @@ -55,7 +55,6 @@ #include "openvino/pass/constant_folding.hpp" #include "openvino/pass/manager.hpp" #include "openvino/pass/node_registry.hpp" -#include "openvino/pass/validate.hpp" #include "selective_build.h" #include "transformations/common_optimizations/add_fake_quantize_fusion.hpp" #include "transformations/common_optimizations/augru_cell_fusion.hpp" @@ -621,11 +620,11 @@ void Transformations::PreLpt(const std::vector& defaultPrecis CPU_REGISTER_PASS_COMMON(manager, ov::pass::ConvertNMS4ToNMS9); CPU_REGISTER_PASS_COMMON(manager, ov::pass::ConvertNMS5ToNMS9); CPU_REGISTER_PASS_COMMON(manager, ov::pass::ConvertNMS9ToNMSIEInternal); - CPU_REGISTER_PASS_COMMON(manager, ov::pass::Validate); + // CPU_REGISTER_PASS_COMMON(manager, ov::pass::Validate); CPU_REGISTER_PASS_COMMON(manager, ov::pass::ConvertMulticlassNmsToMulticlassNmsIE); - CPU_REGISTER_PASS_COMMON(manager, ov::pass::Validate); + // CPU_REGISTER_PASS_COMMON(manager, ov::pass::Validate); CPU_REGISTER_PASS_COMMON(manager, ov::pass::ConvertMatrixNmsToMatrixNmsIE); - CPU_REGISTER_PASS_COMMON(manager, ov::pass::Validate); + // CPU_REGISTER_PASS_COMMON(manager, ov::pass::Validate); CPU_REGISTER_PASS_COMMON(manager, ov::pass::TransposeMatMul); CPU_REGISTER_PASS_COMMON(manager, ov::pass::ConstantFolding); CPU_REGISTER_PASS_ARM64(manager, ov::pass::HardSigmoidDecomposition); @@ -634,7 +633,7 @@ void Transformations::PreLpt(const std::vector& defaultPrecis CPU_LPT_SCOPE(LowPrecisionTransformations_Part2); CPU_REGISTER_PASS_COMMON(manager, ov::pass::low_precision::ConvertSubtractConstant, defaultPrecisions); } - CPU_REGISTER_PASS_COMMON(manager, ov::pass::Validate); + // CPU_REGISTER_PASS_COMMON(manager, ov::pass::Validate); // Common ConvertPrecision pass handles only a limited set of opevino operations to match the list of precisions // supported by the plugin. However, if the extension operation produces an output precision that is not natively // supported, this may lead to inconsistency during element type propagation. This transformation is called before @@ -671,7 +670,7 @@ void Transformations::PreLpt(const std::vector& defaultPrecis CPU_REGISTER_PASS_X86(manager, DecomposeIntegerDivide); CPU_REGISTER_PASS_COMMON(manager, PermuteSliceAndInterpolation); - CPU_REGISTER_PASS_COMMON(manager, ov::pass::Validate); + // CPU_REGISTER_PASS_COMMON(manager, ov::pass::Validate); // SpaceToDepth/ DepthToSpace node implementation supports only equal input/output tensors with rank <= 5 CPU_SET_CALLBACK_COMMON( @@ -1082,7 +1081,7 @@ void Transformations::PostLpt() { return false; }, ov::pass::MoveEltwiseUpThroughDataMovScalar); - CPU_REGISTER_PASS_COMMON(postLPTPassManager, ov::pass::Validate); + // CPU_REGISTER_PASS_COMMON(postLPTPassManager, ov::pass::Validate); CPU_REGISTER_PASS_COMMON(postLPTPassManager, ov::pass::ConstantFolding); diff --git a/src/plugins/intel_gpu/src/plugin/transformations_pipeline.cpp b/src/plugins/intel_gpu/src/plugin/transformations_pipeline.cpp index 6beeaa3a5081ea..8579570845ef85 100644 --- a/src/plugins/intel_gpu/src/plugin/transformations_pipeline.cpp +++ b/src/plugins/intel_gpu/src/plugin/transformations_pipeline.cpp @@ -1196,11 +1196,6 @@ void TransformationsPipeline::apply(std::shared_ptr func) { ov::op::v3::Broadcast::get_type_info_static(), }; manager.register_pass(allowed_data_movement_ops); - // FIXME (151111): this Validate is added as a workaround for resolving element - // types after MoveEltwiseUpThroughDataMovScalar. It has to be removed - // after 141764 is fixed as there's a clear issue with Validate passes - // not working properly. - manager.register_pass(); manager.register_pass(true); pass_config->disable();