From dbd2b5dc08796a25dcd78a659a915e3dbd563029 Mon Sep 17 00:00:00 2001 From: Ivan Tikhonov Date: Fri, 17 Dec 2021 08:05:30 +0300 Subject: [PATCH] ONNX/IR/Common FrontEnds Refactoring (#9174) * Refactor ONNX,IR,Common FrontEnds * Rename frontends dir to frontend * Rename frontend_manager, frontend_defs -> manager, defs; move Place, InputModel to src for Paddle FE * remove exports for ir/input_model * fix unit tests * Fix unit tests * revert ONNX_API/IR_API defines * move manager.hpp to frontend dir * delete common folder; rename defs to visibility; fix includes * revert local changes * codestyle * fix build: set correct includes * fix includes * fix build; resolve review comments * fix install paths * correct installation folder for onnx_import * use IE_THROW in ir frontend --- .../frontends/frontends.cmake | 4 +- .../frontends/ov_frontends.hpp.in | 2 +- .../{manager.cpp => frontend_manager.cpp} | 3 +- .../src/pyopenvino/frontend/frontend.cpp | 6 +- .../src/pyopenvino/frontend/inputmodel.cpp | 4 +- .../{frontend_manager.cpp => manager.cpp} | 5 +- .../{frontend_manager.hpp => manager.hpp} | 0 .../python/src/pyopenvino/frontend/place.cpp | 5 +- .../python/src/pyopenvino/pyopenvino.cpp | 2 +- .../mock_py_ov_frontend/mock_py_frontend.cpp | 4 +- .../mock_py_ov_frontend/mock_py_frontend.hpp | 4 +- src/core/tests/frontend/frontend_manager.cpp | 22 +- src/core/tests/frontend/mock_frontend.cpp | 4 +- .../paddlepaddle/convert_unsupported.cpp | 4 +- .../paddlepaddle/incorrect_cut_model.cpp | 4 +- .../tests/frontend/paddlepaddle/places.cpp | 2 +- .../test_models/gen_scripts/generate_slice.py | 2 +- .../paddlepaddle/throw_in_conversion.cpp | 4 +- .../frontend/shared/include/basic_api.hpp | 2 +- .../frontend/shared/include/convert_model.hpp | 2 +- .../shared/include/cut_specific_model.hpp | 2 +- .../frontend/shared/include/load_from.hpp | 2 +- .../frontend/shared/include/op_fuzzy.hpp | 2 +- .../frontend/shared/include/partial_shape.hpp | 2 +- .../shared/include/set_element_type.hpp | 2 +- .../frontend/shared/include/telemetry.hpp | 2 +- .../tests/frontend/shared/include/utils.hpp | 2 +- .../tests/frontend/shared/src/telemetry.cpp | 2 +- .../tensorflow/convert_unsupported.cpp | 4 +- .../frontend/tensorflow/transpose_sinking.cpp | 2 +- src/core/tests/pass/serialization/read_ir.hpp | 2 +- src/frontends/common/CMakeLists.txt | 23 +- .../frontend/exception.hpp} | 2 +- .../frontend}/frontend.hpp | 26 +- .../frontend}/input_model.hpp | 10 +- .../{ => openvino/frontend}/manager.hpp | 7 +- .../{common => openvino/frontend}/place.hpp | 4 +- .../frontend}/telemetry_extension.hpp | 2 +- .../frontend/visibility.hpp} | 7 +- src/frontends/common/src/frontend.cpp | 72 +++++ src/frontends/common/src/input_model.cpp | 114 +++++++ .../src/{frontend_manager.cpp => manager.cpp} | 293 +----------------- src/frontends/common/src/place.cpp | 139 +++++++++ src/frontends/common/src/plugin_loader.cpp | 16 +- src/frontends/common/src/plugin_loader.hpp | 2 +- .../common/src/telemetry_extension.cpp | 2 +- src/frontends/common/src/utils.cpp | 2 +- src/frontends/common/src/utils.hpp | 2 +- .../ir/include/ir_frontend/model.hpp | 31 -- .../frontend/ir}/frontend.hpp | 14 +- .../frontend/ir/visibility.hpp} | 10 - src/frontends/ir/src/frontend.cpp | 32 +- .../ir/src/{model.cpp => input_model.cpp} | 18 +- src/frontends/ir/src/input_model.hpp | 33 ++ src/frontends/ir/src/ir_deserializer.cpp | 1 - src/frontends/ir/src/ir_deserializer.hpp | 2 +- src/frontends/ir/src/rt_info_deserializer.cpp | 5 +- src/frontends/ir/src/rt_info_deserializer.hpp | 1 - src/frontends/onnx/frontend/CMakeLists.txt | 2 +- .../frontend/onnx}/frontend.hpp | 8 +- .../onnx/frontend/src/core/graph.hpp | 2 +- src/frontends/onnx/frontend/src/editor.hpp | 2 +- src/frontends/onnx/frontend/src/frontend.cpp | 46 +-- .../onnx/frontend/src/input_model.cpp | 99 +++--- .../onnx/frontend/src/input_model.hpp | 26 +- src/frontends/onnx/frontend/src/place.cpp | 184 ++++++----- src/frontends/onnx/frontend/src/place.hpp | 30 +- .../onnx/frontend/src/utils/onnx_internal.hpp | 2 +- src/frontends/paddlepaddle/CMakeLists.txt | 2 +- .../paddlepaddle_frontend/frontend.hpp | 4 +- .../include/paddlepaddle_frontend/model.hpp | 4 +- .../include/paddlepaddle_frontend/place.hpp | 4 +- .../include/paddlepaddle_frontend/utility.hpp | 2 +- .../src/{exceptions.cpp => exception.cpp} | 3 +- .../exceptions.hpp | 2 +- src/frontends/paddlepaddle/src/frontend.cpp | 2 +- src/frontends/paddlepaddle/src/model.cpp | 2 +- .../paddlepaddle/src/node_context.hpp | 2 +- src/frontends/paddlepaddle/src/pdpd_utils.hpp | 2 +- src/frontends/tensorflow/CMakeLists.txt | 2 +- .../include/tensorflow_frontend/frontend.hpp | 6 +- .../include/tensorflow_frontend/utility.hpp | 2 +- src/frontends/tensorflow/src/exceptions.hpp | 3 +- src/frontends/tensorflow/src/model.cpp | 2 +- src/frontends/tensorflow/src/model.hpp | 6 +- src/frontends/tensorflow/src/place.cpp | 2 +- src/frontends/tensorflow/src/place.hpp | 2 +- src/frontends/tensorflow/src/tensorflow.cpp | 2 +- src/inference/src/ie_network_reader.cpp | 2 +- .../partial_shape_deserialization.cpp | 2 +- .../partial_shape_serialization.cpp | 2 +- .../rt_info_deserialization.cpp | 2 +- .../rt_info_serialization.cpp | 2 +- tests/fuzz/src/import_pdpd-fuzzer.cc | 2 +- .../mock_mo_ov_frontend/mock_mo_frontend.cpp | 4 +- .../mock_mo_ov_frontend/mock_mo_frontend.hpp | 4 +- 96 files changed, 746 insertions(+), 710 deletions(-) rename src/bindings/python/src/compatibility/pyngraph/passes/{manager.cpp => frontend_manager.cpp} (99%) rename src/bindings/python/src/pyopenvino/frontend/{frontend_manager.cpp => manager.cpp} (98%) rename src/bindings/python/src/pyopenvino/frontend/{frontend_manager.hpp => manager.hpp} (100%) rename src/frontends/common/include/{common/frontend_exceptions.hpp => openvino/frontend/exception.hpp} (99%) rename src/frontends/common/include/{common => openvino/frontend}/frontend.hpp (86%) rename src/frontends/common/include/{common => openvino/frontend}/input_model.hpp (97%) rename src/frontends/common/include/{ => openvino/frontend}/manager.hpp (94%) rename src/frontends/common/include/{common => openvino/frontend}/place.hpp (99%) rename src/frontends/common/include/{common => openvino/frontend}/telemetry_extension.hpp (97%) rename src/frontends/common/include/{common/frontend_defs.hpp => openvino/frontend/visibility.hpp} (68%) create mode 100644 src/frontends/common/src/frontend.cpp create mode 100644 src/frontends/common/src/input_model.cpp rename src/frontends/common/src/{frontend_manager.cpp => manager.cpp} (51%) create mode 100644 src/frontends/common/src/place.cpp delete mode 100644 src/frontends/ir/include/ir_frontend/model.hpp rename src/frontends/ir/include/{ir_frontend => openvino/frontend/ir}/frontend.hpp (82%) rename src/frontends/ir/include/{ir_frontend/utility.hpp => openvino/frontend/ir/visibility.hpp} (60%) rename src/frontends/ir/src/{model.cpp => input_model.cpp} (95%) create mode 100644 src/frontends/ir/src/input_model.hpp rename src/frontends/onnx/frontend/include/{onnx_frontend => openvino/frontend/onnx}/frontend.hpp (86%) rename src/frontends/paddlepaddle/src/{exceptions.cpp => exception.cpp} (90%) rename src/frontends/paddlepaddle/{include/paddlepaddle_frontend => src}/exceptions.hpp (96%) diff --git a/cmake/developer_package/frontends/frontends.cmake b/cmake/developer_package/frontends/frontends.cmake index b36db7b0d78..b5b07559bea 100644 --- a/cmake/developer_package/frontends/frontends.cmake +++ b/cmake/developer_package/frontends/frontends.cmake @@ -2,7 +2,7 @@ # SPDX-License-Identifier: Apache-2.0 # -set(FRONTEND_INSTALL_INCLUDE "runtime/include/ngraph/frontend") +set(FRONTEND_INSTALL_INCLUDE "runtime/include/") set(FRONTEND_NAME_SUFFIX "_ov_frontend") set(FRONTEND_NAMES "" CACHE INTERNAL "") @@ -225,7 +225,7 @@ macro(ov_add_frontend) if(OV_FRONTEND_LINKABLE_FRONTEND) # install -dev part - install(DIRECTORY ${${TARGET_NAME}_INCLUDE_DIR}/${OV_FRONTEND_NAME}_frontend + install(DIRECTORY ${${TARGET_NAME}_INCLUDE_DIR}/ DESTINATION ${FRONTEND_INSTALL_INCLUDE} COMPONENT core_dev FILES_MATCHING PATTERN "*.hpp") diff --git a/cmake/developer_package/frontends/ov_frontends.hpp.in b/cmake/developer_package/frontends/ov_frontends.hpp.in index 0293054160d..82c1f1d010f 100644 --- a/cmake/developer_package/frontends/ov_frontends.hpp.in +++ b/cmake/developer_package/frontends/ov_frontends.hpp.in @@ -4,7 +4,7 @@ #pragma once -#include "common/frontend.hpp" +#include "openvino/frontend/frontend.hpp" @OV_FRONTEND_DECLARATIONS@ diff --git a/src/bindings/python/src/compatibility/pyngraph/passes/manager.cpp b/src/bindings/python/src/compatibility/pyngraph/passes/frontend_manager.cpp similarity index 99% rename from src/bindings/python/src/compatibility/pyngraph/passes/manager.cpp rename to src/bindings/python/src/compatibility/pyngraph/passes/frontend_manager.cpp index dd3ae2b6ad6..a85c4be5645 100644 --- a/src/bindings/python/src/compatibility/pyngraph/passes/manager.cpp +++ b/src/bindings/python/src/compatibility/pyngraph/passes/frontend_manager.cpp @@ -2,12 +2,11 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "ngraph/pass/manager.hpp" - #include #include #include "ngraph/pass/constant_folding.hpp" +#include "ngraph/pass/manager.hpp" #include "ngraph/pass/pass.hpp" #include "ngraph/pass/validate.hpp" #include "pyngraph/passes/manager.hpp" diff --git a/src/bindings/python/src/pyopenvino/frontend/frontend.cpp b/src/bindings/python/src/pyopenvino/frontend/frontend.cpp index 096bc3e5bf6..5adeed0ce1c 100644 --- a/src/bindings/python/src/pyopenvino/frontend/frontend.cpp +++ b/src/bindings/python/src/pyopenvino/frontend/frontend.cpp @@ -7,9 +7,9 @@ #include #include -#include "common/frontend_exceptions.hpp" -#include "common/telemetry_extension.hpp" -#include "manager.hpp" +#include "openvino/frontend/exception.hpp" +#include "openvino/frontend/manager.hpp" +#include "openvino/frontend/telemetry_extension.hpp" #include "pyopenvino/graph/function.hpp" namespace py = pybind11; diff --git a/src/bindings/python/src/pyopenvino/frontend/inputmodel.cpp b/src/bindings/python/src/pyopenvino/frontend/inputmodel.cpp index 45ba73c7fbf..db6c9c55c74 100644 --- a/src/bindings/python/src/pyopenvino/frontend/inputmodel.cpp +++ b/src/bindings/python/src/pyopenvino/frontend/inputmodel.cpp @@ -6,8 +6,8 @@ #include #include -#include "common/frontend_exceptions.hpp" -#include "manager.hpp" +#include "openvino/frontend/exception.hpp" +#include "openvino/frontend/manager.hpp" namespace py = pybind11; diff --git a/src/bindings/python/src/pyopenvino/frontend/frontend_manager.cpp b/src/bindings/python/src/pyopenvino/frontend/manager.cpp similarity index 98% rename from src/bindings/python/src/pyopenvino/frontend/frontend_manager.cpp rename to src/bindings/python/src/pyopenvino/frontend/manager.cpp index 2f0a40903e3..38c1bf64ef6 100644 --- a/src/bindings/python/src/pyopenvino/frontend/frontend_manager.cpp +++ b/src/bindings/python/src/pyopenvino/frontend/manager.cpp @@ -2,14 +2,13 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "frontend_manager.hpp" +#include "openvino/frontend/manager.hpp" #include #include #include -#include "common/frontend_exceptions.hpp" -#include "manager.hpp" +#include "openvino/frontend/exception.hpp" namespace py = pybind11; diff --git a/src/bindings/python/src/pyopenvino/frontend/frontend_manager.hpp b/src/bindings/python/src/pyopenvino/frontend/manager.hpp similarity index 100% rename from src/bindings/python/src/pyopenvino/frontend/frontend_manager.hpp rename to src/bindings/python/src/pyopenvino/frontend/manager.hpp diff --git a/src/bindings/python/src/pyopenvino/frontend/place.cpp b/src/bindings/python/src/pyopenvino/frontend/place.cpp index f0f00972c0b..69744140a2a 100644 --- a/src/bindings/python/src/pyopenvino/frontend/place.cpp +++ b/src/bindings/python/src/pyopenvino/frontend/place.cpp @@ -6,9 +6,8 @@ #include #include -#include "common/frontend_exceptions.hpp" -#include "frontend_manager.hpp" -#include "manager.hpp" +#include "openvino/frontend/exception.hpp" +#include "openvino/frontend/manager.hpp" #include "pyopenvino/graph/function.hpp" namespace py = pybind11; diff --git a/src/bindings/python/src/pyopenvino/pyopenvino.cpp b/src/bindings/python/src/pyopenvino/pyopenvino.cpp index e86d64a88f9..46bc6e1eb8f 100644 --- a/src/bindings/python/src/pyopenvino/pyopenvino.cpp +++ b/src/bindings/python/src/pyopenvino/pyopenvino.cpp @@ -32,8 +32,8 @@ #include "pyopenvino/core/variable_state.hpp" #include "pyopenvino/core/version.hpp" #include "pyopenvino/frontend/frontend.hpp" -#include "pyopenvino/frontend/frontend_manager.hpp" #include "pyopenvino/frontend/inputmodel.hpp" +#include "pyopenvino/frontend/manager.hpp" #include "pyopenvino/frontend/place.hpp" #include "pyopenvino/graph/any.hpp" #include "pyopenvino/graph/descriptors/tensor.hpp" diff --git a/src/bindings/python/tests/mock/mock_py_ov_frontend/mock_py_frontend.cpp b/src/bindings/python/tests/mock/mock_py_ov_frontend/mock_py_frontend.cpp index 6491ac6a43e..fd48b138bff 100644 --- a/src/bindings/python/tests/mock/mock_py_ov_frontend/mock_py_frontend.cpp +++ b/src/bindings/python/tests/mock/mock_py_ov_frontend/mock_py_frontend.cpp @@ -4,8 +4,8 @@ #include "mock_py_frontend.hpp" -#include "common/frontend_defs.hpp" -#include "manager.hpp" +#include "openvino/frontend/manager.hpp" +#include "openvino/frontend/visibility.hpp" using namespace ngraph; using namespace ov::frontend; diff --git a/src/bindings/python/tests/mock/mock_py_ov_frontend/mock_py_frontend.hpp b/src/bindings/python/tests/mock/mock_py_ov_frontend/mock_py_frontend.hpp index 32f9794bec6..3bc8d8f423a 100644 --- a/src/bindings/python/tests/mock/mock_py_ov_frontend/mock_py_frontend.hpp +++ b/src/bindings/python/tests/mock/mock_py_ov_frontend/mock_py_frontend.hpp @@ -4,9 +4,9 @@ #pragma once -#include "common/frontend_defs.hpp" -#include "manager.hpp" #include "ngraph/visibility.hpp" +#include "openvino/frontend/manager.hpp" +#include "openvino/frontend/visibility.hpp" // Defined if we are building the plugin DLL (instead of using it) #ifdef mock_py_ov_frontend_EXPORTS diff --git a/src/core/tests/frontend/frontend_manager.cpp b/src/core/tests/frontend/frontend_manager.cpp index 12c8748f35a..b4255de3085 100644 --- a/src/core/tests/frontend/frontend_manager.cpp +++ b/src/core/tests/frontend/frontend_manager.cpp @@ -2,9 +2,9 @@ // SPDX-License-Identifier: Apache-2.0 // -#include -#include #include +#include +#include #include "gmock/gmock.h" #include "gtest/gtest.h" @@ -66,8 +66,9 @@ static int set_test_env(const char* name, const char* value) { TEST(FrontEndManagerTest, testAvailableFrontEnds) { FrontEndManager fem; + class MockFrontEnd : public FrontEnd {}; ASSERT_NO_THROW(fem.register_front_end("mock", []() { - return std::make_shared(); + return std::make_shared(); })); auto frontends = fem.get_available_front_ends(); ASSERT_NE(std::find(frontends.begin(), frontends.end(), "mock"), frontends.end()); @@ -105,8 +106,9 @@ TEST(FrontEndManagerTest, testDefaultFrontEnd) { ASSERT_NO_THROW(fe = fem.load_by_model("")); ASSERT_FALSE(fe); - std::unique_ptr fePtr(new FrontEnd()); // to verify base destructor - fe = std::make_shared(); + class MockFrontEnd : public FrontEnd {}; + std::unique_ptr fePtr(new MockFrontEnd()); // to verify base destructor + fe = std::make_shared(); ASSERT_ANY_THROW(fe->load("")); ASSERT_ANY_THROW(fe->convert(std::shared_ptr(nullptr))); ASSERT_ANY_THROW(fe->convert(InputModel::Ptr(nullptr))); @@ -117,8 +119,9 @@ TEST(FrontEndManagerTest, testDefaultFrontEnd) { } TEST(FrontEndManagerTest, testDefaultInputModel) { - std::unique_ptr imPtr(new InputModel()); // to verify base destructor - InputModel::Ptr im = std::make_shared(); + class MockInputModel : public InputModel {}; + std::unique_ptr imPtr(new MockInputModel()); // to verify base destructor + InputModel::Ptr im = std::make_shared(); ASSERT_EQ(im->get_inputs(), std::vector{}); ASSERT_EQ(im->get_outputs(), std::vector{}); ASSERT_ANY_THROW(im->override_all_inputs({nullptr})); @@ -146,8 +149,9 @@ TEST(FrontEndManagerTest, testDefaultInputModel) { } TEST(FrontEndManagerTest, testDefaultPlace) { - std::unique_ptr placePtr(new Place()); // to verify base destructor - Place::Ptr place = std::make_shared(); + class MockPlace : public Place {}; + std::unique_ptr placePtr(new MockPlace()); // to verify base destructor + Place::Ptr place = std::make_shared(); ASSERT_ANY_THROW(place->get_names()); ASSERT_EQ(place->get_consuming_operations(), std::vector{}); ASSERT_EQ(place->get_consuming_operations(0), std::vector{}); diff --git a/src/core/tests/frontend/mock_frontend.cpp b/src/core/tests/frontend/mock_frontend.cpp index ad7a205f3a7..7d4e24290be 100644 --- a/src/core/tests/frontend/mock_frontend.cpp +++ b/src/core/tests/frontend/mock_frontend.cpp @@ -2,9 +2,9 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "common/frontend_defs.hpp" -#include "manager.hpp" #include "ngraph/visibility.hpp" +#include "openvino/frontend/manager.hpp" +#include "openvino/frontend/visibility.hpp" // Defined if we are building the plugin DLL (instead of using it) #ifdef mock1_ov_frontend_EXPORTS diff --git a/src/core/tests/frontend/paddlepaddle/convert_unsupported.cpp b/src/core/tests/frontend/paddlepaddle/convert_unsupported.cpp index 940bb3e72f2..764e752ed06 100644 --- a/src/core/tests/frontend/paddlepaddle/convert_unsupported.cpp +++ b/src/core/tests/frontend/paddlepaddle/convert_unsupported.cpp @@ -2,8 +2,8 @@ // SPDX-License-Identifier: Apache-2.0 // -#include -#include +#include +#include #include "common_test_utils/ngraph_test_utils.hpp" #include "paddle_utils.hpp" diff --git a/src/core/tests/frontend/paddlepaddle/incorrect_cut_model.cpp b/src/core/tests/frontend/paddlepaddle/incorrect_cut_model.cpp index 595181f3edc..6005ad3ffea 100644 --- a/src/core/tests/frontend/paddlepaddle/incorrect_cut_model.cpp +++ b/src/core/tests/frontend/paddlepaddle/incorrect_cut_model.cpp @@ -4,8 +4,8 @@ #include -#include -#include +#include +#include #include "paddle_utils.hpp" #include "utils.hpp" diff --git a/src/core/tests/frontend/paddlepaddle/places.cpp b/src/core/tests/frontend/paddlepaddle/places.cpp index 925fb068eae..2092920cbee 100644 --- a/src/core/tests/frontend/paddlepaddle/places.cpp +++ b/src/core/tests/frontend/paddlepaddle/places.cpp @@ -3,7 +3,7 @@ // #include -#include +#include #include "gtest/gtest.h" #include "paddle_utils.hpp" diff --git a/src/core/tests/frontend/paddlepaddle/test_models/gen_scripts/generate_slice.py b/src/core/tests/frontend/paddlepaddle/test_models/gen_scripts/generate_slice.py index 8c6b5fd1eeb..75328e48fca 100644 --- a/src/core/tests/frontend/paddlepaddle/test_models/gen_scripts/generate_slice.py +++ b/src/core/tests/frontend/paddlepaddle/test_models/gen_scripts/generate_slice.py @@ -26,7 +26,7 @@ def slice(name : str, x, axes : list, start : list, end : list): outs = exe.run( feed={'x': x}, - fetch_list=[out]) + fetch_list=[out]) saveModel(name, exe, feedkeys=['x'], fetchlist=[out], inputs=[x], outputs=[outs[0]], target_dir=sys.argv[1]) diff --git a/src/core/tests/frontend/paddlepaddle/throw_in_conversion.cpp b/src/core/tests/frontend/paddlepaddle/throw_in_conversion.cpp index a67950514c6..88c8128baab 100644 --- a/src/core/tests/frontend/paddlepaddle/throw_in_conversion.cpp +++ b/src/core/tests/frontend/paddlepaddle/throw_in_conversion.cpp @@ -2,8 +2,8 @@ // SPDX-License-Identifier: Apache-2.0 // -#include -#include +#include +#include #include "common_test_utils/ngraph_test_utils.hpp" #include "paddle_utils.hpp" diff --git a/src/core/tests/frontend/shared/include/basic_api.hpp b/src/core/tests/frontend/shared/include/basic_api.hpp index 40c11081c33..045c302d908 100644 --- a/src/core/tests/frontend/shared/include/basic_api.hpp +++ b/src/core/tests/frontend/shared/include/basic_api.hpp @@ -6,7 +6,7 @@ #include -#include +#include using BasicTestParam = std::tuple -#include +#include using ConvertParam = std::tuple -#include +#include struct CutModelParam { std::string m_frontEndName; diff --git a/src/core/tests/frontend/shared/include/load_from.hpp b/src/core/tests/frontend/shared/include/load_from.hpp index 77d89a65e11..db037d27953 100644 --- a/src/core/tests/frontend/shared/include/load_from.hpp +++ b/src/core/tests/frontend/shared/include/load_from.hpp @@ -6,7 +6,7 @@ #include -#include +#include struct LoadFromFEParam { std::string m_frontEndName; diff --git a/src/core/tests/frontend/shared/include/op_fuzzy.hpp b/src/core/tests/frontend/shared/include/op_fuzzy.hpp index fae7726a266..0b29df5f901 100644 --- a/src/core/tests/frontend/shared/include/op_fuzzy.hpp +++ b/src/core/tests/frontend/shared/include/op_fuzzy.hpp @@ -6,7 +6,7 @@ #include -#include +#include using FuzzyOpTestParam = std::tuple -#include +#include struct BaseFEParam { BaseFEParam() {} diff --git a/src/core/tests/frontend/shared/include/set_element_type.hpp b/src/core/tests/frontend/shared/include/set_element_type.hpp index 3ae4fce68cf..7e345420d9d 100644 --- a/src/core/tests/frontend/shared/include/set_element_type.hpp +++ b/src/core/tests/frontend/shared/include/set_element_type.hpp @@ -6,7 +6,7 @@ #include -#include +#include struct SetTypeFEParam { std::string m_frontEndName; diff --git a/src/core/tests/frontend/shared/include/telemetry.hpp b/src/core/tests/frontend/shared/include/telemetry.hpp index 770967455f2..747af456b3d 100644 --- a/src/core/tests/frontend/shared/include/telemetry.hpp +++ b/src/core/tests/frontend/shared/include/telemetry.hpp @@ -6,7 +6,7 @@ #include -#include +#include class TelemetryMock { public: diff --git a/src/core/tests/frontend/shared/include/utils.hpp b/src/core/tests/frontend/shared/include/utils.hpp index 6c9c9d6072e..4a82ca1356d 100644 --- a/src/core/tests/frontend/shared/include/utils.hpp +++ b/src/core/tests/frontend/shared/include/utils.hpp @@ -5,7 +5,7 @@ #pragma once #include -#include +#include #include #include "common_test_utils/file_utils.hpp" diff --git a/src/core/tests/frontend/shared/src/telemetry.cpp b/src/core/tests/frontend/shared/src/telemetry.cpp index 088a3074b27..c96b05b990e 100644 --- a/src/core/tests/frontend/shared/src/telemetry.cpp +++ b/src/core/tests/frontend/shared/src/telemetry.cpp @@ -4,7 +4,7 @@ #include "telemetry.hpp" -#include +#include #include "utils.hpp" diff --git a/src/core/tests/frontend/tensorflow/convert_unsupported.cpp b/src/core/tests/frontend/tensorflow/convert_unsupported.cpp index 6374912e74d..391305ea0ed 100644 --- a/src/core/tests/frontend/tensorflow/convert_unsupported.cpp +++ b/src/core/tests/frontend/tensorflow/convert_unsupported.cpp @@ -2,8 +2,8 @@ // SPDX-License-Identifier: Apache-2.0 // -#include -#include +#include +#include #include "common_test_utils/ngraph_test_utils.hpp" #include "tf_utils.hpp" diff --git a/src/core/tests/frontend/tensorflow/transpose_sinking.cpp b/src/core/tests/frontend/tensorflow/transpose_sinking.cpp index b1f08b28aa9..44f50d2c80b 100644 --- a/src/core/tests/frontend/tensorflow/transpose_sinking.cpp +++ b/src/core/tests/frontend/tensorflow/transpose_sinking.cpp @@ -5,7 +5,7 @@ #include "transpose_sinking.hpp" #include -#include +#include #include #include #include diff --git a/src/core/tests/pass/serialization/read_ir.hpp b/src/core/tests/pass/serialization/read_ir.hpp index 31a81999d84..e763c93ebc8 100644 --- a/src/core/tests/pass/serialization/read_ir.hpp +++ b/src/core/tests/pass/serialization/read_ir.hpp @@ -4,7 +4,7 @@ #pragma once -#include "manager.hpp" +#include "openvino/frontend/manager.hpp" #include "openvino/core/except.hpp" #include "openvino/core/model.hpp" diff --git a/src/frontends/common/CMakeLists.txt b/src/frontends/common/CMakeLists.txt index 869db527261..3750dc92e92 100644 --- a/src/frontends/common/CMakeLists.txt +++ b/src/frontends/common/CMakeLists.txt @@ -13,7 +13,7 @@ file(GLOB_RECURSE LIBRARY_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/src/*.hpp) file(GLOB_RECURSE LIBRARY_PUBLIC_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/include/*.hpp) # Add include path to so_extension.hpp -set_property(SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/src/frontend_manager.cpp +set_property(SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/src/frontend.cpp APPEND PROPERTY INCLUDE_DIRECTORIES "${OpenVINO_SOURCE_DIR}/src/core/src/") set(FRONTEND_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/include) @@ -25,7 +25,6 @@ source_group("public include" FILES ${LIBRARY_PUBLIC_HEADERS}) # create library add_library(${TARGET_NAME} ${LIBRARY_SRC} ${LIBRARY_HEADERS} ${LIBRARY_PUBLIC_HEADERS}) -add_library(ngraph::${TARGET_NAME} ALIAS ${TARGET_NAME}) add_library(openvino::frontend::common ALIAS ${TARGET_NAME}) target_include_directories(${TARGET_NAME} @@ -37,10 +36,10 @@ target_include_directories(${TARGET_NAME} "${CMAKE_CURRENT_BINARY_DIR}/src") target_include_directories(${TARGET_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src) -target_link_libraries(${TARGET_NAME} PRIVATE ${CMAKE_DL_LIBS} openvino::util PUBLIC ngraph) +target_link_libraries(${TARGET_NAME} PRIVATE ${CMAKE_DL_LIBS} openvino::util PUBLIC openvino::core) set_property(SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/src/plugin_loader.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/frontend_manager.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/manager.cpp APPEND PROPERTY COMPILE_DEFINITIONS FRONTEND_LIB_PREFIX="${CMAKE_SHARED_LIBRARY_PREFIX}" FRONTEND_LIB_SUFFIX="${FRONTEND_NAME_SUFFIX}${IE_BUILD_POSTFIX}${CMAKE_SHARED_LIBRARY_SUFFIX}") @@ -48,9 +47,7 @@ set_property(SOURCE add_clang_format_target(${TARGET_NAME}_clang FOR_TARGETS ${TARGET_NAME}) ov_ncc_naming_style(FOR_TARGET ${TARGET_NAME} - INCLUDE_DIRECTORY "${FRONTEND_INCLUDE_DIR}" - ADDITIONAL_INCLUDE_DIRECTORIES - $) + INCLUDE_DIRECTORY "${FRONTEND_INCLUDE_DIR}") ie_add_vs_version_file(NAME ${TARGET_NAME} FILEDESCRIPTION "Manager of OpenVINO Frontends") @@ -61,7 +58,7 @@ ie_add_api_validator_post_build_step(TARGET ${TARGET_NAME}) if(BUILD_SHARED_LIBS) add_library(${TARGET_NAME}_static STATIC ${LIBRARY_SRC} ${LIBRARY_HEADERS} ${LIBRARY_PUBLIC_HEADERS}) add_library(${TARGET_NAME}::static ALIAS ${TARGET_NAME}_static) - target_link_libraries(${TARGET_NAME}_static PRIVATE ${CMAKE_DL_LIBS} openvino::util PUBLIC ngraph) + target_link_libraries(${TARGET_NAME}_static PRIVATE ${CMAKE_DL_LIBS} openvino::util PUBLIC openvino::core) target_include_directories(${TARGET_NAME}_static PUBLIC $) target_include_directories(${TARGET_NAME}_static PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src) @@ -82,15 +79,9 @@ install(TARGETS ${TARGET_NAME} EXPORT OpenVINOTargets ARCHIVE DESTINATION ${IE_CPACK_ARCHIVE_PATH} COMPONENT core LIBRARY DESTINATION ${IE_CPACK_LIBRARY_PATH} COMPONENT core) -install(DIRECTORY ${FRONTEND_INCLUDE_DIR}/common +install(DIRECTORY ${FRONTEND_INCLUDE_DIR}/openvino DESTINATION ${FRONTEND_INSTALL_INCLUDE} - COMPONENT core_dev - FILES_MATCHING PATTERN "*.hpp") - -install(DIRECTORY ${FRONTEND_INCLUDE_DIR}/ - DESTINATION ${FRONTEND_INSTALL_INCLUDE} - COMPONENT core_dev - FILES_MATCHING PATTERN "manager.hpp") + COMPONENT core_dev) export(TARGETS ${TARGET_NAME} NAMESPACE openvino:: APPEND FILE "${CMAKE_BINARY_DIR}/OpenVINOTargets.cmake") diff --git a/src/frontends/common/include/common/frontend_exceptions.hpp b/src/frontends/common/include/openvino/frontend/exception.hpp similarity index 99% rename from src/frontends/common/include/common/frontend_exceptions.hpp rename to src/frontends/common/include/openvino/frontend/exception.hpp index 67dfe85d4f1..71d14238d81 100644 --- a/src/frontends/common/include/common/frontend_exceptions.hpp +++ b/src/frontends/common/include/openvino/frontend/exception.hpp @@ -7,8 +7,8 @@ #include #include -#include "frontend_defs.hpp" #include "openvino/core/except.hpp" +#include "visibility.hpp" namespace ov { namespace frontend { diff --git a/src/frontends/common/include/common/frontend.hpp b/src/frontends/common/include/openvino/frontend/frontend.hpp similarity index 86% rename from src/frontends/common/include/common/frontend.hpp rename to src/frontends/common/include/openvino/frontend/frontend.hpp index 1ba63e6f593..13b30254a39 100644 --- a/src/frontends/common/include/common/frontend.hpp +++ b/src/frontends/common/include/openvino/frontend/frontend.hpp @@ -8,12 +8,12 @@ #include #include -#include "frontend_defs.hpp" #include "input_model.hpp" #include "openvino/core/any.hpp" #include "openvino/core/extension.hpp" #include "openvino/core/model.hpp" #include "openvino/core/op_extension.hpp" +#include "visibility.hpp" namespace ov { namespace frontend { @@ -25,7 +25,7 @@ public: FrontEnd(); - virtual ~FrontEnd(); + virtual ~FrontEnd() = 0; /// \brief Validates if FrontEnd can recognize model with parameters specified. /// Same parameters should be used to load model. @@ -55,34 +55,34 @@ public: return load_impl(vars); } - /// \brief Completely convert and normalize entire function, throws if it is not + /// \brief Completely convert and normalize entire Model, throws if it is not /// possible /// \param model Input model - /// \return fully converted nGraph function + /// \return fully converted OV Model virtual std::shared_ptr convert(InputModel::Ptr model) const; - /// \brief Completely convert the remaining, not converted part of a function. - /// \param partiallyConverted partially converted nGraph function + /// \brief Completely convert the remaining, not converted part of a Model. + /// \param partiallyConverted partially converted OV Model virtual void convert(std::shared_ptr partially_converted) const; /// \brief Convert only those parts of the model that can be converted leaving others /// as-is. Converted parts are not normalized by additional transformations; normalize - /// function or another form of convert function should be called to finalize the + /// Model or another form of convert Model should be called to finalize the /// conversion process. /// \param model Input model - /// \return partially converted nGraph function + /// \return partially converted OV Model virtual std::shared_ptr convert_partially(InputModel::Ptr model) const; /// \brief Convert operations with one-to-one mapping with decoding nodes. - /// Each decoding node is an nGraph node representing a single FW operation node with + /// Each decoding node is an OV node representing a single FW operation node with /// all attributes represented in FW-independent way. /// \param model Input model - /// \return nGraph function after decoding + /// \return OV Model after decoding virtual std::shared_ptr decode(InputModel::Ptr model) const; - /// \brief Runs normalization passes on function that was loaded with partial conversion - /// \param function partially converted nGraph function - virtual void normalize(std::shared_ptr function) const; + /// \brief Runs normalization passes on Model that was loaded with partial conversion + /// \param Model partially converted OV Model + virtual void normalize(std::shared_ptr model) const; /// \brief Gets name of this FrontEnd. Can be used by clients /// if frontend is selected automatically by FrontEndManager::load_by_model diff --git a/src/frontends/common/include/common/input_model.hpp b/src/frontends/common/include/openvino/frontend/input_model.hpp similarity index 97% rename from src/frontends/common/include/common/input_model.hpp rename to src/frontends/common/include/openvino/frontend/input_model.hpp index 1642e3b10f2..c8327b0252c 100644 --- a/src/frontends/common/include/common/input_model.hpp +++ b/src/frontends/common/include/openvino/frontend/input_model.hpp @@ -8,10 +8,10 @@ #include #include -#include "frontend_defs.hpp" #include "openvino/core/partial_shape.hpp" #include "openvino/core/type/element_type.hpp" #include "place.hpp" +#include "visibility.hpp" namespace ov { namespace frontend { @@ -22,7 +22,7 @@ namespace frontend { /// \note Class methods are divided into several groups: searching for places, naming and /// annotation, topology editing, setting tensor properties. /// -/// Editing requests may affect ability to convert the original model to nGraph function. +/// Editing requests may affect ability to convert the original model to OV Model. /// Aim to provide these editing capabilities is to unlock conversion for models that /// are not natively supported "as-is" because of undefined shapes, types or operations. /// @@ -39,7 +39,7 @@ class FRONTEND_API InputModel { public: typedef std::shared_ptr Ptr; - virtual ~InputModel() = default; + virtual ~InputModel() = 0; ///// Searching for places ///// @@ -169,8 +169,8 @@ public: /// \brief Defines all possible shape that may be used for this place; place should be /// uniquely refer to some data. This partial shape will be converted to corresponding - /// shape of results ngraph nodes and will define shape inference when the model is - /// converted to ngraph. + /// shape of results OV nodes and will define shape inference when the model is + /// converted to OV. /// \param place Model place /// \param shape Partial shape for this place virtual void set_partial_shape(Place::Ptr place, const ov::PartialShape& shape); diff --git a/src/frontends/common/include/manager.hpp b/src/frontends/common/include/openvino/frontend/manager.hpp similarity index 94% rename from src/frontends/common/include/manager.hpp rename to src/frontends/common/include/openvino/frontend/manager.hpp index b79fc89ba2c..af6a3778aac 100644 --- a/src/frontends/common/include/manager.hpp +++ b/src/frontends/common/include/openvino/frontend/manager.hpp @@ -8,9 +8,9 @@ #include #include -#include "common/frontend.hpp" -#include "common/frontend_defs.hpp" #include "openvino/core/any.hpp" +#include "openvino/frontend/frontend.hpp" +#include "openvino/frontend/visibility.hpp" namespace ov { namespace frontend { @@ -22,8 +22,7 @@ using FrontEndFactory = std::function; /// frontends This is a main frontend entry point for client applications class FRONTEND_API FrontEndManager final { public: - /// \brief Default constructor. Searches and loads of available frontends - FrontEndManager(); + /*/ \brief Default constructor. Searches and loads of available frontends*/ FrontEndManager(); /// \brief Default move constructor FrontEndManager(FrontEndManager&&) noexcept; diff --git a/src/frontends/common/include/common/place.hpp b/src/frontends/common/include/openvino/frontend/place.hpp similarity index 99% rename from src/frontends/common/include/common/place.hpp rename to src/frontends/common/include/openvino/frontend/place.hpp index f5c00263764..7fdab781996 100644 --- a/src/frontends/common/include/common/place.hpp +++ b/src/frontends/common/include/openvino/frontend/place.hpp @@ -8,7 +8,7 @@ #include #include -#include "frontend_defs.hpp" +#include "visibility.hpp" namespace ov { namespace frontend { @@ -61,7 +61,7 @@ class FRONTEND_API Place { public: typedef std::shared_ptr Ptr; - virtual ~Place() = default; + virtual ~Place() = 0; /// \brief All associated names (synonyms) that identify this place in the graph in a /// framework specific way diff --git a/src/frontends/common/include/common/telemetry_extension.hpp b/src/frontends/common/include/openvino/frontend/telemetry_extension.hpp similarity index 97% rename from src/frontends/common/include/common/telemetry_extension.hpp rename to src/frontends/common/include/openvino/frontend/telemetry_extension.hpp index 914ad41c4bb..b1454414b3e 100644 --- a/src/frontends/common/include/common/telemetry_extension.hpp +++ b/src/frontends/common/include/openvino/frontend/telemetry_extension.hpp @@ -8,11 +8,11 @@ #include #include -#include "frontend_defs.hpp" #include "openvino/core/extension.hpp" #include "openvino/pass/graph_rewrite.hpp" #include "openvino/pass/manager.hpp" #include "openvino/pass/pass.hpp" +#include "visibility.hpp" namespace ov { namespace frontend { diff --git a/src/frontends/common/include/common/frontend_defs.hpp b/src/frontends/common/include/openvino/frontend/visibility.hpp similarity index 68% rename from src/frontends/common/include/common/frontend_defs.hpp rename to src/frontends/common/include/openvino/frontend/visibility.hpp index 23d2fa86998..b578a596673 100644 --- a/src/frontends/common/include/common/frontend_defs.hpp +++ b/src/frontends/common/include/openvino/frontend/visibility.hpp @@ -11,11 +11,14 @@ #if defined(USE_STATIC_FRONTEND_COMMON) || defined(OPENVINO_STATIC_LIBRARY) # define FRONTEND_API +# define FRONTEND_C_API #else // Defined if cmake is building the frontend_common DLL (instead of using it) # ifdef frontend_common_EXPORTS -# define FRONTEND_API OPENVINO_CORE_EXPORTS +# define FRONTEND_API OPENVINO_CORE_EXPORTS +# define FRONTEND_C_API OPENVINO_EXTERN_C OPENVINO_CORE_EXPORTS # else -# define FRONTEND_API OPENVINO_CORE_IMPORTS +# define FRONTEND_API OPENVINO_CORE_IMPORTS +# define FRONTEND_C_API OPENVINO_EXTERN_C OPENVINO_CORE_IMPORTS # endif // frontend_common_EXPORTS #endif // USE_STATIC_FRONTEND_COMMON || OPENVINO_STATIC_LIBRARY diff --git a/src/frontends/common/src/frontend.cpp b/src/frontends/common/src/frontend.cpp new file mode 100644 index 00000000000..2ab96691ee9 --- /dev/null +++ b/src/frontends/common/src/frontend.cpp @@ -0,0 +1,72 @@ +// Copyright (C) 2018-2021 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 +// + +#include +#include + +#include "openvino/frontend/exception.hpp" +#include "openvino/frontend/manager.hpp" +#include "openvino/frontend/place.hpp" +#include "openvino/util/env_util.hpp" +#include "plugin_loader.hpp" +#include "so_extension.hpp" +#include "utils.hpp" + +using namespace ov; +using namespace ov::frontend; + +FrontEnd::FrontEnd() = default; + +FrontEnd::~FrontEnd() = default; + +bool FrontEnd::supported_impl(const std::vector& variants) const { + return false; +} + +InputModel::Ptr FrontEnd::load_impl(const std::vector& params) const { + FRONT_END_NOT_IMPLEMENTED(load_impl); +} +std::shared_ptr FrontEnd::convert(InputModel::Ptr model) const { + FRONT_END_NOT_IMPLEMENTED(convert); +} + +void FrontEnd::convert(std::shared_ptr) const { + FRONT_END_NOT_IMPLEMENTED(convert); +} + +std::shared_ptr FrontEnd::convert_partially(InputModel::Ptr model) const { + FRONT_END_NOT_IMPLEMENTED(convert_partially); +} + +std::shared_ptr FrontEnd::decode(InputModel::Ptr model) const { + FRONT_END_NOT_IMPLEMENTED(decode); +} + +void FrontEnd::normalize(std::shared_ptr model) const { + FRONT_END_NOT_IMPLEMENTED(normalize); +} + +void FrontEnd::add_extension(const std::shared_ptr& extension) { + // Left unimplemented intentionally. + // Each frontend can support own set of extensions, so this method should be implemented on the frontend side +} + +void FrontEnd::add_extension(const std::vector>& extensions) { + for (const auto& ext : extensions) + add_extension(ext); +} + +void FrontEnd::add_extension(const std::string& library_path) { + add_extension(ov::detail::load_extensions(library_path)); +} + +#ifdef OPENVINO_ENABLE_UNICODE_PATH_SUPPORT +void FrontEnd::add_extension(const std::wstring& library_path) { + add_extension(ov::detail::load_extensions(library_path)); +} +#endif + +std::string FrontEnd::get_name() const { + return std::string(); +} diff --git a/src/frontends/common/src/input_model.cpp b/src/frontends/common/src/input_model.cpp new file mode 100644 index 00000000000..9c1cc7a3629 --- /dev/null +++ b/src/frontends/common/src/input_model.cpp @@ -0,0 +1,114 @@ +// Copyright (C) 2018-2021 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 +// + +#include + +#include "openvino/frontend/exception.hpp" +#include "openvino/frontend/manager.hpp" +#include "openvino/frontend/place.hpp" +#include "utils.hpp" + +using namespace ov; +using namespace ov::frontend; + +InputModel::~InputModel() = default; + +std::vector InputModel::get_inputs() const { + return {}; +} + +std::vector InputModel::get_outputs() const { + return {}; +} + +Place::Ptr InputModel::get_place_by_tensor_name(const std::string& tensor_name) const { + return nullptr; +} + +Place::Ptr InputModel::get_place_by_operation_name(const std::string& operation_name) const { + return nullptr; +} + +Place::Ptr InputModel::get_place_by_operation_name_and_input_port(const std::string& operation_name, + int input_port_index) { + return nullptr; +} + +Place::Ptr InputModel::get_place_by_operation_name_and_output_port(const std::string& operation_name, + int output_port_index) { + return nullptr; +} + +void InputModel::set_name_for_tensor(Place::Ptr tensor, const std::string& new_name) { + FRONT_END_NOT_IMPLEMENTED(set_name_for_tensor); +} + +void InputModel::add_name_for_tensor(Place::Ptr tensor, const std::string& new_name) { + FRONT_END_NOT_IMPLEMENTED(add_name_for_tensor); +} + +void InputModel::set_name_for_operation(Place::Ptr operation, const std::string& new_name) { + FRONT_END_NOT_IMPLEMENTED(set_name_for_operation); +} + +void InputModel::free_name_for_tensor(const std::string& name) { + FRONT_END_NOT_IMPLEMENTED(free_name_for_tensor); +} + +void InputModel::free_name_for_operation(const std::string& name) { + FRONT_END_NOT_IMPLEMENTED(free_name_for_operation); +} + +void InputModel::set_name_for_dimension(Place::Ptr place, size_t shape_dim_index, const std::string& dim_name) { + FRONT_END_NOT_IMPLEMENTED(set_name_for_dimension); +} + +void InputModel::cut_and_add_new_input(Place::Ptr place, const std::string& new_name_optional) { + FRONT_END_NOT_IMPLEMENTED(cut_and_add_new_input); +} + +void InputModel::cut_and_add_new_output(Place::Ptr place, const std::string& new_name_optional) { + FRONT_END_NOT_IMPLEMENTED(cut_and_add_new_output); +} + +Place::Ptr InputModel::add_output(Place::Ptr place) { + FRONT_END_NOT_IMPLEMENTED(add_output); +} + +void InputModel::remove_output(Place::Ptr place) { + FRONT_END_NOT_IMPLEMENTED(remove_output); +} + +void InputModel::override_all_outputs(const std::vector& outputs) { + FRONT_END_NOT_IMPLEMENTED(override_all_outputs); +} + +void InputModel::override_all_inputs(const std::vector& inputs) { + FRONT_END_NOT_IMPLEMENTED(override_all_inputs); +} + +void InputModel::extract_subgraph(const std::vector& inputs, const std::vector& outputs) { + FRONT_END_NOT_IMPLEMENTED(extract_subgraph); +} + +// Setting tensor properties +void InputModel::set_partial_shape(Place::Ptr place, const PartialShape&) { + FRONT_END_NOT_IMPLEMENTED(set_partial_shape); +} + +PartialShape InputModel::get_partial_shape(Place::Ptr place) const { + FRONT_END_NOT_IMPLEMENTED(get_partial_shape); +} + +void InputModel::set_element_type(Place::Ptr place, const element::Type&) { + FRONT_END_NOT_IMPLEMENTED(set_element_type); +} + +void InputModel::set_tensor_value(Place::Ptr place, const void* value) { + FRONT_END_NOT_IMPLEMENTED(set_tensor_value); +} + +void InputModel::set_tensor_partial_value(Place::Ptr place, const void* min_value, const void* max_value) { + FRONT_END_NOT_IMPLEMENTED(set_tensor_partial_value); +} diff --git a/src/frontends/common/src/frontend_manager.cpp b/src/frontends/common/src/manager.cpp similarity index 51% rename from src/frontends/common/src/frontend_manager.cpp rename to src/frontends/common/src/manager.cpp index f50781418a4..7b79721603a 100644 --- a/src/frontends/common/src/frontend_manager.cpp +++ b/src/frontends/common/src/manager.cpp @@ -2,22 +2,19 @@ // SPDX-License-Identifier: Apache-2.0 // +#include "openvino/frontend/manager.hpp" + #include #include -#include "common/frontend_exceptions.hpp" -#include "common/place.hpp" -#include "manager.hpp" -#include "ngraph/except.hpp" -#include "openvino/util/env_util.hpp" +#include "openvino/frontend/exception.hpp" +#include "openvino/frontend/place.hpp" #include "plugin_loader.hpp" -#include "so_extension.hpp" #include "utils.hpp" using namespace ov; using namespace ov::frontend; -//----------- FrontEndManager --------------------------- class FrontEndManager::Impl { std::mutex m_loading_mutex; std::vector m_plugins; @@ -232,285 +229,3 @@ template <> FrontEnd::Ptr FrontEndManager::load_by_model(const std::vector& variants) { return load_by_model_impl(variants); } - -//----------- FrontEnd --------------------------- - -FrontEnd::FrontEnd() = default; - -FrontEnd::~FrontEnd() = default; - -bool FrontEnd::supported_impl(const std::vector& variants) const { - return false; -} - -InputModel::Ptr FrontEnd::load_impl(const std::vector& params) const { - FRONT_END_NOT_IMPLEMENTED(load_impl); -} -std::shared_ptr FrontEnd::convert(InputModel::Ptr model) const { - FRONT_END_NOT_IMPLEMENTED(convert); -} - -void FrontEnd::convert(std::shared_ptr) const { - FRONT_END_NOT_IMPLEMENTED(convert); -} - -std::shared_ptr FrontEnd::convert_partially(InputModel::Ptr model) const { - FRONT_END_NOT_IMPLEMENTED(convert_partially); -} - -std::shared_ptr FrontEnd::decode(InputModel::Ptr model) const { - FRONT_END_NOT_IMPLEMENTED(decode); -} - -void FrontEnd::normalize(std::shared_ptr model) const { - FRONT_END_NOT_IMPLEMENTED(normalize); -} - -void FrontEnd::add_extension(const std::shared_ptr& extension) { - // Left unimplemented intentionally. - // Each frontend can support own set of extensions, so this method should be implemented on the frontend side -} - -void FrontEnd::add_extension(const std::vector>& extensions) { - for (const auto& ext : extensions) - add_extension(ext); -} - -void FrontEnd::add_extension(const std::string& library_path) { - add_extension(ov::detail::load_extensions(library_path)); -} - -#ifdef OPENVINO_ENABLE_UNICODE_PATH_SUPPORT -void FrontEnd::add_extension(const std::wstring& library_path) { - add_extension(ov::detail::load_extensions(library_path)); -} -#endif - -std::string FrontEnd::get_name() const { - return std::string(); -} - -//----------- InputModel --------------------------- -std::vector InputModel::get_inputs() const { - return {}; -} - -std::vector InputModel::get_outputs() const { - return {}; -} - -Place::Ptr InputModel::get_place_by_tensor_name(const std::string& tensor_name) const { - return nullptr; -} - -Place::Ptr InputModel::get_place_by_operation_name(const std::string& operation_name) const { - return nullptr; -} - -Place::Ptr InputModel::get_place_by_operation_name_and_input_port(const std::string& operation_name, - int input_port_index) { - return nullptr; -} - -Place::Ptr InputModel::get_place_by_operation_name_and_output_port(const std::string& operation_name, - int output_port_index) { - return nullptr; -} - -void InputModel::set_name_for_tensor(Place::Ptr tensor, const std::string& new_name) { - FRONT_END_NOT_IMPLEMENTED(set_name_for_tensor); -} - -void InputModel::add_name_for_tensor(Place::Ptr tensor, const std::string& new_name) { - FRONT_END_NOT_IMPLEMENTED(add_name_for_tensor); -} - -void InputModel::set_name_for_operation(Place::Ptr operation, const std::string& new_name) { - FRONT_END_NOT_IMPLEMENTED(set_name_for_operation); -} - -void InputModel::free_name_for_tensor(const std::string& name) { - FRONT_END_NOT_IMPLEMENTED(free_name_for_tensor); -} - -void InputModel::free_name_for_operation(const std::string& name) { - FRONT_END_NOT_IMPLEMENTED(free_name_for_operation); -} - -void InputModel::set_name_for_dimension(Place::Ptr place, size_t shape_dim_index, const std::string& dim_name) { - FRONT_END_NOT_IMPLEMENTED(set_name_for_dimension); -} - -void InputModel::cut_and_add_new_input(Place::Ptr place, const std::string& new_name_optional) { - FRONT_END_NOT_IMPLEMENTED(cut_and_add_new_input); -} - -void InputModel::cut_and_add_new_output(Place::Ptr place, const std::string& new_name_optional) { - FRONT_END_NOT_IMPLEMENTED(cut_and_add_new_output); -} - -Place::Ptr InputModel::add_output(Place::Ptr place) { - FRONT_END_NOT_IMPLEMENTED(add_output); -} - -void InputModel::remove_output(Place::Ptr place) { - FRONT_END_NOT_IMPLEMENTED(remove_output); -} - -void InputModel::override_all_outputs(const std::vector& outputs) { - FRONT_END_NOT_IMPLEMENTED(override_all_outputs); -} - -void InputModel::override_all_inputs(const std::vector& inputs) { - FRONT_END_NOT_IMPLEMENTED(override_all_inputs); -} - -void InputModel::extract_subgraph(const std::vector& inputs, const std::vector& outputs) { - FRONT_END_NOT_IMPLEMENTED(extract_subgraph); -} - -// Setting tensor properties -void InputModel::set_partial_shape(Place::Ptr place, const PartialShape&) { - FRONT_END_NOT_IMPLEMENTED(set_partial_shape); -} - -PartialShape InputModel::get_partial_shape(Place::Ptr place) const { - FRONT_END_NOT_IMPLEMENTED(get_partial_shape); -} - -void InputModel::set_element_type(Place::Ptr place, const element::Type&) { - FRONT_END_NOT_IMPLEMENTED(set_element_type); -} - -void InputModel::set_tensor_value(Place::Ptr place, const void* value) { - FRONT_END_NOT_IMPLEMENTED(set_tensor_value); -} - -void InputModel::set_tensor_partial_value(Place::Ptr place, const void* min_value, const void* max_value) { - FRONT_END_NOT_IMPLEMENTED(set_tensor_partial_value); -} - -//----------- Place --------------------------- -std::vector Place::get_names() const { - FRONT_END_NOT_IMPLEMENTED(get_names); -} - -std::vector Place::get_consuming_operations() const { - return {}; -} - -std::vector Place::get_consuming_operations(int output_port_index) const { - return {}; -} - -std::vector Place::get_consuming_operations(const std::string& outputPortName, int outputPortIndex) const { - return {}; -} - -Place::Ptr Place::get_target_tensor() const { - return nullptr; -} - -Place::Ptr Place::get_target_tensor(int output_port_index) const { - return nullptr; -} - -Place::Ptr Place::get_producing_operation() const { - return nullptr; -} - -Place::Ptr Place::get_producing_operation(int input_port_index) const { - return nullptr; -} - -Place::Ptr Place::get_producing_port() const { - return nullptr; -} - -Place::Ptr Place::get_input_port() const { - return nullptr; -} - -Place::Ptr Place::get_input_port(int input_port_index) const { - return nullptr; -} - -Place::Ptr Place::get_input_port(const std::string& input_name) const { - return nullptr; -} - -Place::Ptr Place::get_input_port(const std::string& input_name, int input_port_index) const { - return nullptr; -} - -Place::Ptr Place::get_output_port() const { - return nullptr; -} - -Place::Ptr Place::get_output_port(int output_port_index) const { - return nullptr; -} - -Place::Ptr Place::get_output_port(const std::string& output_name) const { - return nullptr; -} - -Place::Ptr Place::get_output_port(const std::string& output_name, int output_port_index) const { - return nullptr; -} - -std::vector Place::get_consuming_ports() const { - return {}; -} - -bool Place::is_input() const { - FRONT_END_NOT_IMPLEMENTED(is_input); -} - -bool Place::is_output() const { - FRONT_END_NOT_IMPLEMENTED(is_output); -} - -bool Place::is_equal(Ptr another) const { - FRONT_END_NOT_IMPLEMENTED(is_equal); -} - -bool Place::is_equal_data(Ptr another) const { - FRONT_END_NOT_IMPLEMENTED(is_equal_data); -} - -Place::Ptr Place::get_source_tensor() const { - return nullptr; -} - -Place::Ptr Place::get_source_tensor(int input_port_index) const { - return nullptr; -} - -Place::Ptr Place::get_source_tensor(const std::string& inputName, int inputPortIndex) const { - return nullptr; -} - -Place::Ptr Place::get_source_tensor(const std::string& inputName) const { - return nullptr; -} - -Place::Ptr Place::get_target_tensor(const std::string& outputPortName) const { - return nullptr; -} - -Place::Ptr Place::get_target_tensor(const std::string& outputPortName, int outputPortIndex) const { - return nullptr; -} - -Place::Ptr Place::get_producing_operation(const std::string& inputName) const { - return nullptr; -} - -Place::Ptr Place::get_producing_operation(const std::string& inputName, int inputPortIndex) const { - return nullptr; -} - -std::vector Place::get_consuming_operations(const std::string& outputPortName) const { - return {}; -} diff --git a/src/frontends/common/src/place.cpp b/src/frontends/common/src/place.cpp new file mode 100644 index 00000000000..9b8f611f9ce --- /dev/null +++ b/src/frontends/common/src/place.cpp @@ -0,0 +1,139 @@ +// Copyright (C) 2018-2021 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 +// + +#include "openvino/frontend/place.hpp" + +#include + +#include "openvino/frontend/exception.hpp" +#include "utils.hpp" + +using namespace ov; +using namespace ov::frontend; + +Place::~Place() = default; + +std::vector Place::get_names() const { + FRONT_END_NOT_IMPLEMENTED(get_names); +} + +std::vector Place::get_consuming_operations() const { + return {}; +} + +std::vector Place::get_consuming_operations(int output_port_index) const { + return {}; +} + +std::vector Place::get_consuming_operations(const std::string& outputPortName, int outputPortIndex) const { + return {}; +} + +Place::Ptr Place::get_target_tensor() const { + return nullptr; +} + +Place::Ptr Place::get_target_tensor(int output_port_index) const { + return nullptr; +} + +Place::Ptr Place::get_producing_operation() const { + return nullptr; +} + +Place::Ptr Place::get_producing_operation(int input_port_index) const { + return nullptr; +} + +Place::Ptr Place::get_producing_port() const { + return nullptr; +} + +Place::Ptr Place::get_input_port() const { + return nullptr; +} + +Place::Ptr Place::get_input_port(int input_port_index) const { + return nullptr; +} + +Place::Ptr Place::get_input_port(const std::string& input_name) const { + return nullptr; +} + +Place::Ptr Place::get_input_port(const std::string& input_name, int input_port_index) const { + return nullptr; +} + +Place::Ptr Place::get_output_port() const { + return nullptr; +} + +Place::Ptr Place::get_output_port(int output_port_index) const { + return nullptr; +} + +Place::Ptr Place::get_output_port(const std::string& output_name) const { + return nullptr; +} + +Place::Ptr Place::get_output_port(const std::string& output_name, int output_port_index) const { + return nullptr; +} + +std::vector Place::get_consuming_ports() const { + return {}; +} + +bool Place::is_input() const { + FRONT_END_NOT_IMPLEMENTED(is_input); +} + +bool Place::is_output() const { + FRONT_END_NOT_IMPLEMENTED(is_output); +} + +bool Place::is_equal(Ptr another) const { + FRONT_END_NOT_IMPLEMENTED(is_equal); +} + +bool Place::is_equal_data(Ptr another) const { + FRONT_END_NOT_IMPLEMENTED(is_equal_data); +} + +Place::Ptr Place::get_source_tensor() const { + return nullptr; +} + +Place::Ptr Place::get_source_tensor(int input_port_index) const { + return nullptr; +} + +Place::Ptr Place::get_source_tensor(const std::string& inputName, int inputPortIndex) const { + return nullptr; +} + +Place::Ptr Place::get_source_tensor(const std::string& inputName) const { + return nullptr; +} + +Place::Ptr Place::get_target_tensor(const std::string& outputPortName) const { + return nullptr; +} + +Place::Ptr Place::get_target_tensor(const std::string& outputPortName, int outputPortIndex) const { + return nullptr; +} + +Place::Ptr Place::get_producing_operation(const std::string& inputName) const { + return nullptr; +} + +Place::Ptr Place::get_producing_operation(const std::string& inputName, int inputPortIndex) const { + return nullptr; +} + +std::vector Place::get_consuming_operations(const std::string& outputPortName) const { + return {}; +} diff --git a/src/frontends/common/src/plugin_loader.cpp b/src/frontends/common/src/plugin_loader.cpp index e3d3cb1c2f4..e7233ec2542 100644 --- a/src/frontends/common/src/plugin_loader.cpp +++ b/src/frontends/common/src/plugin_loader.cpp @@ -16,7 +16,7 @@ #include -#include +#include #include #include @@ -61,7 +61,6 @@ void load_static_plugins(std::vector& res) { // TODO: change to std::filesystem for C++17 static std::vector list_files(const std::string& path) { - NGRAPH_SUPPRESS_DEPRECATED_START std::vector res; try { const auto prefix = std::string(FRONTEND_LIB_PREFIX); @@ -82,7 +81,6 @@ static std::vector list_files(const std::string& path) { // Ignore exceptions } return res; - NGRAPH_SUPPRESS_DEPRECATED_END } void ov::frontend::find_plugins(const std::string& dir_name, std::vector& res) { @@ -99,7 +97,7 @@ void ov::frontend::find_plugins(const std::string& dir_name, std::vector(ov::util::get_symbol(so, "GetAPIVersion")); if (!info_addr) { - NGRAPH_DEBUG << "Loaded FrontEnd [" << m_file_path << "] doesn't have API version" << std::endl; + OPENVINO_DEBUG << "Loaded FrontEnd [" << m_file_path << "] doesn't have API version" << std::endl; return false; } FrontEndVersion plug_info{reinterpret_cast(info_addr())}; if (plug_info != OV_FRONTEND_API_VERSION) { // Plugin has incompatible API version, do not load it - NGRAPH_DEBUG << "Loaded FrontEnd [" << m_file_path << "] has incompatible API version" << plug_info - << std::endl; + OPENVINO_DEBUG << "Loaded FrontEnd [" << m_file_path << "] has incompatible API version" << plug_info + << std::endl; return false; } auto creator_addr = reinterpret_cast(ov::util::get_symbol(so, "GetFrontEndData")); if (!creator_addr) { - NGRAPH_DEBUG << "Loaded FrontEnd [" << m_file_path << "] doesn't have Frontend Data" << std::endl; + OPENVINO_DEBUG << "Loaded FrontEnd [" << m_file_path << "] doesn't have Frontend Data" << std::endl; return false; } diff --git a/src/frontends/common/src/plugin_loader.hpp b/src/frontends/common/src/plugin_loader.hpp index 32340d05729..481b6dd434a 100644 --- a/src/frontends/common/src/plugin_loader.hpp +++ b/src/frontends/common/src/plugin_loader.hpp @@ -4,7 +4,7 @@ #pragma once -#include +#include #ifdef _WIN32 static const char PathSeparator[] = ";"; diff --git a/src/frontends/common/src/telemetry_extension.cpp b/src/frontends/common/src/telemetry_extension.cpp index 134836ac701..8dfa0c3725d 100644 --- a/src/frontends/common/src/telemetry_extension.cpp +++ b/src/frontends/common/src/telemetry_extension.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "common/telemetry_extension.hpp" +#include "openvino/frontend/telemetry_extension.hpp" using namespace ov::frontend; diff --git a/src/frontends/common/src/utils.cpp b/src/frontends/common/src/utils.cpp index 8fceccf2718..35a54723e6e 100644 --- a/src/frontends/common/src/utils.cpp +++ b/src/frontends/common/src/utils.cpp @@ -4,7 +4,7 @@ #include "utils.hpp" -#include "common/frontend_exceptions.hpp" +#include "openvino/frontend/exception.hpp" #include "openvino/util/file_util.hpp" #include "plugin_loader.hpp" diff --git a/src/frontends/common/src/utils.hpp b/src/frontends/common/src/utils.hpp index c5a4f30475f..100e4abb207 100644 --- a/src/frontends/common/src/utils.hpp +++ b/src/frontends/common/src/utils.hpp @@ -4,7 +4,7 @@ #include -#include "common/frontend_defs.hpp" +#include "openvino/frontend/visibility.hpp" namespace ov { namespace frontend { diff --git a/src/frontends/ir/include/ir_frontend/model.hpp b/src/frontends/ir/include/ir_frontend/model.hpp deleted file mode 100644 index 243bb327d9b..00000000000 --- a/src/frontends/ir/include/ir_frontend/model.hpp +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright (C) 2018-2021 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 -// - -#pragma once - -#include -#include - -#include "ir_frontend/utility.hpp" -#include "manager.hpp" -#include "ngraph/runtime/aligned_buffer.hpp" - -namespace ov { -namespace frontend { - -class IR_API InputModelIR : public InputModel { - friend class FrontEndIR; - class InputModelIRImpl; - std::shared_ptr _impl; - -public: - InputModelIR(std::istream& stream, - const std::shared_ptr& weights, - const std::unordered_map& extensions); - - std::shared_ptr convert(); -}; - -} // namespace frontend -} // namespace ov diff --git a/src/frontends/ir/include/ir_frontend/frontend.hpp b/src/frontends/ir/include/openvino/frontend/ir/frontend.hpp similarity index 82% rename from src/frontends/ir/include/ir_frontend/frontend.hpp rename to src/frontends/ir/include/openvino/frontend/ir/frontend.hpp index ac79bca3ff1..4139e37b929 100644 --- a/src/frontends/ir/include/ir_frontend/frontend.hpp +++ b/src/frontends/ir/include/openvino/frontend/ir/frontend.hpp @@ -4,16 +4,19 @@ #pragma once -#include "common/frontend.hpp" -#include "common/telemetry_extension.hpp" -#include "utility.hpp" +#include "openvino/frontend/exception.hpp" +#include "openvino/frontend/frontend.hpp" +#include "openvino/frontend/ir/visibility.hpp" +#include "openvino/frontend/telemetry_extension.hpp" +#include "openvino/openvino.hpp" namespace ov { namespace frontend { +namespace ir { -class IR_API FrontEndIR : public FrontEnd { +class IR_API FrontEnd : public ov::frontend::FrontEnd { public: - FrontEndIR() = default; + FrontEnd() = default; /// \brief Completely convert the remaining, not converted part of a function. /// \param partiallyConverted partially converted nGraph function @@ -47,5 +50,6 @@ private: std::shared_ptr m_telemetry; }; +} // namespace ir } // namespace frontend } // namespace ov diff --git a/src/frontends/ir/include/ir_frontend/utility.hpp b/src/frontends/ir/include/openvino/frontend/ir/visibility.hpp similarity index 60% rename from src/frontends/ir/include/ir_frontend/utility.hpp rename to src/frontends/ir/include/openvino/frontend/ir/visibility.hpp index 5e9555fc50d..a90f0e1d529 100644 --- a/src/frontends/ir/include/ir_frontend/utility.hpp +++ b/src/frontends/ir/include/openvino/frontend/ir/visibility.hpp @@ -18,13 +18,3 @@ # define IR_C_API OPENVINO_EXTERN_C OPENVINO_CORE_IMPORTS # endif // ir_ov_frontend_EXPORTS #endif // OPENVINO_STATIC_LIBRARY - -#define IR_ASSERT(ex, msg) \ - { \ - if (!(ex)) \ - throw std::runtime_error(msg); \ - } - -#define IR_THROW(msg) throw std::runtime_error(std::string("ERROR: ") + msg) - -#define NOT_IMPLEMENTED(msg) throw std::runtime_error(std::string(msg) + " is not implemented") diff --git a/src/frontends/ir/src/frontend.cpp b/src/frontends/ir/src/frontend.cpp index ff32cde6dee..4ce3da25c5a 100644 --- a/src/frontends/ir/src/frontend.cpp +++ b/src/frontends/ir/src/frontend.cpp @@ -2,13 +2,12 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "ir_frontend/frontend.hpp" +#include "openvino/frontend/ir/frontend.hpp" #include #include -#include "ir_frontend/model.hpp" -#include "ir_frontend/utility.hpp" +#include "input_model.hpp" #include "ngraph/runtime/aligned_buffer.hpp" #include "ngraph/runtime/shared_buffer.hpp" #include "openvino/core/any.hpp" @@ -20,6 +19,7 @@ using namespace ov; namespace ov { namespace frontend { +namespace ir { namespace { inline size_t GetIRVersion(pugi::xml_node& root) { @@ -59,7 +59,7 @@ size_t GetIRVersion(std::istream& model) { } // namespace -bool FrontEndIR::supported_impl(const std::vector& variants) const { +bool FrontEnd::supported_impl(const std::vector& variants) const { std::ifstream local_model_stream; std::istream* provided_model_stream = nullptr; @@ -99,7 +99,7 @@ bool FrontEndIR::supported_impl(const std::vector& variants) const { return version >= 10 && version <= 11; } -void FrontEndIR::add_extension(const ov::Extension::Ptr& ext) { +void FrontEnd::add_extension(const ov::Extension::Ptr& ext) { if (auto telemetry = std::dynamic_pointer_cast(ext)) { m_telemetry = telemetry; } else if (auto so_ext = std::dynamic_pointer_cast(ext)) { @@ -111,7 +111,7 @@ void FrontEndIR::add_extension(const ov::Extension::Ptr& ext) { extensions.emplace_back(ext); } -InputModel::Ptr FrontEndIR::load_impl(const std::vector& variants) const { +InputModel::Ptr FrontEnd::load_impl(const std::vector& variants) const { std::ifstream local_model_stream; std::istream* provided_model_stream = nullptr; std::shared_ptr weights; @@ -125,11 +125,11 @@ InputModel::Ptr FrontEndIR::load_impl(const std::vector& variants) cons return exts; }; - auto create_input_model = [&]() -> std::shared_ptr { + auto create_input_model = [&]() -> std::shared_ptr { if (provided_model_stream) { - return std::make_shared(*provided_model_stream, weights, create_extensions_map()); + return std::make_shared(*provided_model_stream, weights, create_extensions_map()); } else if (local_model_stream.is_open()) { - auto input_model = std::make_shared(local_model_stream, weights, create_extensions_map()); + auto input_model = std::make_shared(local_model_stream, weights, create_extensions_map()); local_model_stream.close(); return input_model; } @@ -203,9 +203,9 @@ InputModel::Ptr FrontEndIR::load_impl(const std::vector& variants) cons bin_stream.open(weights_path, std::ios::binary); if (!bin_stream.is_open()) #if defined(OPENVINO_ENABLE_UNICODE_PATH_SUPPORT) && defined(_WIN32) - IR_THROW("Weights file " + ov::util::wstring_to_string(weights_path) + " cannot be opened!"); + IE_THROW() << "Weights file " + ov::util::wstring_to_string(weights_path) + " cannot be opened!"; #else - IR_THROW("Weights file " + weights_path + " cannot be opened!"); + IE_THROW() << "Weights file " + weights_path + " cannot be opened!"; #endif bin_stream.seekg(0, std::ios::end); @@ -225,15 +225,17 @@ InputModel::Ptr FrontEndIR::load_impl(const std::vector& variants) cons return create_input_model(); } -std::shared_ptr FrontEndIR::convert(InputModel::Ptr model) const { - auto ir_model = std::dynamic_pointer_cast(model); +std::shared_ptr FrontEnd::convert(InputModel::Ptr model) const { + auto ir_model = std::dynamic_pointer_cast(model); OPENVINO_ASSERT(ir_model != nullptr); return ir_model->convert(); } -std::string FrontEndIR::get_name() const { +std::string FrontEnd::get_name() const { return "ir"; } + +} // namespace ir } // namespace frontend } // namespace ov @@ -245,7 +247,7 @@ IR_C_API void* GetFrontEndData() { frontend::FrontEndPluginInfo* res = new frontend::FrontEndPluginInfo(); res->m_name = "ir"; res->m_creator = []() { - return std::make_shared(); + return std::make_shared(); }; return res; } diff --git a/src/frontends/ir/src/model.cpp b/src/frontends/ir/src/input_model.cpp similarity index 95% rename from src/frontends/ir/src/model.cpp rename to src/frontends/ir/src/input_model.cpp index 341cb6ea54a..96b38ce906c 100644 --- a/src/frontends/ir/src/model.cpp +++ b/src/frontends/ir/src/input_model.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "ir_frontend/model.hpp" +#include "input_model.hpp" #include @@ -186,7 +186,9 @@ void ParsePreProcess(pugi::xml_node& root, namespace ov { namespace frontend { -class InputModelIR::InputModelIRImpl { +namespace ir { + +class InputModel::InputModelIRImpl { std::shared_ptr m_weights; std::unordered_map m_extensions; std::unordered_map m_opsets; @@ -217,17 +219,17 @@ public: std::shared_ptr convert(); }; -InputModelIR::InputModelIR(std::istream& stream, - const std::shared_ptr& weights, - const std::unordered_map& extensions) { +InputModel::InputModel(std::istream& stream, + const std::shared_ptr& weights, + const std::unordered_map& extensions) { _impl = std::make_shared(stream, weights, extensions); } -std::shared_ptr InputModelIR::convert() { +std::shared_ptr InputModel::convert() { return _impl->convert(); } -std::shared_ptr InputModelIR::InputModelIRImpl::convert() { +std::shared_ptr InputModel::InputModelIRImpl::convert() { std::unordered_map> variables; // Load default opsets @@ -240,5 +242,7 @@ std::shared_ptr InputModelIR::InputModelIRImpl::convert() { return function; } + +} // namespace ir } // namespace frontend } // namespace ov diff --git a/src/frontends/ir/src/input_model.hpp b/src/frontends/ir/src/input_model.hpp new file mode 100644 index 00000000000..6fae50ea6cd --- /dev/null +++ b/src/frontends/ir/src/input_model.hpp @@ -0,0 +1,33 @@ +// Copyright (C) 2018-2021 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 +// + +#pragma once + +#include +#include + +#include "ngraph/runtime/aligned_buffer.hpp" +#include "openvino/frontend/manager.hpp" +#include "openvino/frontend/visibility.hpp" + +namespace ov { +namespace frontend { +namespace ir { + +class InputModel : public ov::frontend::InputModel { + friend class FrontEnd; + class InputModelIRImpl; + std::shared_ptr _impl; + +public: + InputModel(std::istream& stream, + const std::shared_ptr& weights, + const std::unordered_map& extensions); + + std::shared_ptr convert(); +}; + +} // namespace ir +} // namespace frontend +} // namespace ov diff --git a/src/frontends/ir/src/ir_deserializer.cpp b/src/frontends/ir/src/ir_deserializer.cpp index 555d32997a7..166c9a92808 100644 --- a/src/frontends/ir/src/ir_deserializer.cpp +++ b/src/frontends/ir/src/ir_deserializer.cpp @@ -7,7 +7,6 @@ #include #include "ie_ngraph_utils.hpp" -#include "ir_frontend/model.hpp" #include "ngraph/op/util/framework_node.hpp" #include "ngraph/opsets/opset1.hpp" #include "rt_info_deserializer.hpp" diff --git a/src/frontends/ir/src/ir_deserializer.hpp b/src/frontends/ir/src/ir_deserializer.hpp index 869a980fed2..27836bb5220 100644 --- a/src/frontends/ir/src/ir_deserializer.hpp +++ b/src/frontends/ir/src/ir_deserializer.hpp @@ -9,7 +9,7 @@ #include #include "ie_ngraph_utils.hpp" -#include "ir_frontend/model.hpp" +#include "input_model.hpp" #include "ngraph/opsets/opset.hpp" #include "openvino/core/attribute_visitor.hpp" #include "openvino/core/op_extension.hpp" diff --git a/src/frontends/ir/src/rt_info_deserializer.cpp b/src/frontends/ir/src/rt_info_deserializer.cpp index 0b7bee7c329..1c39be259ba 100644 --- a/src/frontends/ir/src/rt_info_deserializer.cpp +++ b/src/frontends/ir/src/rt_info_deserializer.cpp @@ -2,11 +2,12 @@ // SPDX-License-Identifier: Apache-2.0 // -#include #include #include #include +#include "openvino/frontend/exception.hpp" + using namespace ov; void RTInfoDeserializer::on_adapter(const std::string& name, ValueAccessor& adapter) { @@ -19,6 +20,6 @@ void RTInfoDeserializer::on_adapter(const std::string& name, ValueAccessor str_to_container(val, ss); a->set(ss); } else { - IR_THROW("Not implemented"); + IE_THROW() << "Not implemented"; } } diff --git a/src/frontends/ir/src/rt_info_deserializer.hpp b/src/frontends/ir/src/rt_info_deserializer.hpp index f706fbc7c7f..22d5550ac63 100644 --- a/src/frontends/ir/src/rt_info_deserializer.hpp +++ b/src/frontends/ir/src/rt_info_deserializer.hpp @@ -7,7 +7,6 @@ #include #include -#include "ir_frontend/utility.hpp" #include "openvino/core/attribute_visitor.hpp" #include "utils.hpp" diff --git a/src/frontends/onnx/frontend/CMakeLists.txt b/src/frontends/onnx/frontend/CMakeLists.txt index 5fe802a7f3f..aaf2b473682 100644 --- a/src/frontends/onnx/frontend/CMakeLists.txt +++ b/src/frontends/onnx/frontend/CMakeLists.txt @@ -20,6 +20,6 @@ ov_ncc_naming_style(FOR_TARGET ${TARGET_NAME} $) install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/onnx_import - DESTINATION ${FRONTEND_INSTALL_INCLUDE} + DESTINATION ${FRONTEND_INSTALL_INCLUDE}/ngraph/frontend COMPONENT core_dev FILES_MATCHING PATTERN "*.hpp") diff --git a/src/frontends/onnx/frontend/include/onnx_frontend/frontend.hpp b/src/frontends/onnx/frontend/include/openvino/frontend/onnx/frontend.hpp similarity index 86% rename from src/frontends/onnx/frontend/include/onnx_frontend/frontend.hpp rename to src/frontends/onnx/frontend/include/openvino/frontend/onnx/frontend.hpp index a82d7056a70..131bff7aa79 100644 --- a/src/frontends/onnx/frontend/include/onnx_frontend/frontend.hpp +++ b/src/frontends/onnx/frontend/include/openvino/frontend/onnx/frontend.hpp @@ -4,7 +4,8 @@ #pragma once -#include +#include +#include #ifdef OPENVINO_STATIC_LIBRARY # define ONNX_FRONTEND_API @@ -21,7 +22,9 @@ namespace ov { namespace frontend { -class ONNX_FRONTEND_API FrontEndONNX : public FrontEnd { +namespace onnx { + +class ONNX_FRONTEND_API FrontEnd : public ov::frontend::FrontEnd { public: std::shared_ptr convert(InputModel::Ptr model) const override; void convert(std::shared_ptr partially_converted) const override; @@ -37,5 +40,6 @@ private: std::shared_ptr m_telemetry; }; +} // namespace onnx } // namespace frontend } // namespace ov diff --git a/src/frontends/onnx/frontend/src/core/graph.hpp b/src/frontends/onnx/frontend/src/core/graph.hpp index 0e5c2378d32..49991b29754 100644 --- a/src/frontends/onnx/frontend/src/core/graph.hpp +++ b/src/frontends/onnx/frontend/src/core/graph.hpp @@ -10,12 +10,12 @@ #include #include -#include "common/telemetry_extension.hpp" #include "core/graph_cache.hpp" #include "core/model.hpp" #include "ngraph/function.hpp" #include "ngraph/op/parameter.hpp" #include "onnx_import/core/operator_set.hpp" +#include "openvino/frontend/telemetry_extension.hpp" namespace ngraph { namespace onnx_import { diff --git a/src/frontends/onnx/frontend/src/editor.hpp b/src/frontends/onnx/frontend/src/editor.hpp index 133a6dcc743..d72d03a64ad 100644 --- a/src/frontends/onnx/frontend/src/editor.hpp +++ b/src/frontends/onnx/frontend/src/editor.hpp @@ -4,10 +4,10 @@ #pragma once -#include #include #include #include +#include #include "editor_types.hpp" #include "ngraph/function.hpp" diff --git a/src/frontends/onnx/frontend/src/frontend.cpp b/src/frontends/onnx/frontend/src/frontend.cpp index 6acec3bd5f3..38aca686dde 100644 --- a/src/frontends/onnx/frontend/src/frontend.cpp +++ b/src/frontends/onnx/frontend/src/frontend.cpp @@ -2,82 +2,82 @@ // SPDX-License-Identifier: Apache-2.0 // -#include -#include #include #include -#include -#include #include +#include +#include +#include +#include #include #include #include "onnx_common/onnx_model_validator.hpp" using namespace ov; -using namespace ov::frontend; +using namespace ov::frontend::onnx; -ONNX_FRONTEND_C_API FrontEndVersion GetAPIVersion() { +ONNX_FRONTEND_C_API ov::frontend::FrontEndVersion GetAPIVersion() { return OV_FRONTEND_API_VERSION; } ONNX_FRONTEND_C_API void* GetFrontEndData() { - FrontEndPluginInfo* res = new FrontEndPluginInfo(); + ov::frontend::FrontEndPluginInfo* res = new ov::frontend::FrontEndPluginInfo(); res->m_name = "onnx"; res->m_creator = []() { - return std::make_shared(); + return std::make_shared(); }; return res; } -InputModel::Ptr FrontEndONNX::load_impl(const std::vector& variants) const { - if (variants.size() == 0) { +InputModel::Ptr FrontEnd::load_impl(const std::vector& variants) const { + if (variants.empty()) { return nullptr; } if (variants[0].is()) { const auto path = variants[0].as(); - return std::make_shared(path, m_telemetry); + return std::make_shared(path, m_telemetry); } #if defined(OPENVINO_ENABLE_UNICODE_PATH_SUPPORT) && defined(_WIN32) if (variants[0].is()) { const auto path = variants[0].as(); - return std::make_shared(path, m_telemetry); + return std::make_shared(path, m_telemetry); } #endif if (variants[0].is()) { const auto stream = variants[0].as(); if (variants.size() > 1 && variants[1].is()) { const auto path = variants[0].as(); - return std::make_shared(*stream, path, m_telemetry); + return std::make_shared(*stream, path, m_telemetry); } #if defined(OPENVINO_ENABLE_UNICODE_PATH_SUPPORT) && defined(_WIN32) if (variants.size() > 1 && variants[1].is()) { const auto path = variants[1].as(); - return std::make_shared(*stream, path, m_telemetry); + return std::make_shared(*stream, path, m_telemetry); } #endif - return std::make_shared(*stream, m_telemetry); + return std::make_shared(*stream, m_telemetry); } return nullptr; } -std::shared_ptr FrontEndONNX::convert(InputModel::Ptr model) const { - auto model_onnx = std::dynamic_pointer_cast(model); +std::shared_ptr FrontEnd::convert(InputModel::Ptr model) const { + auto model_onnx = std::dynamic_pointer_cast(model); NGRAPH_CHECK(model_onnx != nullptr, "Invalid input model"); return model_onnx->convert(); } -void FrontEndONNX::convert(std::shared_ptr partially_converted) const { +void FrontEnd::convert(std::shared_ptr partially_converted) const { ngraph::onnx_import::detail::convert_decoded_function(partially_converted); } -std::shared_ptr FrontEndONNX::decode(InputModel::Ptr model) const { - auto model_onnx = std::dynamic_pointer_cast(model); +std::shared_ptr FrontEnd::decode(InputModel::Ptr model) const { + auto model_onnx = std::dynamic_pointer_cast(model); NGRAPH_CHECK(model_onnx != nullptr, "Invalid input model"); return model_onnx->decode(); } -std::string FrontEndONNX::get_name() const { +std::string FrontEnd::get_name() const { return "onnx"; } @@ -103,7 +103,7 @@ private: }; } // namespace -bool FrontEndONNX::supported_impl(const std::vector& variants) const { +bool FrontEnd::supported_impl(const std::vector& variants) const { if (variants.size() == 0) { return false; } @@ -133,7 +133,7 @@ bool FrontEndONNX::supported_impl(const std::vector& variants) const { return false; } -void FrontEndONNX::add_extension(const std::shared_ptr& extension) { +void FrontEnd::add_extension(const std::shared_ptr& extension) { if (auto telemetry = std::dynamic_pointer_cast(extension)) { m_telemetry = telemetry; } diff --git a/src/frontends/onnx/frontend/src/input_model.cpp b/src/frontends/onnx/frontend/src/input_model.cpp index 38fda9ae8a7..8a3fe3ee286 100644 --- a/src/frontends/onnx/frontend/src/input_model.cpp +++ b/src/frontends/onnx/frontend/src/input_model.cpp @@ -4,79 +4,76 @@ #include "input_model.hpp" -#include +#include #include #include "place.hpp" using namespace ov; -using namespace ov::frontend; +using namespace ov::frontend::onnx; NGRAPH_SUPPRESS_DEPRECATED_START -InputModelONNX::InputModelONNX(const std::string& path, - const std::shared_ptr& telemetry) +InputModel::InputModel(const std::string& path, const std::shared_ptr& telemetry) : m_editor{std::make_shared(path, telemetry)} {} #if defined(OPENVINO_ENABLE_UNICODE_PATH_SUPPORT) && defined(_WIN32) -InputModelONNX::InputModelONNX(const std::wstring& path, - const std::shared_ptr& telemetry) +InputModel::InputModel(const std::wstring& path, const std::shared_ptr& telemetry) : m_editor{std::make_shared(path, telemetry)} {} #endif -InputModelONNX::InputModelONNX(std::istream& model_stream, - const std::shared_ptr& telemetry) +InputModel::InputModel(std::istream& model_stream, const std::shared_ptr& telemetry) : m_editor{std::make_shared(model_stream, "", telemetry)} {} -InputModelONNX::InputModelONNX(std::istream& model_stream, - const std::string& path, - const std::shared_ptr& telemetry) +InputModel::InputModel(std::istream& model_stream, + const std::string& path, + const std::shared_ptr& telemetry) : m_editor{std::make_shared(model_stream, path, telemetry)} {} #ifdef OPENVINO_ENABLE_UNICODE_PATH_SUPPORT -InputModelONNX::InputModelONNX(std::istream& model_stream, - const std::wstring& path, - const std::shared_ptr& telemetry) - : InputModelONNX(model_stream, ov::util::wstring_to_string(path), telemetry) {} +InputModel::InputModel(std::istream& model_stream, + const std::wstring& path, + const std::shared_ptr& telemetry) + : InputModel(model_stream, ov::util::wstring_to_string(path), telemetry) {} #endif -std::vector InputModelONNX::get_inputs() const { +std::vector InputModel::get_inputs() const { const auto& inputs = m_editor->model_inputs(); std::vector in_places; in_places.reserve(inputs.size()); for (const auto& input : inputs) { - in_places.push_back(std::make_shared(input, m_editor)); + in_places.push_back(std::make_shared(input, m_editor)); } return in_places; } -std::vector InputModelONNX::get_outputs() const { +std::vector InputModel::get_outputs() const { const auto& outputs = m_editor->model_outputs(); std::vector out_places; out_places.reserve(outputs.size()); for (const auto& output : outputs) { - out_places.push_back(std::make_shared(output, m_editor)); + out_places.push_back(std::make_shared(output, m_editor)); } return out_places; } -Place::Ptr InputModelONNX::get_place_by_tensor_name(const std::string& tensor_name) const { +ov::frontend::Place::Ptr InputModel::get_place_by_tensor_name(const std::string& tensor_name) const { if (m_editor->is_correct_tensor_name(tensor_name)) { - return std::make_shared(tensor_name, m_editor); + return std::make_shared(tensor_name, m_editor); } return nullptr; } -Place::Ptr InputModelONNX::get_place_by_operation_name(const std::string& operation_name) const { +ov::frontend::Place::Ptr InputModel::get_place_by_operation_name(const std::string& operation_name) const { if (m_editor->is_correct_and_unambiguous_node(operation_name)) { const auto node_index = m_editor->get_node_index(onnx_editor::EditorNode{operation_name}); - return std::make_shared(onnx_editor::EditorNode{node_index}, m_editor); + return std::make_shared(onnx_editor::EditorNode{node_index}, m_editor); } return nullptr; } -Place::Ptr InputModelONNX::get_place_by_operation_name_and_input_port(const std::string& operation_name, - int input_port_index) { +ov::frontend::Place::Ptr InputModel::get_place_by_operation_name_and_input_port(const std::string& operation_name, + int input_port_index) { const auto op = get_place_by_operation_name(operation_name); if (op != nullptr) { return op->get_input_port(input_port_index); @@ -84,8 +81,8 @@ Place::Ptr InputModelONNX::get_place_by_operation_name_and_input_port(const std: return nullptr; } -Place::Ptr InputModelONNX::get_place_by_operation_name_and_output_port(const std::string& operation_name, - int output_port_index) { +ov::frontend::Place::Ptr InputModel::get_place_by_operation_name_and_output_port(const std::string& operation_name, + int output_port_index) { const auto op = get_place_by_operation_name(operation_name); if (op != nullptr) { return op->get_output_port(output_port_index); @@ -93,62 +90,62 @@ Place::Ptr InputModelONNX::get_place_by_operation_name_and_output_port(const std return nullptr; } -void InputModelONNX::set_name_for_tensor(Place::Ptr tensor, const std::string& new_name) { - const auto onnx_tensor = std::dynamic_pointer_cast(tensor); +void InputModel::set_name_for_tensor(Place::Ptr tensor, const std::string& new_name) { + const auto onnx_tensor = std::dynamic_pointer_cast(tensor); FRONT_END_GENERAL_CHECK(onnx_tensor, __FUNCTION__, " expects a pointer to place of ONNX tensor type."); onnx_tensor->set_name(new_name); } -void InputModelONNX::set_name_for_operation(Place::Ptr operation, const std::string& new_name) { - const auto onnx_operation = std::dynamic_pointer_cast(operation); +void InputModel::set_name_for_operation(Place::Ptr operation, const std::string& new_name) { + const auto onnx_operation = std::dynamic_pointer_cast(operation); FRONT_END_GENERAL_CHECK(onnx_operation, __FUNCTION__, " expects a pointer to place of ONNX operation type."); onnx_operation->set_name(new_name); } -void InputModelONNX::free_name_for_operation(const std::string& name) { +void InputModel::free_name_for_operation(const std::string& name) { m_editor->clear_nodes_name(name); } -void InputModelONNX::set_name_for_dimension(Place::Ptr tensor, size_t shape_dim_index, const std::string& dim_name) { - const auto onnx_tensor = std::dynamic_pointer_cast(tensor); +void InputModel::set_name_for_dimension(Place::Ptr tensor, size_t shape_dim_index, const std::string& dim_name) { + const auto onnx_tensor = std::dynamic_pointer_cast(tensor); FRONT_END_GENERAL_CHECK(onnx_tensor, __FUNCTION__, " expects a pointer to place of ONNX tensor type."); onnx_tensor->set_name_for_dimension(shape_dim_index, dim_name); } -void InputModelONNX::add_name_for_tensor(Place::Ptr, const std::string&) { +void InputModel::add_name_for_tensor(Place::Ptr, const std::string&) { FRONT_END_THROW("Method add_name_for_tensor is not applicable for ONNX model. ONNX tensor has just one name."); } -void InputModelONNX::free_name_for_tensor(const std::string&) { +void InputModel::free_name_for_tensor(const std::string&) { FRONT_END_THROW("Method free_name_for_tensor is not applicable for ONNX model. ONNX tensor name is an identifier."); } -void InputModelONNX::set_partial_shape(Place::Ptr place, const ngraph::PartialShape& shape) { +void InputModel::set_partial_shape(Place::Ptr place, const ngraph::PartialShape& shape) { std::map m; m[place->get_names()[0]] = shape; m_editor->set_input_shapes(m); } -ngraph::PartialShape InputModelONNX::get_partial_shape(Place::Ptr place) const { +ngraph::PartialShape InputModel::get_partial_shape(Place::Ptr place) const { return m_editor->get_tensor_shape(place->get_names().at(0)); } -void InputModelONNX::set_element_type(Place::Ptr place, const ngraph::element::Type& type) { +void InputModel::set_element_type(Place::Ptr place, const ngraph::element::Type& type) { std::map m; m[place->get_names()[0]] = type; m_editor->set_input_types(m); } -std::shared_ptr InputModelONNX::decode() { +std::shared_ptr InputModel::decode() { return m_editor->decode(); } -std::shared_ptr InputModelONNX::convert() { +std::shared_ptr InputModel::convert() { return m_editor->get_function(); } // Editor features -void InputModelONNX::override_all_outputs(const std::vector& outputs) { +void InputModel::override_all_outputs(const std::vector& outputs) { extract_subgraph({}, outputs); NGRAPH_CHECK(m_editor->model_outputs().size() == outputs.size(), "Unexpected number of outputs after override_all_outputs"); @@ -160,7 +157,7 @@ void InputModelONNX::override_all_outputs(const std::vector& outputs "Not all provided arguments of override_all_outputs are new outputs of the model"); } -void InputModelONNX::override_all_inputs(const std::vector& inputs) { +void InputModel::override_all_inputs(const std::vector& inputs) { const auto outputs_before_extraction = m_editor->model_outputs(); extract_subgraph({inputs}, {}); NGRAPH_CHECK(std::equal(std::begin(outputs_before_extraction), @@ -172,13 +169,13 @@ void InputModelONNX::override_all_inputs(const std::vector& inputs) "Unexpected number of inputs after override_all_inputs"); } -void InputModelONNX::extract_subgraph(const std::vector& inputs, const std::vector& outputs) { +void InputModel::extract_subgraph(const std::vector& inputs, const std::vector& outputs) { std::vector onnx_inputs; onnx_inputs.reserve(inputs.size()); for (const auto& input : inputs) { - if (const auto input_port = std::dynamic_pointer_cast(input)) { + if (const auto input_port = std::dynamic_pointer_cast(input)) { onnx_inputs.push_back(input_port->get_input_edge()); - } else if (const auto tensor = std::dynamic_pointer_cast(input)) { + } else if (const auto tensor = std::dynamic_pointer_cast(input)) { auto name = tensor->get_names()[0]; const auto consumers = m_editor->find_output_consumers(name); std::transform(std::begin(consumers), @@ -187,7 +184,7 @@ void InputModelONNX::extract_subgraph(const std::vector& inputs, con [](const onnx_editor::InputEdge& edge) { return edge; }); - } else if (const auto op = std::dynamic_pointer_cast(input)) { + } else if (const auto op = std::dynamic_pointer_cast(input)) { const auto editor_node = op->get_editor_node(); const auto op_inputs = m_editor->get_input_ports(editor_node); int node_idx = m_editor->get_node_index(editor_node); @@ -204,14 +201,14 @@ void InputModelONNX::extract_subgraph(const std::vector& inputs, con std::vector onnx_outputs; onnx_outputs.reserve(outputs.size()); for (const auto& output : outputs) { - if (const auto output_port = std::dynamic_pointer_cast(output)) { + if (const auto output_port = std::dynamic_pointer_cast(output)) { onnx_outputs.push_back(output_port->get_output_edge()); - } else if (const auto tensor = std::dynamic_pointer_cast(output)) { + } else if (const auto tensor = std::dynamic_pointer_cast(output)) { const auto output_port = tensor->get_producing_port(); - const auto onnx_output_edge = std::dynamic_pointer_cast(output_port); + const auto onnx_output_edge = std::dynamic_pointer_cast(output_port); NGRAPH_CHECK(onnx_output_edge, "Non-onnx output place was passed as extraction subgraph argument"); onnx_outputs.push_back(onnx_output_edge->get_output_edge()); - } else if (const auto op = std::dynamic_pointer_cast(output)) { + } else if (const auto op = std::dynamic_pointer_cast(output)) { const auto editor_node = op->get_editor_node(); const auto op_outputs = m_editor->get_output_ports(editor_node); int node_idx = m_editor->get_node_index(editor_node); diff --git a/src/frontends/onnx/frontend/src/input_model.hpp b/src/frontends/onnx/frontend/src/input_model.hpp index a3875b2adba..1e1c86427ed 100644 --- a/src/frontends/onnx/frontend/src/input_model.hpp +++ b/src/frontends/onnx/frontend/src/input_model.hpp @@ -4,28 +4,30 @@ #pragma once -#include #include #include +#include namespace ov { namespace frontend { -class InputModelONNX : public InputModel { +namespace onnx { + +class InputModel : public ov::frontend::InputModel { public: - InputModelONNX(const std::string& path, const std::shared_ptr& telemetry = {}); + InputModel(const std::string& path, const std::shared_ptr& telemetry = {}); #if defined(OPENVINO_ENABLE_UNICODE_PATH_SUPPORT) && defined(_WIN32) - InputModelONNX(const std::wstring& path, const std::shared_ptr& telemetry = {}); + InputModel(const std::wstring& path, const std::shared_ptr& telemetry = {}); #endif - InputModelONNX(std::istream& model_stream, const std::shared_ptr& telemetry = {}); + InputModel(std::istream& model_stream, const std::shared_ptr& telemetry = {}); // The path can be required even if the model is passed as a stream because it is necessary // for ONNX external data feature - InputModelONNX(std::istream& model_stream, - const std::string& path, - const std::shared_ptr& telemetry = {}); + InputModel(std::istream& model_stream, + const std::string& path, + const std::shared_ptr& telemetry = {}); #ifdef OPENVINO_ENABLE_UNICODE_PATH_SUPPORT - InputModelONNX(std::istream& model_stream, - const std::wstring& path, - const std::shared_ptr& telemetry = {}); + InputModel(std::istream& model_stream, + const std::wstring& path, + const std::shared_ptr& telemetry = {}); #endif std::vector get_inputs() const override; @@ -62,5 +64,7 @@ public: private: std::shared_ptr m_editor; }; + +} // namespace onnx } // namespace frontend } // namespace ov diff --git a/src/frontends/onnx/frontend/src/place.cpp b/src/frontends/onnx/frontend/src/place.cpp index 5c2c25fbb1c..6e73fd450ac 100644 --- a/src/frontends/onnx/frontend/src/place.cpp +++ b/src/frontends/onnx/frontend/src/place.cpp @@ -4,160 +4,157 @@ #include "place.hpp" -#include +#include using namespace ov; -using namespace ov::frontend; +using namespace ov::frontend::onnx; -PlaceInputEdgeONNX::PlaceInputEdgeONNX(const onnx_editor::InputEdge& edge, - std::shared_ptr editor) +PlaceInputEdge::PlaceInputEdge(const onnx_editor::InputEdge& edge, std::shared_ptr editor) : m_edge{edge}, m_editor{std::move(editor)} {} -PlaceInputEdgeONNX::PlaceInputEdgeONNX(onnx_editor::InputEdge&& edge, - std::shared_ptr editor) +PlaceInputEdge::PlaceInputEdge(onnx_editor::InputEdge&& edge, std::shared_ptr editor) : m_edge{std::move(edge)}, m_editor{std::move(editor)} {} -onnx_editor::InputEdge PlaceInputEdgeONNX::get_input_edge() const { +onnx_editor::InputEdge PlaceInputEdge::get_input_edge() const { return m_edge; } -bool PlaceInputEdgeONNX::is_input() const { +bool PlaceInputEdge::is_input() const { return m_editor->is_input(m_edge); } -bool PlaceInputEdgeONNX::is_output() const { +bool PlaceInputEdge::is_output() const { return false; } -bool PlaceInputEdgeONNX::is_equal(Place::Ptr another) const { - if (const auto in_edge = std::dynamic_pointer_cast(another)) { +bool PlaceInputEdge::is_equal(Place::Ptr another) const { + if (const auto in_edge = std::dynamic_pointer_cast(another)) { const auto& editor_edge = in_edge->get_input_edge(); return (editor_edge.m_node_idx == m_edge.m_node_idx) && (editor_edge.m_port_idx == m_edge.m_port_idx); } return false; } -bool PlaceInputEdgeONNX::is_equal_data(Place::Ptr another) const { +bool PlaceInputEdge::is_equal_data(Place::Ptr another) const { return get_source_tensor()->is_equal_data(another); } -Place::Ptr PlaceInputEdgeONNX::get_source_tensor() const { - return std::make_shared(m_editor->get_source_tensor_name(m_edge), m_editor); +ov::frontend::Place::Ptr PlaceInputEdge::get_source_tensor() const { + return std::make_shared(m_editor->get_source_tensor_name(m_edge), m_editor); } -std::vector PlaceInputEdgeONNX::get_consuming_operations() const { - return {std::make_shared(onnx_editor::EditorNode{m_edge.m_node_idx}, m_editor)}; +std::vector PlaceInputEdge::get_consuming_operations() const { + return {std::make_shared(onnx_editor::EditorNode{m_edge.m_node_idx}, m_editor)}; } -Place::Ptr PlaceInputEdgeONNX::get_producing_operation() const { +ov::frontend::Place::Ptr PlaceInputEdge::get_producing_operation() const { return get_source_tensor()->get_producing_operation(); } -Place::Ptr PlaceInputEdgeONNX::get_producing_port() const { +ov::frontend::Place::Ptr PlaceInputEdge::get_producing_port() const { return get_source_tensor()->get_producing_port(); } -PlaceOutputEdgeONNX::PlaceOutputEdgeONNX(const onnx_editor::OutputEdge& edge, - std::shared_ptr editor) +PlaceOutputEdge::PlaceOutputEdge(const onnx_editor::OutputEdge& edge, + std::shared_ptr editor) : m_edge{edge}, m_editor{std::move(editor)} {} -PlaceOutputEdgeONNX::PlaceOutputEdgeONNX(onnx_editor::OutputEdge&& edge, - std::shared_ptr editor) +PlaceOutputEdge::PlaceOutputEdge(onnx_editor::OutputEdge&& edge, std::shared_ptr editor) : m_edge{std::move(edge)}, m_editor{std::move(editor)} {} -onnx_editor::OutputEdge PlaceOutputEdgeONNX::get_output_edge() const { +onnx_editor::OutputEdge PlaceOutputEdge::get_output_edge() const { return m_edge; } -bool PlaceOutputEdgeONNX::is_input() const { +bool PlaceOutputEdge::is_input() const { return false; } -bool PlaceOutputEdgeONNX::is_output() const { +bool PlaceOutputEdge::is_output() const { return m_editor->is_output(m_edge); } -bool PlaceOutputEdgeONNX::is_equal(Place::Ptr another) const { - if (const auto out_edge = std::dynamic_pointer_cast(another)) { +bool PlaceOutputEdge::is_equal(Place::Ptr another) const { + if (const auto out_edge = std::dynamic_pointer_cast(another)) { const auto& editor_edge = out_edge->get_output_edge(); return (editor_edge.m_node_idx == m_edge.m_node_idx) && (editor_edge.m_port_idx == m_edge.m_port_idx); } return false; } -bool PlaceOutputEdgeONNX::is_equal_data(Place::Ptr another) const { +bool PlaceOutputEdge::is_equal_data(Place::Ptr another) const { return get_target_tensor()->is_equal_data(another); } -Place::Ptr PlaceOutputEdgeONNX::get_target_tensor() const { - return std::make_shared(m_editor->get_target_tensor_name(m_edge), m_editor); +ov::frontend::Place::Ptr PlaceOutputEdge::get_target_tensor() const { + return std::make_shared(m_editor->get_target_tensor_name(m_edge), m_editor); } -std::vector PlaceOutputEdgeONNX::get_consuming_ports() const { +std::vector PlaceOutputEdge::get_consuming_ports() const { return get_target_tensor()->get_consuming_ports(); } -Place::Ptr PlaceOutputEdgeONNX::get_producing_operation() const { - return std::make_shared(onnx_editor::EditorNode{m_edge.m_node_idx}, m_editor); +ov::frontend::Place::Ptr PlaceOutputEdge::get_producing_operation() const { + return std::make_shared(onnx_editor::EditorNode{m_edge.m_node_idx}, m_editor); } -std::vector PlaceOutputEdgeONNX::get_consuming_operations() const { +std::vector PlaceOutputEdge::get_consuming_operations() const { return get_target_tensor()->get_consuming_operations(); } -PlaceTensorONNX::PlaceTensorONNX(const std::string& name, std::shared_ptr editor) +PlaceTensor::PlaceTensor(const std::string& name, std::shared_ptr editor) : m_name{name}, m_editor{std::move(editor)} {} -PlaceTensorONNX::PlaceTensorONNX(std::string&& name, std::shared_ptr editor) +PlaceTensor::PlaceTensor(std::string&& name, std::shared_ptr editor) : m_name{std::move(name)}, m_editor{std::move(editor)} {} -std::vector PlaceTensorONNX::get_names() const { +std::vector PlaceTensor::get_names() const { return {m_name}; } -Place::Ptr PlaceTensorONNX::get_producing_port() const { +ov::frontend::Place::Ptr PlaceTensor::get_producing_port() const { FRONT_END_GENERAL_CHECK(!is_input(), "Tensor: " + m_name + " is an input of the model and doesn't have producing port."); - return std::make_shared(m_editor->find_output_edge(m_name), m_editor); + return std::make_shared(m_editor->find_output_edge(m_name), m_editor); } -std::vector PlaceTensorONNX::get_consuming_ports() const { - std::vector ret; +std::vector PlaceTensor::get_consuming_ports() const { + std::vector ret; auto edges = m_editor->find_output_consumers(m_name); std::transform(edges.begin(), edges.end(), std::back_inserter(ret), [this](const onnx_editor::InputEdge& edge) { - return std::make_shared(edge, this->m_editor); + return std::make_shared(edge, this->m_editor); }); return ret; } -Place::Ptr PlaceTensorONNX::get_producing_operation() const { +ov::frontend::Place::Ptr PlaceTensor::get_producing_operation() const { return get_producing_port()->get_producing_operation(); } -bool PlaceTensorONNX::is_input() const { +bool PlaceTensor::is_input() const { const auto inputs = m_editor->model_inputs(); return std::find(std::begin(inputs), std::end(inputs), m_name) != std::end(inputs); } -bool PlaceTensorONNX::is_output() const { +bool PlaceTensor::is_output() const { const auto outputs = m_editor->model_outputs(); return std::find(std::begin(outputs), std::end(outputs), m_name) != std::end(outputs); } -bool PlaceTensorONNX::is_equal(Place::Ptr another) const { - if (const auto tensor = std::dynamic_pointer_cast(another)) { +bool PlaceTensor::is_equal(Place::Ptr another) const { + if (const auto tensor = std::dynamic_pointer_cast(another)) { return m_name == tensor->get_names().at(0); } return false; } -bool PlaceTensorONNX::is_equal_data(Place::Ptr another) const { +bool PlaceTensor::is_equal_data(Place::Ptr another) const { const auto consuming_ports = get_consuming_ports(); const auto eq_to_consuming_port = [&consuming_ports](const Ptr& another) { return std::any_of(consuming_ports.begin(), consuming_ports.end(), [&another](const Ptr& place) { @@ -168,9 +165,9 @@ bool PlaceTensorONNX::is_equal_data(Place::Ptr another) const { eq_to_consuming_port(another); } -std::vector PlaceTensorONNX::get_consuming_operations() const { - std::vector consuming_ports = get_consuming_ports(); - std::vector consuming_ops; +std::vector PlaceTensor::get_consuming_operations() const { + std::vector consuming_ports = get_consuming_ports(); + std::vector consuming_ops; std::transform(std::begin(consuming_ports), std::end(consuming_ports), std::back_inserter(consuming_ops), @@ -181,87 +178,86 @@ std::vector PlaceTensorONNX::get_consuming_operations() const { return consuming_ops; } -void PlaceTensorONNX::set_name(const std::string& new_name) { +void PlaceTensor::set_name(const std::string& new_name) { if (m_name == new_name) return; m_editor->set_tensor_name(m_name, new_name); m_name = new_name; } -void PlaceTensorONNX::set_name_for_dimension(size_t shape_dim_index, const std::string& dim_name) { +void PlaceTensor::set_name_for_dimension(size_t shape_dim_index, const std::string& dim_name) { m_editor->set_name_for_dimension(m_name, shape_dim_index, dim_name); } -PlaceOpONNX::PlaceOpONNX(const onnx_editor::EditorNode& node, std::shared_ptr editor) +PlaceOp::PlaceOp(const onnx_editor::EditorNode& node, std::shared_ptr editor) : m_node{node}, m_editor{std::move(editor)} {} -PlaceOpONNX::PlaceOpONNX(onnx_editor::EditorNode&& node, std::shared_ptr editor) +PlaceOp::PlaceOp(onnx_editor::EditorNode&& node, std::shared_ptr editor) : m_node{std::move(node)}, m_editor{std::move(editor)} {} -std::vector PlaceOpONNX::get_names() const { +std::vector PlaceOp::get_names() const { return {m_node.m_node_name}; } -const onnx_editor::EditorNode& PlaceOpONNX::get_editor_node() const { +const onnx_editor::EditorNode& PlaceOp::get_editor_node() const { return m_node; } -Place::Ptr PlaceOpONNX::get_output_port() const { +ov::frontend::Place::Ptr PlaceOp::get_output_port() const { if (m_editor->get_output_ports(m_node).size() == 1) { return get_output_port(0); } return nullptr; } -Place::Ptr PlaceOpONNX::get_output_port(int output_port_index) const { +ov::frontend::Place::Ptr PlaceOp::get_output_port(int output_port_index) const { if (output_port_index < m_editor->get_output_ports(m_node).size()) { - return std::make_shared( + return std::make_shared( m_editor->find_output_edge(m_node, onnx_editor::EditorOutput{output_port_index}), m_editor); } return nullptr; } -Place::Ptr PlaceOpONNX::get_output_port(const std::string& output_port_name) const { +ov::frontend::Place::Ptr PlaceOp::get_output_port(const std::string& output_port_name) const { const auto output_ports = m_editor->get_output_ports(m_node); if (std::count(std::begin(output_ports), std::end(output_ports), output_port_name) == 1) { - return std::make_shared( + return std::make_shared( m_editor->find_output_edge(m_node, onnx_editor::EditorOutput{output_port_name}), m_editor); } return nullptr; } -Place::Ptr PlaceOpONNX::get_input_port() const { +ov::frontend::Place::Ptr PlaceOp::get_input_port() const { if (m_editor->get_input_ports(m_node).size() == 1) { return get_input_port(0); } return nullptr; } -Place::Ptr PlaceOpONNX::get_input_port(int input_port_index) const { +ov::frontend::Place::Ptr PlaceOp::get_input_port(int input_port_index) const { if (input_port_index < m_editor->get_input_ports(m_node).size()) { - return std::make_shared( + return std::make_shared( m_editor->find_input_edge(m_node, onnx_editor::EditorInput{input_port_index}), m_editor); } return nullptr; } -Place::Ptr PlaceOpONNX::get_input_port(const std::string& input_name) const { +ov::frontend::Place::Ptr PlaceOp::get_input_port(const std::string& input_name) const { const auto input_ports = m_editor->get_input_ports(m_node); if (std::count(std::begin(input_ports), std::end(input_ports), input_name) == 1) { - return std::make_shared( - m_editor->find_input_edge(m_node, onnx_editor::EditorInput{input_name}), - m_editor); + return std::make_shared(m_editor->find_input_edge(m_node, onnx_editor::EditorInput{input_name}), + m_editor); } return nullptr; } -std::vector PlaceOpONNX::get_consuming_ports() const { - std::vector consuming_ports; +std::vector PlaceOp::get_consuming_ports() const { + std::vector consuming_ports; const auto out_ports_size = m_editor->get_output_ports(m_node).size(); for (int out_idx = 0; out_idx < out_ports_size; ++out_idx) { auto consuming_ops_out = get_output_port(out_idx)->get_consuming_ports(); @@ -271,12 +267,12 @@ std::vector PlaceOpONNX::get_consuming_ports() const { } namespace { -std::vector get_consuming_ops(std::vector input_ports) { - std::vector consuming_ops; +std::vector get_consuming_ops(std::vector input_ports) { + std::vector consuming_ops; std::transform(std::begin(input_ports), std::end(input_ports), std::back_inserter(consuming_ops), - [](const Place::Ptr place) { + [](const ov::frontend::Place::Ptr place) { return place->get_consuming_operations().at(0); }); @@ -284,22 +280,22 @@ std::vector get_consuming_ops(std::vector input_ports) { } } // namespace -std::vector PlaceOpONNX::get_consuming_operations() const { - std::vector consuming_ports = get_consuming_ports(); +std::vector PlaceOp::get_consuming_operations() const { + std::vector consuming_ports = get_consuming_ports(); return get_consuming_ops(consuming_ports); } -std::vector PlaceOpONNX::get_consuming_operations(int output_port_index) const { - std::vector consuming_ports = get_output_port(output_port_index)->get_consuming_ports(); +std::vector PlaceOp::get_consuming_operations(int output_port_index) const { + std::vector consuming_ports = get_output_port(output_port_index)->get_consuming_ports(); return get_consuming_ops(consuming_ports); } -std::vector PlaceOpONNX::get_consuming_operations(const std::string& output_port_name) const { - std::vector consuming_ports = get_output_port(output_port_name)->get_consuming_ports(); +std::vector PlaceOp::get_consuming_operations(const std::string& output_port_name) const { + std::vector consuming_ports = get_output_port(output_port_name)->get_consuming_ports(); return get_consuming_ops(consuming_ports); } -Place::Ptr PlaceOpONNX::get_producing_operation() const { +ov::frontend::Place::Ptr PlaceOp::get_producing_operation() const { const auto input_port = get_input_port(); if (input_port != nullptr) { return input_port->get_producing_operation(); @@ -307,7 +303,7 @@ Place::Ptr PlaceOpONNX::get_producing_operation() const { return nullptr; } -Place::Ptr PlaceOpONNX::get_producing_operation(int input_port_index) const { +ov::frontend::Place::Ptr PlaceOp::get_producing_operation(int input_port_index) const { const auto input_port = get_input_port(input_port_index); if (input_port != nullptr) { return input_port->get_producing_operation(); @@ -315,7 +311,7 @@ Place::Ptr PlaceOpONNX::get_producing_operation(int input_port_index) const { return nullptr; } -Place::Ptr PlaceOpONNX::get_producing_operation(const std::string& input_port_name) const { +ov::frontend::Place::Ptr PlaceOp::get_producing_operation(const std::string& input_port_name) const { const auto input_port = get_input_port(input_port_name); if (input_port != nullptr) { return input_port->get_producing_operation(); @@ -323,8 +319,8 @@ Place::Ptr PlaceOpONNX::get_producing_operation(const std::string& input_port_na return nullptr; } -bool PlaceOpONNX::is_equal(Place::Ptr another) const { - if (const auto place_op = std::dynamic_pointer_cast(another)) { +bool PlaceOp::is_equal(Place::Ptr another) const { + if (const auto place_op = std::dynamic_pointer_cast(another)) { const auto& another_node = place_op->get_editor_node(); if (m_editor->is_correct_and_unambiguous_node(m_node) || m_editor->is_correct_and_unambiguous_node(another_node)) { @@ -334,7 +330,7 @@ bool PlaceOpONNX::is_equal(Place::Ptr another) const { return false; } -Place::Ptr PlaceOpONNX::get_target_tensor() const { +ov::frontend::Place::Ptr PlaceOp::get_target_tensor() const { const auto output_port = get_output_port(); if (output_port != nullptr) { return output_port->get_target_tensor(); @@ -342,7 +338,7 @@ Place::Ptr PlaceOpONNX::get_target_tensor() const { return nullptr; } -Place::Ptr PlaceOpONNX::get_target_tensor(int output_port_index) const { +ov::frontend::Place::Ptr PlaceOp::get_target_tensor(int output_port_index) const { const auto output_port = get_output_port(output_port_index); if (output_port != nullptr) { return output_port->get_target_tensor(); @@ -350,7 +346,7 @@ Place::Ptr PlaceOpONNX::get_target_tensor(int output_port_index) const { return nullptr; } -Place::Ptr PlaceOpONNX::get_target_tensor(const std::string& output_name) const { +ov::frontend::Place::Ptr PlaceOp::get_target_tensor(const std::string& output_name) const { const auto output_port = get_output_port(output_name); if (output_port != nullptr) { return output_port->get_target_tensor(); @@ -358,7 +354,7 @@ Place::Ptr PlaceOpONNX::get_target_tensor(const std::string& output_name) const return nullptr; } -Place::Ptr PlaceOpONNX::get_source_tensor() const { +ov::frontend::Place::Ptr PlaceOp::get_source_tensor() const { const auto input_port = get_input_port(); if (input_port != nullptr) { return input_port->get_source_tensor(); @@ -366,7 +362,7 @@ Place::Ptr PlaceOpONNX::get_source_tensor() const { return nullptr; } -Place::Ptr PlaceOpONNX::get_source_tensor(int input_port_index) const { +ov::frontend::Place::Ptr PlaceOp::get_source_tensor(int input_port_index) const { const auto input_port = get_input_port(input_port_index); if (input_port != nullptr) { return input_port->get_source_tensor(); @@ -374,7 +370,7 @@ Place::Ptr PlaceOpONNX::get_source_tensor(int input_port_index) const { return nullptr; } -Place::Ptr PlaceOpONNX::get_source_tensor(const std::string& input_name) const { +ov::frontend::Place::Ptr PlaceOp::get_source_tensor(const std::string& input_name) const { const auto input_port = get_input_port(input_name); if (input_port != nullptr) { return input_port->get_source_tensor(); @@ -382,15 +378,15 @@ Place::Ptr PlaceOpONNX::get_source_tensor(const std::string& input_name) const { return nullptr; } -bool PlaceOpONNX::is_input() const { +bool PlaceOp::is_input() const { return false; } -bool PlaceOpONNX::is_output() const { +bool PlaceOp::is_output() const { return false; } -void PlaceOpONNX::set_name(const std::string& new_name) { +void PlaceOp::set_name(const std::string& new_name) { m_editor->set_node_name(m_node, new_name); m_node.m_node_name = new_name; } diff --git a/src/frontends/onnx/frontend/src/place.hpp b/src/frontends/onnx/frontend/src/place.hpp index 063a18867d8..02bd737e16f 100644 --- a/src/frontends/onnx/frontend/src/place.hpp +++ b/src/frontends/onnx/frontend/src/place.hpp @@ -4,17 +4,19 @@ #pragma once -#include #include #include +#include #include namespace ov { namespace frontend { -class PlaceInputEdgeONNX : public Place { +namespace onnx { + +class PlaceInputEdge : public Place { public: - PlaceInputEdgeONNX(const onnx_editor::InputEdge& edge, std::shared_ptr editor); - PlaceInputEdgeONNX(onnx_editor::InputEdge&& edge, std::shared_ptr editor); + PlaceInputEdge(const onnx_editor::InputEdge& edge, std::shared_ptr editor); + PlaceInputEdge(onnx_editor::InputEdge&& edge, std::shared_ptr editor); // internal usage onnx_editor::InputEdge get_input_edge() const; @@ -34,10 +36,10 @@ private: const std::shared_ptr m_editor; }; -class PlaceOutputEdgeONNX : public Place { +class PlaceOutputEdge : public Place { public: - PlaceOutputEdgeONNX(const onnx_editor::OutputEdge& edge, std::shared_ptr editor); - PlaceOutputEdgeONNX(onnx_editor::OutputEdge&& edge, std::shared_ptr editor); + PlaceOutputEdge(const onnx_editor::OutputEdge& edge, std::shared_ptr editor); + PlaceOutputEdge(onnx_editor::OutputEdge&& edge, std::shared_ptr editor); // internal usage onnx_editor::OutputEdge get_output_edge() const; @@ -57,10 +59,10 @@ private: std::shared_ptr m_editor; }; -class PlaceTensorONNX : public Place { +class PlaceTensor : public Place { public: - PlaceTensorONNX(const std::string& name, std::shared_ptr editor); - PlaceTensorONNX(std::string&& name, std::shared_ptr editor); + PlaceTensor(const std::string& name, std::shared_ptr editor); + PlaceTensor(std::string&& name, std::shared_ptr editor); // external usage std::vector get_names() const override; @@ -81,10 +83,10 @@ private: std::shared_ptr m_editor; }; -class PlaceOpONNX : public Place { +class PlaceOp : public Place { public: - PlaceOpONNX(const onnx_editor::EditorNode& node, std::shared_ptr editor); - PlaceOpONNX(onnx_editor::EditorNode&& node, std::shared_ptr editor); + PlaceOp(const onnx_editor::EditorNode& node, std::shared_ptr editor); + PlaceOp(onnx_editor::EditorNode&& node, std::shared_ptr editor); std::vector get_names() const override; // internal usage @@ -125,5 +127,7 @@ private: onnx_editor::EditorNode m_node; std::shared_ptr m_editor; }; + +} // namespace onnx } // namespace frontend } // namespace ov diff --git a/src/frontends/onnx/frontend/src/utils/onnx_internal.hpp b/src/frontends/onnx/frontend/src/utils/onnx_internal.hpp index 9813e82fa4b..dba12e3b2c6 100644 --- a/src/frontends/onnx/frontend/src/utils/onnx_internal.hpp +++ b/src/frontends/onnx/frontend/src/utils/onnx_internal.hpp @@ -7,8 +7,8 @@ #include #include -#include "common/telemetry_extension.hpp" #include "ngraph/function.hpp" +#include "openvino/frontend/telemetry_extension.hpp" namespace ONNX_NAMESPACE { class ModelProto; diff --git a/src/frontends/paddlepaddle/CMakeLists.txt b/src/frontends/paddlepaddle/CMakeLists.txt index b3d46d67d1a..d6c5e4999f5 100644 --- a/src/frontends/paddlepaddle/CMakeLists.txt +++ b/src/frontends/paddlepaddle/CMakeLists.txt @@ -2,8 +2,8 @@ # SPDX-License-Identifier: Apache-2.0 # +# TODO: Add LINKABLE_FRONTEND option when tensorflow frontend directory is moved to openvino folder ov_add_frontend(NAME paddlepaddle - LINKABLE_FRONTEND PROTOBUF_LITE FILEDESCRIPTION "FrontEnd to load and convert PaddlePaddle file format" LINK_LIBRARIES inference_engine_transformations) diff --git a/src/frontends/paddlepaddle/include/paddlepaddle_frontend/frontend.hpp b/src/frontends/paddlepaddle/include/paddlepaddle_frontend/frontend.hpp index 2b10a622ff7..0cabd02cd2b 100644 --- a/src/frontends/paddlepaddle/include/paddlepaddle_frontend/frontend.hpp +++ b/src/frontends/paddlepaddle/include/paddlepaddle_frontend/frontend.hpp @@ -4,8 +4,8 @@ #pragma once -#include -#include +#include +#include #include "exceptions.hpp" #include "model.hpp" diff --git a/src/frontends/paddlepaddle/include/paddlepaddle_frontend/model.hpp b/src/frontends/paddlepaddle/include/paddlepaddle_frontend/model.hpp index 8cc63a5540a..ba8659e04b4 100644 --- a/src/frontends/paddlepaddle/include/paddlepaddle_frontend/model.hpp +++ b/src/frontends/paddlepaddle/include/paddlepaddle_frontend/model.hpp @@ -4,8 +4,8 @@ #pragma once -#include -#include +#include +#include #include "paddlepaddle_frontend/utility.hpp" diff --git a/src/frontends/paddlepaddle/include/paddlepaddle_frontend/place.hpp b/src/frontends/paddlepaddle/include/paddlepaddle_frontend/place.hpp index e41e39564db..d99a9db6f4d 100644 --- a/src/frontends/paddlepaddle/include/paddlepaddle_frontend/place.hpp +++ b/src/frontends/paddlepaddle/include/paddlepaddle_frontend/place.hpp @@ -4,9 +4,9 @@ #pragma once -#include +#include -#include "paddlepaddle_frontend/exceptions.hpp" +#include "exceptions.hpp" namespace paddle { namespace framework { diff --git a/src/frontends/paddlepaddle/include/paddlepaddle_frontend/utility.hpp b/src/frontends/paddlepaddle/include/paddlepaddle_frontend/utility.hpp index 8d61af08ff6..a9c273cb392 100644 --- a/src/frontends/paddlepaddle/include/paddlepaddle_frontend/utility.hpp +++ b/src/frontends/paddlepaddle/include/paddlepaddle_frontend/utility.hpp @@ -4,7 +4,7 @@ #pragma once -#include +#include #ifdef OPENVINO_STATIC_LIBRARY # define PDPD_API diff --git a/src/frontends/paddlepaddle/src/exceptions.cpp b/src/frontends/paddlepaddle/src/exception.cpp similarity index 90% rename from src/frontends/paddlepaddle/src/exceptions.cpp rename to src/frontends/paddlepaddle/src/exception.cpp index 0d172c6f4b5..ddd097ba5ef 100644 --- a/src/frontends/paddlepaddle/src/exceptions.cpp +++ b/src/frontends/paddlepaddle/src/exception.cpp @@ -2,8 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "paddlepaddle_frontend/exceptions.hpp" - +#include "exceptions.hpp" #include "node_context.hpp" namespace ov { diff --git a/src/frontends/paddlepaddle/include/paddlepaddle_frontend/exceptions.hpp b/src/frontends/paddlepaddle/src/exceptions.hpp similarity index 96% rename from src/frontends/paddlepaddle/include/paddlepaddle_frontend/exceptions.hpp rename to src/frontends/paddlepaddle/src/exceptions.hpp index 2501ffafa35..78ce6937d83 100644 --- a/src/frontends/paddlepaddle/include/paddlepaddle_frontend/exceptions.hpp +++ b/src/frontends/paddlepaddle/src/exceptions.hpp @@ -4,7 +4,7 @@ #pragma once -#include +#include namespace ov { namespace frontend { diff --git a/src/frontends/paddlepaddle/src/frontend.cpp b/src/frontends/paddlepaddle/src/frontend.cpp index b9df7dce3a1..a552dcaa06a 100644 --- a/src/frontends/paddlepaddle/src/frontend.cpp +++ b/src/frontends/paddlepaddle/src/frontend.cpp @@ -10,11 +10,11 @@ #include #include "decoder.hpp" +#include "exceptions.hpp" #include "framework.pb.h" #include "node_context.hpp" #include "op_table.hpp" #include "openvino/opsets/opset7.hpp" -#include "paddlepaddle_frontend/exceptions.hpp" #include "paddlepaddle_frontend/model.hpp" #include "paddlepaddle_frontend/place.hpp" #include "pdpd_fw_node.hpp" diff --git a/src/frontends/paddlepaddle/src/model.cpp b/src/frontends/paddlepaddle/src/model.cpp index e089e836048..48ccef9643e 100644 --- a/src/frontends/paddlepaddle/src/model.cpp +++ b/src/frontends/paddlepaddle/src/model.cpp @@ -8,10 +8,10 @@ #include #include "decoder.hpp" +#include "exceptions.hpp" #include "framework.pb.h" #include "node_context.hpp" #include "openvino/opsets/opset7.hpp" -#include "paddlepaddle_frontend/exceptions.hpp" #include "paddlepaddle_frontend/place.hpp" #include "pdpd_utils.hpp" diff --git a/src/frontends/paddlepaddle/src/node_context.hpp b/src/frontends/paddlepaddle/src/node_context.hpp index 8b363d1f6ba..6dfe727f6ee 100644 --- a/src/frontends/paddlepaddle/src/node_context.hpp +++ b/src/frontends/paddlepaddle/src/node_context.hpp @@ -3,9 +3,9 @@ // #pragma once +#include "exceptions.hpp" #include "ngraph/compatibility.hpp" #include "openvino/core/any.hpp" -#include "paddlepaddle_frontend/exceptions.hpp" #include "paddlepaddle_frontend/utility.hpp" namespace ov { diff --git a/src/frontends/paddlepaddle/src/pdpd_utils.hpp b/src/frontends/paddlepaddle/src/pdpd_utils.hpp index 6f98dcd16db..5fcaaa6c188 100644 --- a/src/frontends/paddlepaddle/src/pdpd_utils.hpp +++ b/src/frontends/paddlepaddle/src/pdpd_utils.hpp @@ -4,7 +4,7 @@ #pragma once -#include "common/frontend_exceptions.hpp" +#include "openvino/frontend/exception.hpp" #include "openvino/opsets/opset6.hpp" namespace ov { diff --git a/src/frontends/tensorflow/CMakeLists.txt b/src/frontends/tensorflow/CMakeLists.txt index 1e049c6d66d..b285b4ed459 100644 --- a/src/frontends/tensorflow/CMakeLists.txt +++ b/src/frontends/tensorflow/CMakeLists.txt @@ -2,8 +2,8 @@ # SPDX-License-Identifier: Apache-2.0 # +# TODO: Add LINKABLE_FRONTEND option when tensorflow frontend directory is moved to openvino folder ov_add_frontend(NAME tensorflow - LINKABLE_FRONTEND SKIP_INSTALL FILEDESCRIPTION "FrontEnd to load and convert TensorFlow file format" LINK_LIBRARIES openvino::util) diff --git a/src/frontends/tensorflow/include/tensorflow_frontend/frontend.hpp b/src/frontends/tensorflow/include/tensorflow_frontend/frontend.hpp index 14c8ea8922c..8c53ecb4a9d 100644 --- a/src/frontends/tensorflow/include/tensorflow_frontend/frontend.hpp +++ b/src/frontends/tensorflow/include/tensorflow_frontend/frontend.hpp @@ -7,11 +7,11 @@ #include #include -#include "common/frontend.hpp" -#include "common/input_model.hpp" -#include "common/telemetry_extension.hpp" #include "openvino/core/any.hpp" #include "openvino/core/node_vector.hpp" +#include "openvino/frontend/frontend.hpp" +#include "openvino/frontend/input_model.hpp" +#include "openvino/frontend/telemetry_extension.hpp" #include "tensorflow_frontend/utility.hpp" namespace ov { diff --git a/src/frontends/tensorflow/include/tensorflow_frontend/utility.hpp b/src/frontends/tensorflow/include/tensorflow_frontend/utility.hpp index 2e6c3abf6b2..1990785fc30 100644 --- a/src/frontends/tensorflow/include/tensorflow_frontend/utility.hpp +++ b/src/frontends/tensorflow/include/tensorflow_frontend/utility.hpp @@ -4,7 +4,7 @@ #pragma once -#include "common/frontend_exceptions.hpp" +#include "openvino/frontend/exception.hpp" #ifdef OPENVINO_STATIC_LIBRARY # define TF_API diff --git a/src/frontends/tensorflow/src/exceptions.hpp b/src/frontends/tensorflow/src/exceptions.hpp index 0a72e27ad7e..d43995a765d 100644 --- a/src/frontends/tensorflow/src/exceptions.hpp +++ b/src/frontends/tensorflow/src/exceptions.hpp @@ -3,8 +3,7 @@ // #pragma once -#include "common/frontend_exceptions.hpp" -#include "openvino/core/node.hpp" +#include "openvino/frontend/exception.hpp" namespace ov { namespace frontend { diff --git a/src/frontends/tensorflow/src/model.cpp b/src/frontends/tensorflow/src/model.cpp index e3e1aa76531..3fc273d38cd 100644 --- a/src/frontends/tensorflow/src/model.cpp +++ b/src/frontends/tensorflow/src/model.cpp @@ -7,8 +7,8 @@ #include #include -#include "common/frontend_exceptions.hpp" #include "node_context.hpp" +#include "openvino/frontend/exception.hpp" #include "openvino/opsets/opset7.hpp" #include "place.hpp" #include "tensorflow_frontend/graph_iterator.hpp" diff --git a/src/frontends/tensorflow/src/model.hpp b/src/frontends/tensorflow/src/model.hpp index d2edc1dc5d3..6c88056131e 100644 --- a/src/frontends/tensorflow/src/model.hpp +++ b/src/frontends/tensorflow/src/model.hpp @@ -4,9 +4,9 @@ #pragma once -#include "common/input_model.hpp" -#include "common/place.hpp" -#include "common/telemetry_extension.hpp" +#include "openvino/frontend/input_model.hpp" +#include "openvino/frontend/place.hpp" +#include "openvino/frontend/telemetry_extension.hpp" #include "tensorflow_frontend/graph_iterator.hpp" namespace ov { diff --git a/src/frontends/tensorflow/src/place.cpp b/src/frontends/tensorflow/src/place.cpp index 8b7a3f9ac55..bdddede95f7 100644 --- a/src/frontends/tensorflow/src/place.cpp +++ b/src/frontends/tensorflow/src/place.cpp @@ -4,9 +4,9 @@ #include "place.hpp" -#include "common/frontend_exceptions.hpp" #include "node_context.hpp" #include "op_def.pb.h" +#include "openvino/frontend/exception.hpp" #include "tensor.pb.h" #include "types.pb.h" diff --git a/src/frontends/tensorflow/src/place.hpp b/src/frontends/tensorflow/src/place.hpp index 733e0c25262..f6197ee3a90 100644 --- a/src/frontends/tensorflow/src/place.hpp +++ b/src/frontends/tensorflow/src/place.hpp @@ -4,7 +4,7 @@ #pragma once -#include "common/frontend.hpp" +#include "openvino/frontend/frontend.hpp" #include "tensorflow_frontend/decoder.hpp" namespace ov { diff --git a/src/frontends/tensorflow/src/tensorflow.cpp b/src/frontends/tensorflow/src/tensorflow.cpp index 24824017e42..e462ef7b92e 100644 --- a/src/frontends/tensorflow/src/tensorflow.cpp +++ b/src/frontends/tensorflow/src/tensorflow.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "manager.hpp" +#include "openvino/frontend/manager.hpp" #include "tensorflow_frontend/frontend.hpp" TF_C_API ov::frontend::FrontEndVersion GetAPIVersion() { diff --git a/src/inference/src/ie_network_reader.cpp b/src/inference/src/ie_network_reader.cpp index 6fa28421f66..e7bc26c8e99 100644 --- a/src/inference/src/ie_network_reader.cpp +++ b/src/inference/src/ie_network_reader.cpp @@ -18,7 +18,7 @@ #include "ie_common.h" #include "ie_icnn_network.hpp" #include "ie_input_info.hpp" -#include "manager.hpp" +#include "openvino/frontend/manager.hpp" #ifdef ENABLE_IR_V7_READER # include "legacy/ie_ir_version.hpp" #endif diff --git a/src/tests/functional/inference_engine/ir_serialization/partial_shape_deserialization.cpp b/src/tests/functional/inference_engine/ir_serialization/partial_shape_deserialization.cpp index c9eddbf6e21..4f1e879c966 100644 --- a/src/tests/functional/inference_engine/ir_serialization/partial_shape_deserialization.cpp +++ b/src/tests/functional/inference_engine/ir_serialization/partial_shape_deserialization.cpp @@ -7,7 +7,7 @@ #include #include #include -#include "manager.hpp" +#include "openvino/frontend/manager.hpp" #include "graph_comparator.hpp" #include "ie_blob.h" diff --git a/src/tests/functional/inference_engine/ir_serialization/partial_shape_serialization.cpp b/src/tests/functional/inference_engine/ir_serialization/partial_shape_serialization.cpp index 445c672ce69..7303fce5346 100644 --- a/src/tests/functional/inference_engine/ir_serialization/partial_shape_serialization.cpp +++ b/src/tests/functional/inference_engine/ir_serialization/partial_shape_serialization.cpp @@ -9,7 +9,7 @@ #include #include #include -#include "manager.hpp" +#include "openvino/frontend/manager.hpp" #include "common_test_utils/ngraph_test_utils.hpp" #include "ngraph/ngraph.hpp" diff --git a/src/tests/functional/inference_engine/ir_serialization/rt_info_deserialization.cpp b/src/tests/functional/inference_engine/ir_serialization/rt_info_deserialization.cpp index 4a2f8e5e775..ff203e3a1fa 100644 --- a/src/tests/functional/inference_engine/ir_serialization/rt_info_deserialization.cpp +++ b/src/tests/functional/inference_engine/ir_serialization/rt_info_deserialization.cpp @@ -15,7 +15,7 @@ #include #include #include -#include "manager.hpp" +#include "openvino/frontend/manager.hpp" #include "graph_comparator.hpp" #include "ie_blob.h" #include "ie_precision.hpp" diff --git a/src/tests/functional/inference_engine/ir_serialization/rt_info_serialization.cpp b/src/tests/functional/inference_engine/ir_serialization/rt_info_serialization.cpp index d72ad3b4a1a..fcb884ca442 100644 --- a/src/tests/functional/inference_engine/ir_serialization/rt_info_serialization.cpp +++ b/src/tests/functional/inference_engine/ir_serialization/rt_info_serialization.cpp @@ -15,7 +15,7 @@ #include #include #include -#include "manager.hpp" +#include "openvino/frontend/manager.hpp" using namespace ngraph; diff --git a/tests/fuzz/src/import_pdpd-fuzzer.cc b/tests/fuzz/src/import_pdpd-fuzzer.cc index ae85d3c3f42..5cb685847f9 100644 --- a/tests/fuzz/src/import_pdpd-fuzzer.cc +++ b/tests/fuzz/src/import_pdpd-fuzzer.cc @@ -1,7 +1,7 @@ // Copyright (C) 2018-2021 Intel Corporation // SPDX-License-Identifier: Apache-2.0 // -#include "manager.hpp" +#include "openvino/frontend/manager.hpp" #include "ngraph/ngraph.hpp" #include "tokenizer.h" #include diff --git a/tools/mo/unit_tests/mock_mo_frontend/mock_mo_ov_frontend/mock_mo_frontend.cpp b/tools/mo/unit_tests/mock_mo_frontend/mock_mo_ov_frontend/mock_mo_frontend.cpp index e23910ef623..2820d8e8ebd 100644 --- a/tools/mo/unit_tests/mock_mo_frontend/mock_mo_ov_frontend/mock_mo_frontend.cpp +++ b/tools/mo/unit_tests/mock_mo_frontend/mock_mo_ov_frontend/mock_mo_frontend.cpp @@ -3,9 +3,9 @@ // #include "mock_mo_frontend.hpp" -#include "common/frontend_defs.hpp" -#include "manager.hpp" #include "ngraph/visibility.hpp" +#include "openvino/frontend/manager.hpp" +#include "openvino/frontend/visibility.hpp" using namespace ngraph; using namespace ov::frontend; diff --git a/tools/mo/unit_tests/mock_mo_frontend/mock_mo_ov_frontend/mock_mo_frontend.hpp b/tools/mo/unit_tests/mock_mo_frontend/mock_mo_ov_frontend/mock_mo_frontend.hpp index 553870dd423..2a0c6dddab4 100644 --- a/tools/mo/unit_tests/mock_mo_frontend/mock_mo_ov_frontend/mock_mo_frontend.hpp +++ b/tools/mo/unit_tests/mock_mo_frontend/mock_mo_ov_frontend/mock_mo_frontend.hpp @@ -4,9 +4,9 @@ #pragma once -#include "common/frontend_defs.hpp" -#include "manager.hpp" #include "ngraph/visibility.hpp" +#include "openvino/frontend/manager.hpp" +#include "openvino/frontend/visibility.hpp" // Defined if we are building the plugin DLL (instead of using it) #ifdef mock_mo_ov_frontend_EXPORTS