LTO for frontends and python (#12890)
This commit is contained in:
1 parent
57a9d7ce7b
commit
836765874e
14 files changed
+27
-15
No files matched your search
@@ -173,6 +173,10 @@ macro(ov_add_frontend)
|
||||
"-DGetAPIVersion=GetAPIVersion${OV_FRONTEND_NAME}")
|
||||
endif()
|
||||
|
||||
# enable LTO
|
||||
set_target_properties(${TARGET_NAME} PROPERTIES
|
||||
INTERPROCEDURAL_OPTIMIZATION_RELEASE ${ENABLE_LTO})
|
||||
|
||||
if(OV_FRONTEND_SKIP_NCC_STYLE)
|
||||
# frontend's CMakeLists.txt must define its own custom 'ov_ncc_naming_style' step
|
||||
else()
|
||||
|
||||
@@ -21,6 +21,7 @@ set_source_files_properties(${PYX_SOURCES} PROPERTIES CYTHON_IS_CXX ON)
|
||||
|
||||
cython_add_module(${TARGET_NAME} ${SOURCES})
|
||||
ov_python_disable_intel_warnings(${TARGET_NAME})
|
||||
set_target_properties(${TARGET_NAME} PROPERTIES INTERPROCEDURAL_OPTIMIZATION_RELEASE ${ENABLE_LTO})
|
||||
|
||||
set(INSTALLED_TARGETS ${TARGET_NAME})
|
||||
list(REMOVE_ITEM PYX_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/ie_api.pyx")
|
||||
@@ -34,6 +35,7 @@ foreach(PYX_FILE IN LISTS PYX_SOURCES)
|
||||
target_link_libraries(${PYX_NAME} PRIVATE openvino::runtime)
|
||||
list(APPEND INSTALLED_TARGETS ${PYX_NAME})
|
||||
ie_python_minimal_api(${PYX_NAME})
|
||||
set_target_properties(${PYX_NAME} PROPERTIES INTERPROCEDURAL_OPTIMIZATION_RELEASE ${ENABLE_LTO})
|
||||
endforeach()
|
||||
|
||||
if(COMMAND ie_add_vs_version_file)
|
||||
|
||||
@@ -52,12 +52,14 @@ endif()
|
||||
|
||||
file(GLOB_RECURSE SOURCES *.cpp)
|
||||
|
||||
pybind11_add_module(_${PROJECT_NAME} MODULE ${SOURCES})
|
||||
pybind11_add_module(_${PROJECT_NAME} MODULE NO_EXTRAS ${SOURCES})
|
||||
|
||||
target_include_directories(_${PROJECT_NAME} PRIVATE "../" "${OpenVINO_SOURCE_DIR}/src/common/transformations/include")
|
||||
|
||||
target_link_libraries(_${PROJECT_NAME} PRIVATE openvino::runtime)
|
||||
|
||||
set_target_properties(_${PROJECT_NAME} PROPERTIES INTERPROCEDURAL_OPTIMIZATION_RELEASE ${ENABLE_LTO})
|
||||
|
||||
# perform copy
|
||||
if(OpenVINO_SOURCE_DIR)
|
||||
add_custom_command(TARGET _${PROJECT_NAME}
|
||||
|
||||
@@ -65,7 +65,7 @@ endif()
|
||||
file(GLOB_RECURSE SOURCES core/*.cpp graph/*.cpp frontend/*.cpp utils/*cpp pyopenvino.cpp)
|
||||
list(FILTER SOURCES EXCLUDE REGEX frontend/onnx|tensorflow|paddle/* )
|
||||
|
||||
pybind11_add_module(${PROJECT_NAME} MODULE ${SOURCES})
|
||||
pybind11_add_module(${PROJECT_NAME} MODULE NO_EXTRAS ${SOURCES})
|
||||
|
||||
if(TARGET offline_transformations)
|
||||
set(OFFLINE_TRANSFORMATIONS_LIB offline_transformations)
|
||||
@@ -77,6 +77,7 @@ endif()
|
||||
|
||||
target_include_directories(${PROJECT_NAME} PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/..")
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE openvino::runtime::dev openvino::runtime ${OFFLINE_TRANSFORMATIONS_LIB})
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES INTERPROCEDURAL_OPTIMIZATION_RELEASE ${ENABLE_LTO})
|
||||
|
||||
addVersionDefines(pyopenvino.cpp CI_BUILD_NUMBER)
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ function(frontend_module TARGET FRAMEWORK INSTALL_COMPONENT)
|
||||
|
||||
# create target
|
||||
|
||||
pybind11_add_module(${TARGET_NAME} MODULE ${SOURCES})
|
||||
pybind11_add_module(${TARGET_NAME} MODULE NO_EXTRAS ${SOURCES})
|
||||
|
||||
add_dependencies(${TARGET_NAME} pyopenvino)
|
||||
add_dependencies(py_ov_frontends ${TARGET_NAME})
|
||||
@@ -28,6 +28,8 @@ function(frontend_module TARGET FRAMEWORK INSTALL_COMPONENT)
|
||||
"${PYTHON_SOURCE_DIR}/pyopenvino/utils/")
|
||||
target_link_libraries(${TARGET_NAME} PRIVATE openvino::runtime openvino::frontend::${FRAMEWORK})
|
||||
|
||||
set_target_properties(${TARGET_NAME} PROPERTIES INTERPROCEDURAL_OPTIMIZATION_RELEASE ${ENABLE_LTO})
|
||||
|
||||
# Compatibility with python 2.7 which has deprecated "register" specifier
|
||||
if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
|
||||
target_compile_options(${TARGET_NAME} PRIVATE "-Wno-error=register")
|
||||
|
||||
@@ -18,6 +18,7 @@ namespace py = pybind11;
|
||||
|
||||
using namespace ov::frontend::tensorflow;
|
||||
|
||||
|
||||
void regclass_frontend_tensorflow_ConversionExtension(py::module m) {
|
||||
py::class_<ConversionExtension, ConversionExtension::Ptr, ov::frontend::ConversionExtensionBase> _ext(
|
||||
m,
|
||||
|
||||
@@ -14,7 +14,7 @@ file(GLOB SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/test_utils.cpp)
|
||||
|
||||
# create target
|
||||
|
||||
pybind11_add_module(${TARGET_NAME} MODULE ${SOURCES})
|
||||
pybind11_add_module(${TARGET_NAME} MODULE NO_EXTRAS ${SOURCES})
|
||||
|
||||
add_dependencies(${TARGET_NAME} pyopenvino)
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ set(PYBIND_FE_SRC ${CMAKE_CURRENT_SOURCE_DIR}/pyngraph_mock_frontend_api.cpp)
|
||||
|
||||
source_group("src" FILES ${PYBIND_FE_SRC})
|
||||
|
||||
pybind11_add_module(${PYBIND_FE_NAME} MODULE ${PYBIND_FE_SRC})
|
||||
pybind11_add_module(${PYBIND_FE_NAME} MODULE NO_EXTRAS ${PYBIND_FE_SRC})
|
||||
|
||||
set(DEPENDENCIES openvino_mock_py_frontend openvino::runtime)
|
||||
set(DEFINITIONS IMPLEMENT_OPENVINO_API)
|
||||
|
||||
@@ -2,9 +2,8 @@
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
if(ENABLE_LTO)
|
||||
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE ON)
|
||||
endif()
|
||||
# enable LTO globally for all libraries below
|
||||
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE ${ENABLE_LTO})
|
||||
|
||||
add_definitions(-DIN_OV_CORE_LIBRARY)
|
||||
|
||||
|
||||
@@ -2,10 +2,6 @@
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
if(ENABLE_LTO)
|
||||
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE ON)
|
||||
endif()
|
||||
|
||||
add_subdirectory(common)
|
||||
|
||||
if(ENABLE_TESTS)
|
||||
|
||||
@@ -38,6 +38,8 @@ if(NOT BUILD_SHARED_LIBS)
|
||||
endif()
|
||||
|
||||
target_link_libraries(${TARGET_NAME}_obj PRIVATE openvino::util openvino::core::dev)
|
||||
|
||||
# TODO: fix lto
|
||||
set_target_properties(${TARGET_NAME}_obj PROPERTIES
|
||||
INTERPROCEDURAL_OPTIMIZATION_RELEASE OFF)
|
||||
|
||||
|
||||
@@ -3,6 +3,8 @@
|
||||
#
|
||||
|
||||
set(TARGET_NAME ov_protobuf_shutdown)
|
||||
|
||||
add_library(${TARGET_NAME} STATIC shutdown_protobuf.cpp)
|
||||
target_sources(${TARGET_NAME} INTERFACE shutdown_protobuf.cpp)
|
||||
|
||||
target_include_directories(${TARGET_NAME} SYSTEM PRIVATE $<BUILD_INTERFACE:${Protobuf_INCLUDE_DIRS}>)
|
||||
set_target_properties(${TARGET_NAME} PROPERTIES INTERPROCEDURAL_OPTIMIZATION_RELEASE ${ENABLE_LTO})
|
||||
@@ -17,7 +17,8 @@ source_group("include" FILES ${PUBLIC_HEADERS} ${PUBLIC_HEADERS})
|
||||
|
||||
add_library(${TARGET_NAME} STATIC ${LIBRARY_SRC} ${PUBLIC_HEADERS})
|
||||
|
||||
# TODO Add handling ie_faster_build
|
||||
set_target_properties(${TARGET_NAME} PROPERTIES
|
||||
INTERPROCEDURAL_OPTIMIZATION_RELEASE ${ENABLE_LTO})
|
||||
|
||||
set(ONNX_COMMON_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/include)
|
||||
set(ONNX_COMMON_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src)
|
||||
|
||||
@@ -32,7 +32,7 @@ add_subdirectory(${OpenVINO_SOURCE_DIR}/src/bindings/python/thirdparty/pybind11
|
||||
${CMAKE_CURRENT_BINARY_DIR}/pybind11_build
|
||||
EXCLUDE_FROM_ALL)
|
||||
|
||||
pybind11_add_module(${PYBIND_FE_NAME} MODULE ${PYBIND_FE_SRC})
|
||||
pybind11_add_module(${PYBIND_FE_NAME} MODULE NO_EXTRAS ${PYBIND_FE_SRC})
|
||||
|
||||
target_link_libraries(${PYBIND_FE_NAME} PRIVATE openvino::runtime)
|
||||
target_link_libraries(${PYBIND_FE_NAME} PRIVATE ${TARGET_FE_NAME})
|
||||
|
||||
Reference in new issue
Block a user