Enable GPU in static build w/o oneDNN (#8563)

* Enable LTO for oneDNN GPU

* Use importer target for onednn_gpu

* Fixed install of OpenCL, ittapi

* Try to enable samples build

* Fixed ie_wheel build

* Disabled samples

* Fixed incorrect install of pugixml in dynamic build
This commit is contained in:
Ilya Lavrenov 2021-11-15 13:44:11 +03:00 committed by GitHub
parent c82744e435
commit 8cb17ca218
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
20 changed files with 68 additions and 47 deletions

View File

@ -138,7 +138,7 @@ jobs:
-DENABLE_PYTHON=ON -DENABLE_PYTHON=ON
-DBUILD_SHARED_LIBS=$(CMAKE_BUILD_SHARED_LIBS) -DBUILD_SHARED_LIBS=$(CMAKE_BUILD_SHARED_LIBS)
-DENABLE_GNA=$(CMAKE_BUILD_SHARED_LIBS) -DENABLE_GNA=$(CMAKE_BUILD_SHARED_LIBS)
-DENABLE_CLDNN=$(CMAKE_BUILD_SHARED_LIBS) -DENABLE_ONEDNN_FOR_GPU=$(CMAKE_BUILD_SHARED_LIBS)
-DPYTHON_EXECUTABLE=/usr/bin/python3.8 -DPYTHON_EXECUTABLE=/usr/bin/python3.8
-DENABLE_WHEEL=ON -DENABLE_WHEEL=ON
-DENABLE_TESTS=ON -DENABLE_TESTS=ON

View File

@ -211,9 +211,7 @@ endif()
macro(ov_install_static_lib target comp) macro(ov_install_static_lib target comp)
if(NOT BUILD_SHARED_LIBS) if(NOT BUILD_SHARED_LIBS)
install(TARGETS ${target} EXPORT OpenVINOTargets install(TARGETS ${target} EXPORT OpenVINOTargets
RUNTIME DESTINATION ${IE_CPACK_RUNTIME_PATH} COMPONENT ${comp} ARCHIVE DESTINATION ${IE_CPACK_ARCHIVE_PATH} COMPONENT ${comp})
ARCHIVE DESTINATION ${IE_CPACK_ARCHIVE_PATH} COMPONENT ${comp}
LIBRARY DESTINATION ${IE_CPACK_LIBRARY_PATH} COMPONENT ${comp})
endif() endif()
endmacro() endmacro()

View File

@ -14,6 +14,17 @@ ie_option (ENABLE_STRICT_DEPENDENCIES "Skip configuring \"convinient\" dependenc
ie_dependent_option (ENABLE_CLDNN "clDnn based plugin for inference engine" ON "X86_64;NOT APPLE;NOT MINGW;NOT WINDOWS_STORE;NOT WINDOWS_PHONE" OFF) ie_dependent_option (ENABLE_CLDNN "clDnn based plugin for inference engine" ON "X86_64;NOT APPLE;NOT MINGW;NOT WINDOWS_STORE;NOT WINDOWS_PHONE" OFF)
if (NOT ENABLE_CLDNN OR ANDROID OR
(CMAKE_COMPILER_IS_GNUCXX AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7.0))
# oneDNN doesn't support old compilers and android builds for now, so we'll
# build GPU plugin without oneDNN
set(ENABLE_ONEDNN_FOR_GPU_DEFAULT OFF)
else()
set(ENABLE_ONEDNN_FOR_GPU_DEFAULT ON)
endif()
ie_dependent_option (ENABLE_ONEDNN_FOR_GPU "Enable oneDNN with GPU support" ON "${ENABLE_ONEDNN_FOR_GPU_DEFAULT}" OFF)
ie_option (ENABLE_PROFILING_ITT "Build with ITT tracing. Optionally configure pre-built ittnotify library though INTEL_VTUNE_DIR variable." OFF) ie_option (ENABLE_PROFILING_ITT "Build with ITT tracing. Optionally configure pre-built ittnotify library though INTEL_VTUNE_DIR variable." OFF)
ie_option_enum(ENABLE_PROFILING_FILTER "Enable or disable ITT counter groups.\ ie_option_enum(ENABLE_PROFILING_FILTER "Enable or disable ITT counter groups.\

View File

@ -43,6 +43,11 @@ target_include_directories(${TARGET_NAME} PRIVATE
set_target_properties(${TARGET_NAME} PROPERTIES INTERPROCEDURAL_OPTIMIZATION_RELEASE ${ENABLE_LTO}) set_target_properties(${TARGET_NAME} PROPERTIES INTERPROCEDURAL_OPTIMIZATION_RELEASE ${ENABLE_LTO})
# Workaround to avoid warnings during LTO build
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
set_target_properties(${TARGET_NAME} PROPERTIES LINK_FLAGS_RELEASE "-Wno-error=maybe-uninitialized -Wno-maybe-uninitialized")
endif()
# Failed because of OpenCL # Failed because of OpenCL
# ie_add_api_validator_post_build_step(TARGET ${TARGET_NAME}) # ie_add_api_validator_post_build_step(TARGET ${TARGET_NAME})

View File

@ -140,7 +140,7 @@ target_include_directories(${TARGET_NAME}_obj SYSTEM PRIVATE $<TARGET_PROPERTY:n
target_include_directories(${TARGET_NAME}_obj PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/src" target_include_directories(${TARGET_NAME}_obj PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/src"
"${CMAKE_CURRENT_BINARY_DIR}" # for static ie_plugins.hpp "${CMAKE_CURRENT_BINARY_DIR}" # for static ie_plugins.hpp
"${IE_MAIN_SOURCE_DIR}/src/readers/ir_reader_v7" # for ie_ir_version.hpp $<TARGET_PROPERTY:inference_engine_ir_v7_reader,SOURCE_DIR> # for ie_ir_version.hpp
$<TARGET_PROPERTY:${TARGET_NAME}_legacy,INTERFACE_INCLUDE_DIRECTORIES> $<TARGET_PROPERTY:${TARGET_NAME}_legacy,INTERFACE_INCLUDE_DIRECTORIES>
$<TARGET_PROPERTY:${TARGET_NAME}_transformations,INTERFACE_INCLUDE_DIRECTORIES> $<TARGET_PROPERTY:${TARGET_NAME}_transformations,INTERFACE_INCLUDE_DIRECTORIES>
$<TARGET_PROPERTY:${TARGET_NAME}_plugin_api,INTERFACE_INCLUDE_DIRECTORIES>) $<TARGET_PROPERTY:${TARGET_NAME}_plugin_api,INTERFACE_INCLUDE_DIRECTORIES>)
@ -215,7 +215,7 @@ endif()
target_include_directories(${TARGET_NAME}_s PUBLIC target_include_directories(${TARGET_NAME}_s PUBLIC
$<TARGET_PROPERTY:inference_engine_plugin_api,INTERFACE_INCLUDE_DIRECTORIES> $<TARGET_PROPERTY:inference_engine_plugin_api,INTERFACE_INCLUDE_DIRECTORIES>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src>
$<BUILD_INTERFACE:${IE_MAIN_SOURCE_DIR}/src/legacy_api/src>) $<BUILD_INTERFACE:$<TARGET_PROPERTY:${TARGET_NAME}_legacy,SOURCE_DIR>/src>)
if(WIN32) if(WIN32)
set_target_properties(${TARGET_NAME}_s PROPERTIES COMPILE_PDB_NAME ${TARGET_NAME}_s) set_target_properties(${TARGET_NAME}_s PROPERTIES COMPILE_PDB_NAME ${TARGET_NAME}_s)

View File

@ -39,7 +39,7 @@ target_compile_definitions(${TARGET_NAME}_obj PRIVATE IMPLEMENT_INFERENCE_ENGINE
target_include_directories(${TARGET_NAME}_obj PRIVATE target_include_directories(${TARGET_NAME}_obj PRIVATE
${PUBLIC_HEADERS_DIR} ${PUBLIC_HEADERS_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/src ${CMAKE_CURRENT_SOURCE_DIR}/src
${IE_MAIN_SOURCE_DIR}/src/inference_engine/src # For CNNNetworkNGraphImpl $<TARGET_PROPERTY:inference_engine,SOURCE_DIR>/src # For CNNNetworkNGraphImpl
$<TARGET_PROPERTY:inference_engine_transformations,INTERFACE_INCLUDE_DIRECTORIES> $<TARGET_PROPERTY:inference_engine_transformations,INTERFACE_INCLUDE_DIRECTORIES>
$<TARGET_PROPERTY:inference_engine_plugin_api,INTERFACE_INCLUDE_DIRECTORIES> $<TARGET_PROPERTY:inference_engine_plugin_api,INTERFACE_INCLUDE_DIRECTORIES>
$<TARGET_PROPERTY:ngraph,INTERFACE_INCLUDE_DIRECTORIES> $<TARGET_PROPERTY:ngraph,INTERFACE_INCLUDE_DIRECTORIES>

View File

@ -4,7 +4,7 @@
set(TARGET_NAME ieFuncTests) set(TARGET_NAME ieFuncTests)
set(INCLUDES ${IE_MAIN_SOURCE_DIR}/src/inference_engine/src) set(INCLUDES $<TARGET_PROPERTY:inference_engine,SOURCE_DIR>/src)
set(LINK_LIBRARIES set(LINK_LIBRARIES
gmock gmock

View File

@ -8,7 +8,7 @@ add_library(cpuSpecificRtInfo STATIC ${IE_MAIN_SOURCE_DIR}/src/mkldnn_plugin/uti
${IE_MAIN_SOURCE_DIR}/src/mkldnn_plugin/utils/rt_info/memory_formats_attribute.cpp) ${IE_MAIN_SOURCE_DIR}/src/mkldnn_plugin/utils/rt_info/memory_formats_attribute.cpp)
target_link_libraries(cpuSpecificRtInfo PRIVATE ngraph) target_link_libraries(cpuSpecificRtInfo PRIVATE ngraph)
set(INCLUDES ${CMAKE_CURRENT_SOURCE_DIR} ${IE_MAIN_SOURCE_DIR}/src/mkldnn_plugin) set(INCLUDES ${CMAKE_CURRENT_SOURCE_DIR} $<TARGET_PROPERTY:MKLDNNPlugin,SOURCE_DIR>)
set(DEPENDENCIES MKLDNNPlugin) set(DEPENDENCIES MKLDNNPlugin)
set(LINK_LIBRARIES funcSharedTests cpuSpecificRtInfo) set(LINK_LIBRARIES funcSharedTests cpuSpecificRtInfo)
if (NGRAPH_ONNX_FRONTEND_ENABLE) if (NGRAPH_ONNX_FRONTEND_ENABLE)

View File

@ -8,8 +8,8 @@ addIeTargetTest(
NAME ${TARGET_NAME} NAME ${TARGET_NAME}
ROOT ${CMAKE_CURRENT_SOURCE_DIR} ROOT ${CMAKE_CURRENT_SOURCE_DIR}
INCLUDES INCLUDES
${IE_MAIN_SOURCE_DIR}/src/mkldnn_plugin $<TARGET_PROPERTY:MKLDNNPlugin,SOURCE_DIR>
${IE_MAIN_SOURCE_DIR}/src/mkldnn_plugin/nodes $<TARGET_PROPERTY:MKLDNNPlugin,SOURCE_DIR>/nodes
$<TARGET_PROPERTY:openvino::conditional_compilation,INTERFACE_INCLUDE_DIRECTORIES> $<TARGET_PROPERTY:openvino::conditional_compilation,INTERFACE_INCLUDE_DIRECTORIES>
OBJECT_FILES OBJECT_FILES
$<TARGET_OBJECTS:MKLDNNPlugin_obj> $<TARGET_OBJECTS:MKLDNNPlugin_obj>

View File

@ -57,7 +57,7 @@ function(enable_vpu TARGET_NAME FLAG_NAME PLUGIN_NAME)
target_include_directories(${TARGET_NAME} PRIVATE target_include_directories(${TARGET_NAME} PRIVATE
$<TARGET_PROPERTY:vpu_graph_transformer,INTERFACE_INCLUDE_DIRECTORIES> $<TARGET_PROPERTY:vpu_graph_transformer,INTERFACE_INCLUDE_DIRECTORIES>
${CMAKE_CURRENT_SOURCE_DIR}/myriad_tests ${CMAKE_CURRENT_SOURCE_DIR}/myriad_tests
${IE_MAIN_SOURCE_DIR}/src/inference_engine/src $<TARGET_PROPERTY:inference_engine,SOURCE_DIR>/src
${XLINK_INCLUDE} ${XLINK_INCLUDE}
${XLINK_PLATFORM_INCLUDE}) ${XLINK_PLATFORM_INCLUDE})
target_link_libraries(${TARGET_NAME} PRIVATE mvnc) target_link_libraries(${TARGET_NAME} PRIVATE mvnc)

View File

@ -82,7 +82,7 @@ if (ENABLE_MYRIAD)
) )
include_directories( include_directories(
engines/vpu/myriad_tests/helpers engines/vpu/myriad_tests/helpers
${IE_MAIN_SOURCE_DIR}/src/vpu/myriad_plugin $<TARGET_PROPERTY:myriadPlugin,SOURCE_DIR>
${XLINK_INCLUDE} ${XLINK_INCLUDE}
${XLINK_PLATFORM_INCLUDE}) ${XLINK_PLATFORM_INCLUDE})

View File

@ -12,14 +12,6 @@ project("${CLDNN__PROJ_NAME}")
# ====================================== HELPER CONSTANT VARIABLES ===================================== # ====================================== HELPER CONSTANT VARIABLES =====================================
# ====================================================================================================== # ======================================================================================================
# ====================================================================================================== # ======================================================================================================
if (ENABLE_ONEDNN_FOR_GPU)
ExternalProject_Get_property(onednn_gpu_build SOURCE_DIR)
ExternalProject_Get_property(onednn_gpu_build BINARY_DIR)
set(ONEDNN_TARGET_NAME onednn_gpu)
set(ONEDNN_INCLUDE_DIRS "${BINARY_DIR}/include/" "${SOURCE_DIR}/include/")
set(ONEDNN_LIBRARY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_STATIC_LIBRARY_PREFIX}onednn_gpu${CMAKE_STATIC_LIBRARY_SUFFIX}")
endif()
if(ENABLE_GPU_DEBUG_CAPS) if(ENABLE_GPU_DEBUG_CAPS)
add_definitions(-DGPU_DEBUG_CONFIG=1) add_definitions(-DGPU_DEBUG_CONFIG=1)

View File

@ -67,12 +67,7 @@ target_link_libraries("${CLDNN_BUILD__PROJ}" PRIVATE
) )
if(ENABLE_ONEDNN_FOR_GPU) if(ENABLE_ONEDNN_FOR_GPU)
add_dependencies("${CLDNN_BUILD__PROJ}" onednn_gpu_build) target_link_libraries("${CLDNN_BUILD__PROJ}" PUBLIC onednn_gpu)
target_link_libraries("${CLDNN_BUILD__PROJ}" PUBLIC ${ONEDNN_LIBRARY})
foreach(dir IN LISTS ONEDNN_INCLUDE_DIRS)
target_include_directories("${CLDNN_BUILD__PROJ}" PUBLIC $<BUILD_INTERFACE:${dir}>)
endforeach()
target_compile_definitions("${CLDNN_BUILD__PROJ}" PUBLIC ENABLE_ONEDNN_FOR_GPU)
endif() endif()
if(WIN32) if(WIN32)

View File

@ -128,11 +128,7 @@ target_link_libraries("${CLDNN_BUILD__PROJ}" PRIVATE
) )
if(ENABLE_ONEDNN_FOR_GPU) if(ENABLE_ONEDNN_FOR_GPU)
target_link_libraries("${CLDNN_BUILD__PROJ}" PUBLIC ${ONEDNN_LIBRARY}) target_link_libraries("${CLDNN_BUILD__PROJ}" PUBLIC onednn_gpu)
foreach(dir IN LISTS ONEDNN_INCLUDE_DIRS)
target_include_directories("${CLDNN_BUILD__PROJ}" PUBLIC $<BUILD_INTERFACE:${dir}>)
endforeach()
target_compile_definitions("${CLDNN_BUILD__PROJ}" PUBLIC ENABLE_ONEDNN_FOR_GPU)
endif() endif()
if(COMMAND add_cpplint_target) if(COMMAND add_cpplint_target)

View File

@ -99,6 +99,11 @@ if(COMMAND set_ie_threading_interface_for)
set_ie_threading_interface_for("${CLDNN_BUILD__PROJ}") set_ie_threading_interface_for("${CLDNN_BUILD__PROJ}")
endif() endif()
# Workaround to avoid warnings during LTO build
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
set_target_properties("${CLDNN_BUILD__PROJ}" PROPERTIES LINK_FLAGS_RELEASE "-Wno-error=maybe-uninitialized -Wno-maybe-uninitialized")
endif()
set_property(TARGET "${CLDNN_BUILD__PROJ}" PROPERTY PROJECT_LABEL "${CLDNN_BUILD__PROJ_LABEL}") set_property(TARGET "${CLDNN_BUILD__PROJ}" PROPERTY PROJECT_LABEL "${CLDNN_BUILD__PROJ_LABEL}")
# Set library dependencies # Set library dependencies

View File

@ -17,7 +17,6 @@ add_subdirectory(reference)
add_subdirectory(shape_inference) add_subdirectory(shape_inference)
# WA for Tensor implementation via ie::Blob::Ptr # WA for Tensor implementation via ie::Blob::Ptr
set(IE_SRC_ROOT "${IE_MAIN_SOURCE_DIR}/src/inference_engine/src")
set(IE_SHARED_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/src/ie_legacy/blob_factory.cpp" set(IE_SHARED_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/src/ie_legacy/blob_factory.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/src/ie_legacy/ie_blob_common.cpp" "${CMAKE_CURRENT_SOURCE_DIR}/src/ie_legacy/ie_blob_common.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/src/ie_legacy/ie_layouts.cpp" "${CMAKE_CURRENT_SOURCE_DIR}/src/ie_legacy/ie_layouts.cpp"
@ -28,7 +27,7 @@ set(MIXED_SRC ${IE_SHARED_SRCS}
set_property(SOURCE ${MIXED_SRC} set_property(SOURCE ${MIXED_SRC}
APPEND PROPERTY INCLUDE_DIRECTORIES APPEND PROPERTY INCLUDE_DIRECTORIES
${IE_SRC_ROOT} $<TARGET_PROPERTY:inference_engine,SOURCE_DIR>/src
$<TARGET_PROPERTY:inference_engine,INTERFACE_INCLUDE_DIRECTORIES> $<TARGET_PROPERTY:inference_engine,INTERFACE_INCLUDE_DIRECTORIES>
$<TARGET_PROPERTY:inference_engine_plugin_api,INTERFACE_INCLUDE_DIRECTORIES>) $<TARGET_PROPERTY:inference_engine_plugin_api,INTERFACE_INCLUDE_DIRECTORIES>)

View File

@ -33,6 +33,6 @@ endif()
target_include_directories(${TARGET_NAME} PUBLIC target_include_directories(${TARGET_NAME} PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>) $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>)
ov_install_static_lib(${TARGET_NAME} ngraph) ov_install_static_lib(${TARGET_NAME} openvino_common)
add_cpplint_target(${TARGET_NAME}_cpplint FOR_TARGETS ${TARGET_NAME}) add_cpplint_target(${TARGET_NAME}_cpplint FOR_TARGETS ${TARGET_NAME})

View File

@ -10,12 +10,12 @@ if(ENABLE_LTO)
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE ON) set(CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE ON)
endif() endif()
add_subdirectory(ittapi EXCLUDE_FROM_ALL) add_subdirectory(ittapi)
add_subdirectory(itt_collector EXCLUDE_FROM_ALL) add_subdirectory(itt_collector EXCLUDE_FROM_ALL)
add_subdirectory(zlib EXCLUDE_FROM_ALL) add_subdirectory(zlib EXCLUDE_FROM_ALL)
add_subdirectory(cnpy EXCLUDE_FROM_ALL) add_subdirectory(cnpy EXCLUDE_FROM_ALL)
if(ENABLE_CLDNN) if(ENABLE_CLDNN)
add_subdirectory(ocl EXCLUDE_FROM_ALL) add_subdirectory(ocl)
endif() endif()
add_subdirectory(xbyak EXCLUDE_FROM_ALL) add_subdirectory(xbyak EXCLUDE_FROM_ALL)
@ -129,12 +129,6 @@ endif()
# #
# oneDNN for GPU plugin # oneDNN for GPU plugin
# #
if (ANDROID OR (CMAKE_COMPILER_IS_GNUCXX AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7.0))
# oneDNN doesn't support old compilers and android builds for now, so we'll build GPU plugin without oneDNN
set(ENABLE_ONEDNN_FOR_GPU OFF CACHE BOOL "")
else()
set(ENABLE_ONEDNN_FOR_GPU ON CACHE BOOL "")
endif()
if(ENABLE_ONEDNN_FOR_GPU) if(ENABLE_ONEDNN_FOR_GPU)
function(build_onednn_gpu) function(build_onednn_gpu)
@ -144,6 +138,10 @@ if(ENABLE_ONEDNN_FOR_GPU)
set(ONEDNN_LIBRARY "${ONEDNN_BUILD_DIR}/src/${CMAKE_STATIC_LIBRARY_PREFIX}onednn_gpu${CMAKE_STATIC_LIBRARY_SUFFIX}") set(ONEDNN_LIBRARY "${ONEDNN_BUILD_DIR}/src/${CMAKE_STATIC_LIBRARY_PREFIX}onednn_gpu${CMAKE_STATIC_LIBRARY_SUFFIX}")
set(ONEDNN_OUTPUT_LIBRARY "${ONEDNN_INSTALL_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}onednn_gpu${CMAKE_STATIC_LIBRARY_SUFFIX}") set(ONEDNN_OUTPUT_LIBRARY "${ONEDNN_INSTALL_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}onednn_gpu${CMAKE_STATIC_LIBRARY_SUFFIX}")
if(CMAKE_COMPILER_IS_GNUCXX)
ie_add_compiler_flags(-Wno-undef)
endif()
# Get processors count to limit number of threads spawned by make # Get processors count to limit number of threads spawned by make
include(ProcessorCount) include(ProcessorCount)
ProcessorCount(CORES_COUNT) ProcessorCount(CORES_COUNT)
@ -158,9 +156,14 @@ if(ENABLE_ONEDNN_FOR_GPU)
EXCLUDE_FROM_ALL ON EXCLUDE_FROM_ALL ON
CMAKE_ARGS "-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}" CMAKE_ARGS "-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}"
"-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}" "-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}"
"-DCMAKE_CXX_COMPILER_LAUNCHER=${CMAKE_CXX_COMPILER_LAUNCHER}"
"-DCMAKE_C_COMPILER_LAUNCHER=${CMAKE_C_COMPILER_LAUNCHER}"
"-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}"
"-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}"
"-DCMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE=${ENABLE_LTO}"
"-DCMAKE_POLICY_DEFAULT_CMP0069=NEW"
"-DDNNL_CPU_RUNTIME=NONE" "-DDNNL_CPU_RUNTIME=NONE"
"-DDNNL_GPU_RUNTIME=OCL" "-DDNNL_GPU_RUNTIME=OCL"
"-DDNNL_GPU_RUNTIME=OCL"
"-DDNNL_LIBRARY_NAME=onednn_gpu" "-DDNNL_LIBRARY_NAME=onednn_gpu"
"-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}" "-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}"
"-DCMAKE_RUNTIME_OUTPUT_DIRECTORY=${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" "-DCMAKE_RUNTIME_OUTPUT_DIRECTORY=${CMAKE_RUNTIME_OUTPUT_DIRECTORY}"
@ -179,6 +182,23 @@ if(ENABLE_ONEDNN_FOR_GPU)
COMMAND ${CMAKE_COMMAND} -E echo "OneDNN $<CONFIG> build for GPU complete" COMMAND ${CMAKE_COMMAND} -E echo "OneDNN $<CONFIG> build for GPU complete"
BUILD_BYPRODUCTS ${ONEDNN_OUTPUT_LIBRARY} BUILD_BYPRODUCTS ${ONEDNN_OUTPUT_LIBRARY}
) )
ExternalProject_Get_property(onednn_gpu_build SOURCE_DIR)
ExternalProject_Get_property(onednn_gpu_build BINARY_DIR)
# WA: create temp 'include' directory
file(MAKE_DIRECTORY "${BINARY_DIR}/include")
add_library(onednn_gpu STATIC IMPORTED GLOBAL)
set_target_properties(onednn_gpu PROPERTIES
IMPORTED_LOCATION ${ONEDNN_OUTPUT_LIBRARY}
INTERFACE_INCLUDE_DIRECTORIES "$<BUILD_INTERFACE:${BINARY_DIR}/include>;$<BUILD_INTERFACE:${SOURCE_DIR}/include>"
INTERFACE_COMPILE_DEFINITIONS ENABLE_ONEDNN_FOR_GPU)
add_dependencies(onednn_gpu onednn_gpu_build)
# TODO: does not work for imported targets; need to import this target in
# OpenVINOConfig.cmake explicitly
# ov_install_static_lib(onednn_gpu gpu)
endfunction() endfunction()
build_onednn_gpu() build_onednn_gpu()

View File

@ -11,10 +11,10 @@ if(ENABLE_PROFILING_ITT)
message(WARNING "Profiling option enabled, but no ITT library was found under INTEL_VTUNE_DIR") message(WARNING "Profiling option enabled, but no ITT library was found under INTEL_VTUNE_DIR")
endif() endif()
else() else()
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/ittapi ${CMAKE_BINARY_DIR}/_deps/ittapi) add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/ittapi ${CMAKE_BINARY_DIR}/_deps/ittapi EXCLUDE_FROM_ALL)
target_compile_definitions(ittnotify INTERFACE ENABLE_PROFILING_ITT) target_compile_definitions(ittnotify INTERFACE ENABLE_PROFILING_ITT)
if (UNIX) if(CMAKE_COMPILER_IS_GNUCXX)
target_compile_options(ittnotify PRIVATE -Wno-undef) target_compile_options(ittnotify PRIVATE -Wno-undef)
endif() endif()

View File

@ -46,7 +46,7 @@ set(CMAKE_CXX_FLAGS_RELEASE "")
# OpenCL has absolute paths to include directories # OpenCL has absolute paths to include directories
set(CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION OFF) set(CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION OFF)
add_subdirectory(icd_loader) add_subdirectory(icd_loader EXCLUDE_FROM_ALL)
# override INTERFACE_INCLUDE_DIRECTORIES # override INTERFACE_INCLUDE_DIRECTORIES
set_property(TARGET OpenCL PROPERTY INTERFACE_INCLUDE_DIRECTORIES set_property(TARGET OpenCL PROPERTY INTERFACE_INCLUDE_DIRECTORIES