mirror of
https://github.com/PaddlePaddle/FastDeploy.git
synced 2025-10-28 10:51:39 +08:00
Add tbb and tbb malloc dependency for openvino
This commit is contained in:
@@ -170,7 +170,6 @@ if(ENABLE_OPENVINO_BACKEND)
|
|||||||
add_definitions(-DENABLE_OPENVINO_BACKEND)
|
add_definitions(-DENABLE_OPENVINO_BACKEND)
|
||||||
list(APPEND ALL_DEPLOY_SRCS ${DEPLOY_OPENVINO_SRCS})
|
list(APPEND ALL_DEPLOY_SRCS ${DEPLOY_OPENVINO_SRCS})
|
||||||
include(${PROJECT_SOURCE_DIR}/cmake/openvino.cmake)
|
include(${PROJECT_SOURCE_DIR}/cmake/openvino.cmake)
|
||||||
list(APPEND DEPEND_LIBS external_openvino)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_GPU)
|
if(WITH_GPU)
|
||||||
|
|||||||
@@ -56,8 +56,23 @@ if(ENABLE_PADDLE_BACKEND)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(ENABLE_OPENVINO_BACKEND)
|
if(ENABLE_OPENVINO_BACKEND)
|
||||||
find_library(OPENVINO_LIB openvino ${CMAKE_CURRENT_LIST_DIR}/third_libs/install/openvino/lib/ NO_DEFAULT_PATH)
|
find_library(OPENVINO_LIB openvino ${CMAKE_CURRENT_LIST_DIR}/third_libs/install/openvino/lib/
|
||||||
list(APPEND FASTDEPLOY_LIBS ${OPENVINO_LIB})
|
${CMAKE_CURRENT_LIST_DIR}/third_libs/install/openvino/3rdparty/tbb/lib/ NO_DEFAULT_PATH)
|
||||||
|
# Find tbb libs
|
||||||
|
set(TBB_LIBS_PREFIX "")
|
||||||
|
set(TBB_LIBS_SUFFIX "")
|
||||||
|
if ((NOT WIN32) AND (NOT APPLE))
|
||||||
|
set(TBB_LIBS_PREFIX "lib")
|
||||||
|
set(TBB_LIBS_SUFFIX ".so.2")
|
||||||
|
endif()
|
||||||
|
find_library(TBB_LIB NAMES ${TBB_LIBS_PREFIX}tbb${TBB_LIBS_SUFFIX}
|
||||||
|
PATHS ${CMAKE_CURRENT_LIST_DIR}/third_libs/install/openvino/3rdparty/tbb/lib/ NO_DEFAULT_PATH)
|
||||||
|
find_library(TBB_MALLOC_LIB NAMES ${TBB_LIBS_PREFIX}tbbmalloc${TBB_LIBS_SUFFIX}
|
||||||
|
PATHS ${CMAKE_CURRENT_LIST_DIR}/third_libs/install/openvino/3rdparty/tbb/lib/ NO_DEFAULT_PATH)
|
||||||
|
message(STATUS "The path of openvino is ${OPENVINO_LIB}.")
|
||||||
|
message(STATUS "The path of tbb is ${TBB_LIB}.")
|
||||||
|
message(STATUS "The path of tbbmalloc is ${TBB_MALLOC_LIB}.")
|
||||||
|
list(APPEND FASTDEPLOY_LIBS ${OPENVINO_LIB} ${TBB_LIB} ${TBB_MALLOC_LIB})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_GPU)
|
if(WITH_GPU)
|
||||||
@@ -99,8 +114,6 @@ if (ENABLE_TEXT)
|
|||||||
find_library(FASTER_TOKENIZER_LIB core_tokenizers ${CMAKE_CURRENT_LIST_DIR}/third_libs/install/faster_tokenizer/lib NO_DEFAULT_PATH)
|
find_library(FASTER_TOKENIZER_LIB core_tokenizers ${CMAKE_CURRENT_LIST_DIR}/third_libs/install/faster_tokenizer/lib NO_DEFAULT_PATH)
|
||||||
list(APPEND FASTDEPLOY_LIBS ${FASTER_TOKENIZER_LIB})
|
list(APPEND FASTDEPLOY_LIBS ${FASTER_TOKENIZER_LIB})
|
||||||
list(APPEND FASTDEPLOY_INCS ${CMAKE_CURRENT_LIST_DIR}/third_libs/install/faster_tokenizer/include)
|
list(APPEND FASTDEPLOY_INCS ${CMAKE_CURRENT_LIST_DIR}/third_libs/install/faster_tokenizer/include)
|
||||||
# TODO (zhoushunjie): Will remove it later.
|
|
||||||
list(APPEND FASTDEPLOY_INCS ${CMAKE_CURRENT_LIST_DIR}/third_libs/install/faster_tokenizer/include/faster_tokenizer)
|
|
||||||
list(APPEND FASTDEPLOY_INCS ${CMAKE_CURRENT_LIST_DIR}/third_libs/install/faster_tokenizer/third_party/include)
|
list(APPEND FASTDEPLOY_INCS ${CMAKE_CURRENT_LIST_DIR}/third_libs/install/faster_tokenizer/third_party/include)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ else()
|
|||||||
if(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "aarch64")
|
if(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "aarch64")
|
||||||
message("Cannot compile with openvino while in linux-aarch64 platform")
|
message("Cannot compile with openvino while in linux-aarch64 platform")
|
||||||
else()
|
else()
|
||||||
set(OPENVINO_FILENAME "l_openvino_toolkit_ubuntu18_${OPENVINO_VERSION}")
|
set(OPENVINO_FILENAME "l_openvino_toolkit_centos7_${OPENVINO_VERSION}")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
set(OPENVINO_URL "${OPENVINO_URL_PREFIX}${OPENVINO_FILENAME}${COMPRESSED_SUFFIX}")
|
set(OPENVINO_URL "${OPENVINO_URL_PREFIX}${OPENVINO_FILENAME}${COMPRESSED_SUFFIX}")
|
||||||
@@ -65,30 +65,34 @@ include_directories(${OPENVINO_INC_DIR})
|
|||||||
if(WIN32)
|
if(WIN32)
|
||||||
set(OPENVINO_LIB
|
set(OPENVINO_LIB
|
||||||
"${OPENVINO_INSTALL_DIR}/lib/openvino.lib"
|
"${OPENVINO_INSTALL_DIR}/lib/openvino.lib"
|
||||||
CACHE FILEPATH "OPENVINO static library." FORCE)
|
CACHE FILEPATH "OPENVINO shared library." FORCE)
|
||||||
set(INSTALL_CMD "${CMAKE_COMMAND} -E remove_directory ${OPENVINO_INSTALL_DIR} &&
|
set(INSTALL_CMD ${CMAKE_COMMAND} -E remove_directory ${OPENVINO_INSTALL_DIR} &&
|
||||||
${CMAKE_COMMAND} -E make_directory ${OPENVINO_INSTALL_DIR} &&
|
${CMAKE_COMMAND} -E make_directory ${OPENVINO_INSTALL_DIR} &&
|
||||||
${CMAKE_COMMAND} -E copy_directory ${OPENVINO_SOURCE_DIR}/lib/intel64/Release ${OPENVINO_INSTALL_DIR}/lib &&
|
${CMAKE_COMMAND} -E copy_directory ${OPENVINO_SOURCE_DIR}/lib/intel64/Release ${OPENVINO_INSTALL_DIR}/lib &&
|
||||||
${CMAKE_COMMAND} -E copy_directory ${OPENVINO_SOURCE_DIR}/bin/intel64/Release ${OPENVINO_INSTALL_DIR}/bin &&
|
${CMAKE_COMMAND} -E copy_directory ${OPENVINO_SOURCE_DIR}/bin/intel64/Release ${OPENVINO_INSTALL_DIR}/bin &&
|
||||||
${CMAKE_COMMAND} -E copy_directory ${OPENVINO_SOURCE_DIR}/include ${OPENVINO_INSTALL_INC_DIR} &&
|
${CMAKE_COMMAND} -E copy_directory ${OPENVINO_SOURCE_DIR}/include ${OPENVINO_INSTALL_INC_DIR} &&
|
||||||
${CMAKE_COMMAND} -E copy_directory ${OPENVINO_SOURCE_DIR}/3rdparty ${OPENVINO_INSTALL_DIR}/3rdparty")
|
${CMAKE_COMMAND} -E copy_directory ${OPENVINO_SOURCE_DIR}/3rdparty ${OPENVINO_INSTALL_DIR}/3rdparty)
|
||||||
elseif(APPLE)
|
elseif(APPLE)
|
||||||
set(OPENVINO_LIB
|
set(OPENVINO_LIB
|
||||||
"${OPENVINO_INSTALL_DIR}/lib/libopenvino.dylib"
|
"${OPENVINO_INSTALL_DIR}/lib/libopenvino.dylib"
|
||||||
CACHE FILEPATH "OPENVINO static library." FORCE)
|
CACHE FILEPATH "OPENVINO shared library." FORCE)
|
||||||
set(INSTALL_CMD "${CMAKE_COMMAND} -E remove_directory ${OPENVINO_INSTALL_DIR} &&
|
set(INSTALL_CMD ${CMAKE_COMMAND} -E remove_directory ${OPENVINO_INSTALL_DIR} &&
|
||||||
${CMAKE_COMMAND} -E make_directory ${OPENVINO_INSTALL_DIR} &&
|
${CMAKE_COMMAND} -E make_directory ${OPENVINO_INSTALL_DIR} &&
|
||||||
${CMAKE_COMMAND} -E rename ${OPENVINO_SOURCE_DIR}/lib/intel64/Release ${OPENVINO_INSTALL_DIR}/lib &&
|
${CMAKE_COMMAND} -E copy_directory ${OPENVINO_SOURCE_DIR}/lib/intel64/Release ${OPENVINO_INSTALL_DIR}/lib &&
|
||||||
${CMAKE_COMMAND} -E copy_directory ${OPENVINO_SOURCE_DIR}/include ${OPENVINO_INSTALL_INC_DIR}")
|
${CMAKE_COMMAND} -E copy_directory ${OPENVINO_SOURCE_DIR}/include ${OPENVINO_INSTALL_INC_DIR} &&
|
||||||
|
${CMAKE_COMMAND} -E copy_directory ${OPENVINO_SOURCE_DIR}/3rdparty ${OPENVINO_INSTALL_DIR}/3rdparty)
|
||||||
|
|
||||||
else()
|
else()
|
||||||
set(OPENVINO_LIB
|
set(OPENVINO_LIB
|
||||||
"${OPENVINO_INSTALL_DIR}/lib/libopenvino.so"
|
"${OPENVINO_INSTALL_DIR}/lib/libopenvino.so"
|
||||||
CACHE FILEPATH "OPENVINO static library." FORCE)
|
CACHE FILEPATH "OPENVINO shared library." FORCE)
|
||||||
set(INSTALL_CMD "${CMAKE_COMMAND} -E remove_directory ${OPENVINO_INSTALL_DIR} &&
|
set(TBB_LIB "${OPENVINO_INSTALL_DIR}/3rdparty/tbb/lib/libtbb.so.2")
|
||||||
|
set(TBB_MALLOC_LIB "${OPENVINO_INSTALL_DIR}/3rdparty/tbb/lib/libtbbmalloc.so.2")
|
||||||
|
set(INSTALL_CMD ${CMAKE_COMMAND} -E remove_directory ${OPENVINO_INSTALL_DIR} &&
|
||||||
${CMAKE_COMMAND} -E make_directory ${OPENVINO_INSTALL_DIR} &&
|
${CMAKE_COMMAND} -E make_directory ${OPENVINO_INSTALL_DIR} &&
|
||||||
${CMAKE_COMMAND} -E rename ${OPENVINO_SOURCE_DIR}/lib/intel64 ${OPENVINO_INSTALL_DIR}/lib &&
|
${CMAKE_COMMAND} -E copy_directory ${OPENVINO_SOURCE_DIR}/lib/intel64 ${OPENVINO_INSTALL_DIR}/lib &&
|
||||||
${CMAKE_COMMAND} -E copy_directory ${OPENVINO_SOURCE_DIR}/include ${OPENVINO_INSTALL_INC_DIR}")
|
${CMAKE_COMMAND} -E copy_directory ${OPENVINO_SOURCE_DIR}/include ${OPENVINO_INSTALL_INC_DIR} &&
|
||||||
|
${CMAKE_COMMAND} -E copy_directory ${OPENVINO_SOURCE_DIR}/3rdparty ${OPENVINO_INSTALL_DIR}/3rdparty)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
ExternalProject_Add(
|
ExternalProject_Add(
|
||||||
@@ -105,9 +109,24 @@ ExternalProject_Add(
|
|||||||
|
|
||||||
|
|
||||||
if(UNIX)
|
if(UNIX)
|
||||||
add_custom_target(patchelf_openvino ALL COMMAND bash -c "sh ${PROJECT_SOURCE_DIR}/scripts/patch_lib.sh ${OPENVINO_INSTALL_DIR}/lib" DEPENDS ${LIBRARY_NAME})
|
if (NOT APPLE)
|
||||||
|
add_custom_target(patchelf_openvino_tbb ALL COMMAND bash -c "patchelf --set-rpath '${ORIGIN}/../third_libs/install/openvino/3rdparty/tbb/lib' ${OPENVINO_INSTALL_DIR}/lib/*.so*" DEPENDS ${OPENVINO_PROJECT})
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_library(external_openvino STATIC IMPORTED GLOBAL)
|
add_library(external_openvino STATIC IMPORTED GLOBAL)
|
||||||
set_property(TARGET external_openvino PROPERTY IMPORTED_LOCATION ${OPENVINO_LIB})
|
set_property(TARGET external_openvino PROPERTY IMPORTED_LOCATION ${OPENVINO_LIB})
|
||||||
add_dependencies(external_openvino ${OPENVINO_PROJECT})
|
add_dependencies(external_openvino ${OPENVINO_PROJECT})
|
||||||
|
|
||||||
|
# # TBB is a multithread lib, can accelarate openvino
|
||||||
|
add_library(tbb STATIC IMPORTED GLOBAL)
|
||||||
|
set_property(TARGET tbb PROPERTY IMPORTED_LOCATION ${TBB_LIB})
|
||||||
|
add_dependencies(tbb ${OPENVINO_PROJECT})
|
||||||
|
|
||||||
|
add_library(tbbmalloc STATIC IMPORTED GLOBAL)
|
||||||
|
set_property(TARGET tbbmalloc PROPERTY IMPORTED_LOCATION ${TBB_MALLOC_LIB})
|
||||||
|
add_dependencies(tbbmalloc ${OPENVINO_PROJECT})
|
||||||
|
|
||||||
|
set(OPENVINO_LIBS external_openvino tbb tbbmalloc)
|
||||||
|
|
||||||
|
list(APPEND DEPEND_LIBS ${OPENVINO_LIBS})
|
||||||
|
|||||||
Reference in New Issue
Block a user