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:
parent
c82744e435
commit
8cb17ca218
@ -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
|
||||||
|
@ -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()
|
||||||
|
|
||||||
|
@ -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.\
|
||||||
|
@ -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})
|
||||||
|
|
||||||
|
@ -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)
|
||||||
|
@ -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>
|
||||||
|
@ -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
|
||||||
|
@ -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)
|
||||||
|
@ -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>
|
||||||
|
@ -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)
|
||||||
|
@ -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})
|
||||||
|
|
||||||
|
@ -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)
|
||||||
|
@ -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)
|
||||||
|
@ -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)
|
||||||
|
@ -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
|
||||||
|
@ -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>)
|
||||||
|
|
||||||
|
@ -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})
|
||||||
|
38
thirdparty/CMakeLists.txt
vendored
38
thirdparty/CMakeLists.txt
vendored
@ -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()
|
||||||
|
4
thirdparty/ittapi/CMakeLists.txt
vendored
4
thirdparty/ittapi/CMakeLists.txt
vendored
@ -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()
|
||||||
|
|
||||||
|
2
thirdparty/ocl/CMakeLists.txt
vendored
2
thirdparty/ocl/CMakeLists.txt
vendored
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user