Use ittnotify built from sources (#2577)

* Use  ittnotify built from sources

ITT tracing was only possible on the platfroms supported by VTune.
Building ittnotify from sources removes VTune dependency.

ITT traces was found significantly slowdown tests execution time.
Disabling ENABLE_PROFILING_ITT by default. This is also
a current behavior of Intel Distribution of OpenVINO.

* Fix missprint

* Add include directories to itt
This commit is contained in:
Andrey Somsikov
2020-10-14 13:08:06 +03:00
committed by GitHub
parent c0d71900fd
commit 0eb176c815
2 changed files with 33 additions and 4 deletions

View File

@@ -44,7 +44,7 @@ ie_dependent_option (ENABLE_AVX2 "Enable AVX2 optimizations" ON "X86_64 OR X86"
ie_dependent_option (ENABLE_AVX512F "Enable AVX512 optimizations" ON "X86_64 OR X86" OFF)
ie_dependent_option (ENABLE_PROFILING_ITT "ITT tracing of IE and plugins internals" ON "NOT CMAKE_CROSSCOMPILING" OFF)
ie_option (ENABLE_PROFILING_ITT "Build with ITT tracing. Optionally configure pre-built ittnotify library though INTEL_VTUNE_DIR variable." OFF)
# Documentation build
ie_option (ENABLE_DOCS "build docs using Doxygen" OFF)

View File

@@ -21,9 +21,38 @@ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
file(GLOB_RECURSE SOURCES "src/*.cpp")
if(ENABLE_PROFILING_ITT)
find_package(ITT)
if(NOT ITT_FOUND)
message(WARNING "Profiling option enabled, but no ITT library was found")
if(DEFINED INTEL_VTUNE_DIR OR DEFINED ENV{INTEL_VTUNE_DIR})
find_package(ITT)
if(NOT ITT_FOUND)
message(WARNING "Profiling option enabled, but no ITT library was found under INTEL_VTUNE_DIR")
endif()
else()
include(ExternalProject)
set(ITTAPI_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/ittapi/build)
set(ITTAPI_SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/ittapi/source)
set(ITTNOTIFY_LIBRARY ${ITTAPI_BINARY_DIR}/bin/${CMAKE_STATIC_LIBRARY_PREFIX}ittnotify${CMAKE_STATIC_LIBRARY_SUFFIX})
ExternalProject_Add(
ext_ittapi
PREFIX ittapi
GIT_REPOSITORY https://github.com/intel/ittapi.git
GIT_TAG v3.18.6
LOG_DOWNLOAD ON
LOG_CONFIGURE ON
LOG_BUILD ON
INSTALL_COMMAND ""
UPDATE_COMMAND ""
CMAKE_GENERATOR ${CMAKE_GENERATOR}
CMAKE_GENERATOR_PLATFORM ${CMAKE_GENERATOR_PLATFORM}
CMAKE_GENERATOR_TOOLSET ${CMAKE_GENERATOR_TOOLSET}
BINARY_DIR ${ITTAPI_BINARY_DIR}
SOURCE_DIR ${ITTAPI_SOURCE_DIR}
EXCLUDE_FROM_ALL TRUE
BUILD_BYPRODUCTS ${ITTNOTIFY_LIBRARY})
add_library(ittnotify INTERFACE)
add_dependencies(ittnotify ittapi_external)
target_link_libraries(ittnotify INTERFACE ${ITTNOTIFY_LIBRARY})
target_include_directories(ittnotify INTERFACE ${ITTAPI_SOURCE_DIR}/include)
openvino_developer_export_targets(ittnotify)
endif()
endif()