Merge branch 'develop' of https://github.com/PaddlePaddle/FastDeploy into develop

This commit is contained in:
jiangjiajun
2022-09-26 16:19:58 +08:00
8 changed files with 110 additions and 110 deletions

View File

@@ -204,7 +204,6 @@ if(ENABLE_OPENVINO_BACKEND)
add_definitions(-DENABLE_OPENVINO_BACKEND)
list(APPEND ALL_DEPLOY_SRCS ${DEPLOY_OPENVINO_SRCS})
include(${PROJECT_SOURCE_DIR}/cmake/openvino.cmake)
list(APPEND DEPEND_LIBS external_openvino)
endif()
if(WITH_GPU)
@@ -414,6 +413,7 @@ install(
${PROJECT_SOURCE_DIR}/ThirdPartyNotices.txt
${PROJECT_SOURCE_DIR}/VERSION_NUMBER
${PROJECT_SOURCE_DIR}/FastDeploy.cmake
${PROJECT_SOURCE_DIR}/cmake/utils.cmake
DESTINATION ${CMAKE_INSTALL_PREFIX}
)
install(

View File

@@ -20,6 +20,9 @@ set(FASTDEPLOY_LIBS "")
set(FASTDEPLOY_INCS "")
list(APPEND FASTDEPLOY_INCS ${CMAKE_CURRENT_LIST_DIR}/include)
# Note(zhoushunjie): include some useful utils function
include(${CMAKE_CURRENT_LIST_DIR}/utils.cmake)
if(NOT CMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 11)
endif()
@@ -57,8 +60,10 @@ if(ENABLE_PADDLE_BACKEND)
endif()
if(ENABLE_OPENVINO_BACKEND)
find_library(OPENVINO_LIB openvino ${CMAKE_CURRENT_LIST_DIR}/third_libs/install/openvino/lib/ NO_DEFAULT_PATH)
list(APPEND FASTDEPLOY_LIBS ${OPENVINO_LIB})
set(OPENVINO_FILENAME @OPENVINO_FILENAME@)
get_openvino_libs(${CMAKE_CURRENT_LIST_DIR}/third_libs/install/${OPENVINO_FILENAME}/runtime)
message(STATUS "OPENVINO_LIBS = ${OPENVINO_LIBS}")
list(APPEND FASTDEPLOY_LIBS ${OPENVINO_LIBS})
endif()
if(WITH_GPU)
@@ -100,8 +105,6 @@ if (ENABLE_TEXT)
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_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)
endif()
@@ -110,6 +113,9 @@ if(ENABLE_PADDLE_FRONTEND)
list(APPEND FASTDEPLOY_LIBS ${PADDLE2ONNX_LIB})
endif()
message("FASTDEPLOY_LIBS = ${FASTDEPLOY_LIBS}")
remove_duplicate_libraries(FASTDEPLOY_LIBS)
# Print compiler information
message(STATUS "")
message(STATUS "*************FastDeploy Building Summary**********")
@@ -132,6 +138,7 @@ endif()
message(STATUS " ENABLE_TRT_BACKEND : ${ENABLE_TRT_BACKEND}")
message(STATUS " ENABLE_VISION : ${ENABLE_VISION}")
message(STATUS " ENABLE_TEXT : ${ENABLE_TEXT}")
message(STATUS " DEPENDENCY_LIBS : ${FASTDEPLOY_LIBS}")
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS "5.4.0")

View File

@@ -285,7 +285,7 @@ int main(int argc, char* argv[]) {
- **加入社区👬:** 微信扫描二维码,进入**FastDeploy技术交流群**
<div align="center">
<img src="https://user-images.githubusercontent.com/54695910/190932769-f36c0173-0fe6-4cab-9bba-f05e550b834f.jpg" width = "225" height = "225" />
<img src="https://user-images.githubusercontent.com/54695910/192177204-811f114f-5393-4abb-bb7a-bdc70e0833be.jpeg" width = "225" height = "225" />
</div>
## Acknowledge

View File

@@ -299,7 +299,7 @@ Notes:
- **Join Us👬** Scan the QR code via WeChat to join our **FastDeploy technology communication group**
<div align="center">
<img src="https://user-images.githubusercontent.com/54695910/190932769-f36c0173-0fe6-4cab-9bba-f05e550b834f.jpg" width = "225" height = "225" />
<img src="https://user-images.githubusercontent.com/54695910/192177204-811f114f-5393-4abb-bb7a-bdc70e0833be.jpeg" width = "225" height = "225" />
</div>
## Acknowledge

View File

@@ -17,8 +17,8 @@ include(ExternalProject)
# update eigen to the commit id f612df27 on 03/16/2021
set(EIGEN_PREFIX_DIR ${THIRD_PARTY_PATH}/eigen3)
set(EIGEN_SOURCE_DIR ${THIRD_PARTY_PATH}/eigen3/src/extern_eigen3)
#set(EIGEN_REPOSITORY https://gitlab.com/libeigen/eigen.git)
set(EIGEN_REPOSITORY https://gitee.com/jiangjiajun/eigen.git)
set(EIGEN_REPOSITORY https://gitlab.com/libeigen/eigen.git)
#set(EIGEN_REPOSITORY https://gitee.com/jiangjiajun/eigen.git)
set(EIGEN_TAG f612df273689a19d25b45ca4f8269463207c4fee)
if(WIN32)
@@ -64,4 +64,4 @@ add_dependencies(eigen3 extern_eigen3)
# sw not support thread_local semantic
if(WITH_SW)
add_definitions(-DEIGEN_AVOID_THREAD_LOCAL)
endif()
endif()

View File

@@ -15,118 +15,75 @@
include(ExternalProject)
set(OPENVINO_PROJECT "extern_openvino")
set(OPENVINO_PREFIX_DIR ${THIRD_PARTY_PATH}/openvino)
set(OPENVINO_INSTALL_DIR ${THIRD_PARTY_PATH}/install/openvino)
set(OPENVINO_INSTALL_INC_DIR
"${OPENVINO_INSTALL_DIR}/include"
CACHE PATH "openvino install include directory." FORCE)
if (WIN32)
set(OPENVINO_SOURCE_DIR
${THIRD_PARTY_PATH}/openvino/src/${OPENVINO_PROJECT}/openvino-win-x64-2022.1.0)
set(OPENVINO_INC_DIR
"${OPENVINO_INSTALL_DIR}/include"
"${OPENVINO_INSTALL_DIR}/include/ie"
CACHE PATH "openvino include directory." FORCE)
set(OPENVINO_LIB_DIR
"${OPENVINO_INSTALL_DIR}/lib/"
CACHE PATH "openvino lib directory." FORCE)
else()
set(OPENVINO_SOURCE_DIR
${THIRD_PARTY_PATH}/openvino/src/${OPENVINO_PROJECT})
set(OPENVINO_INC_DIR
"${OPENVINO_INSTALL_DIR}/include"
CACHE PATH "openvino include directory." FORCE)
set(OPENVINO_LIB_DIR
"${OPENVINO_INSTALL_DIR}/lib/"
CACHE PATH "openvino lib directory." FORCE)
endif()
set(CMAKE_BUILD_RPATH "${CMAKE_BUILD_RPATH}" "${OPENVINO_LIB_DIR}")
set(OPENVINO_VERSION "2022.3.0")
set(OPENVINO_VERSION "2022.2.0.dev20220829")
set(OPENVINO_URL_PREFIX "https://bj.bcebos.com/fastdeploy/third_libs/")
set(COMPRESSED_SUFFIX ".tgz")
if(WIN32)
set(OPENVINO_FILENAME "openvino-win-x64-${OPENVINO_VERSION}.zip")
set(OPENVINO_FILENAME "w_openvino_toolkit_windows_${OPENVINO_VERSION}")
set(COMPRESSED_SUFFIX ".zip")
if(NOT CMAKE_CL_64)
message(FATAL_ERROR "FastDeploy cannot ENABLE_OPENVINO_BACKEND in win32 now.")
endif()
elseif(APPLE)
message(FATAL_ERROR "FastDeploy cannot ENABLE_OPENVINO_BACKEND in Mac OSX now.")
if(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "arm64")
set(OPENVINO_FILENAME "openvino-osx-arm64-${OPENVINO_VERSION}.tgz")
message("Cannot compile with openvino while in osx arm64 platform right now")
else()
set(OPENVINO_FILENAME "openvino-osx-x86_64-${OPENVINO_VERSION}.tgz")
set(OPENVINO_FILENAME "m_openvino_toolkit_osx_${OPENVINO_VERSION}")
endif()
else()
if(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "aarch64")
message("Cannot compile with openvino while in linux-aarch64 platform")
else()
set(OPENVINO_FILENAME "openvino-linux-x64-${OPENVINO_VERSION}.tgz")
set(OPENVINO_FILENAME "l_openvino_toolkit_centos7_${OPENVINO_VERSION}")
endif()
endif()
set(OPENVINO_URL "${OPENVINO_URL_PREFIX}${OPENVINO_FILENAME}")
set(OPENVINO_URL "${OPENVINO_URL_PREFIX}${OPENVINO_FILENAME}${COMPRESSED_SUFFIX}")
include_directories(${OPENVINO_INC_DIR}
)# For OPENVINO code to include internal headers.
set(OPENVINO_INSTALL_DIR ${THIRD_PARTY_PATH}/install/${OPENVINO_FILENAME}/runtime)
set(OPENVINO_INSTALL_INC_DIR
"${OPENVINO_INSTALL_DIR}/include"
"${OPENVINO_INSTALL_DIR}/include/ie"
CACHE PATH "openvino install include directory." FORCE)
set(OPENVINO_LIB_DIR
"${OPENVINO_INSTALL_DIR}/lib/"
"${OPENVINO_INSTALL_DIR}/3rdparty/tbb/lib/"
CACHE PATH "openvino lib directory." FORCE)
set(CMAKE_BUILD_RPATH "${CMAKE_BUILD_RPATH}" "${OPENVINO_LIB_DIR}")
# For OPENVINO code to include internal headers.
include_directories(${OPENVINO_INSTALL_INC_DIR})
download_and_decompress(${OPENVINO_URL}
${CMAKE_CURRENT_BINARY_DIR}/${OPENVINO_FILENAME}${COMPRESSED_SUFFIX}
${THIRD_PARTY_PATH}/install)
if(WIN32)
set(OPENVINO_LIB
"${OPENVINO_INSTALL_DIR}/lib/openvino.lib"
CACHE FILEPATH "OPENVINO static library." FORCE)
file(GLOB_RECURSE OPENVINO_LIB_FILES ${OPENVINO_INSTALL_DIR}/lib/intel64/Release/*)
file(COPY ${OPENVINO_LIB_FILES} DESTINATION ${OPENVINO_INSTALL_DIR}/lib/)
file(REMOVE_RECURSE ${OPENVINO_INSTALL_DIR}/lib/intel64)
file(GLOB_RECURSE OPENVINO_BIN_FILES ${OPENVINO_INSTALL_DIR}/bin/intel64/Release/*)
file(COPY ${OPENVINO_BIN_FILES} DESTINATION ${OPENVINO_INSTALL_DIR}/bin/)
file(REMOVE_RECURSE ${OPENVINO_INSTALL_DIR}/bin/intel64)
elseif(APPLE)
set(OPENVINO_LIB
"${OPENVINO_INSTALL_DIR}/lib/libopenvino.dylib"
CACHE FILEPATH "OPENVINO static library." FORCE)
file(GLOB_RECURSE OPENVINO_LIB_FILES ${OPENVINO_INSTALL_DIR}/lib/intel64/Release/*)
file(COPY ${OPENVINO_LIB_FILES} DESTINATION ${OPENVINO_INSTALL_DIR}/lib/)
file(REMOVE_RECURSE ${OPENVINO_INSTALL_DIR}/lib/intel64)
else()
set(OPENVINO_LIB
"${OPENVINO_INSTALL_DIR}/lib/libopenvino.so"
CACHE FILEPATH "OPENVINO static library." FORCE)
file(GLOB_RECURSE OPENVINO_LIB_FILES ${OPENVINO_INSTALL_DIR}/lib/intel64/*)
file(COPY ${OPENVINO_LIB_FILES} DESTINATION ${OPENVINO_INSTALL_DIR}/lib/)
file(REMOVE_RECURSE ${OPENVINO_INSTALL_DIR}/lib/intel64)
endif()
if (WIN32)
ExternalProject_Add(
${OPENVINO_PROJECT}
${EXTERNAL_PROJECT_LOG_ARGS}
URL ${OPENVINO_URL}
PREFIX ${OPENVINO_PREFIX_DIR}
DOWNLOAD_NO_PROGRESS 1
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
UPDATE_COMMAND ""
INSTALL_COMMAND
${CMAKE_COMMAND} -E remove_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}/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}/3rdparty ${OPENVINO_INSTALL_DIR}/3rdparty
BUILD_BYPRODUCTS ${OPENVINO_LIB})
else()
ExternalProject_Add(
${OPENVINO_PROJECT}
${EXTERNAL_PROJECT_LOG_ARGS}
URL ${OPENVINO_URL}
PREFIX ${OPENVINO_PREFIX_DIR}
DOWNLOAD_NO_PROGRESS 1
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
UPDATE_COMMAND ""
INSTALL_COMMAND
${CMAKE_COMMAND} -E remove_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}/include
${OPENVINO_INSTALL_INC_DIR}
BUILD_BYPRODUCTS ${OPENVINO_LIB})
endif()
file(REMOVE_RECURSE ${THIRD_PARTY_PATH}/install/${OPENVINO_FILENAME}/docs)
file(REMOVE_RECURSE ${THIRD_PARTY_PATH}/install/${OPENVINO_FILENAME}/install_dependencies)
file(REMOVE_RECURSE ${THIRD_PARTY_PATH}/install/${OPENVINO_FILENAME}/samples)
file(REMOVE_RECURSE ${THIRD_PARTY_PATH}/install/${OPENVINO_FILENAME}/setupvars.sh)
file(REMOVE_RECURSE ${THIRD_PARTY_PATH}/install/${OPENVINO_FILENAME}/tools)
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})
endif()
add_library(external_openvino STATIC IMPORTED GLOBAL)
set_property(TARGET external_openvino PROPERTY IMPORTED_LOCATION ${OPENVINO_LIB})
add_dependencies(external_openvino ${OPENVINO_PROJECT})
get_openvino_libs(${OPENVINO_INSTALL_DIR})
message("OPENVINO_LIBS = ${OPENVINO_LIBS}")
list(APPEND DEPEND_LIBS ${OPENVINO_LIBS})

View File

@@ -26,3 +26,36 @@ function(download_and_decompress url filename decompress_dir)
message("Decompress file ${filename} ...")
execute_process(COMMAND ${CMAKE_COMMAND} -E tar -xf ${filename} WORKING_DIRECTORY ${decompress_dir})
endfunction()
function(get_openvino_libs OPENVINO_RUNTIME_DIR)
set(LIB_LIST "")
find_library(OPENVINO_LIB openvino ${OPENVINO_RUNTIME_DIR}/lib/ NO_DEFAULT_PATH)
list(APPEND LIB_LIST ${OPENVINO_LIB})
find_package(TBB PATHS "${OPENVINO_RUNTIME_DIR}/3rdparty/tbb")
if (TBB_FOUND)
list(APPEND LIB_LIST ${TBB_IMPORTED_TARGETS})
else()
# TODO(zhoushunjie): Use openvino with tbb on linux in future.
set(OMP_LIB "${OPENVINO_RUNTIME_DIR}/3rdparty/omp/lib/libiomp5.so")
list(APPEND LIB_LIST ${OMP_LIB})
endif()
set(OPENVINO_LIBS ${LIB_LIST} PARENT_SCOPE)
endfunction()
function(remove_duplicate_libraries libraries)
list(LENGTH ${libraries} lib_length)
set(libraries_temp "")
set(full_libraries "")
foreach(lib_path ${${libraries}})
get_filename_component(lib_name ${lib_path} NAME)
list(FIND libraries_temp ${lib_name} lib_idx)
if (${lib_idx} EQUAL -1)
list(APPEND libraries_temp ${lib_name})
list(APPEND full_libraries ${lib_path})
endif()
endforeach()
set(${libraries} ${full_libraries} PARENT_SCOPE)
list(LENGTH full_libraries lib_length)
endfunction()

View File

@@ -39,7 +39,7 @@ def process_on_linux(current_dir):
if d not in ["lib", "lib64"]:
continue
rel_path = os.path.relpath(os.path.join(root, d), libs_path)
if path in user_specified_dirs:
if path in user_specified_dirs:
# Note(zhoushunjie): Use the absolute path for user_specified_dirs
rpath = os.path.join(root, d)
else:
@@ -78,14 +78,18 @@ def process_on_mac(current_dir):
for d in dirs:
if d not in ["lib", "lib64"]:
continue
rel_path = rel_path = os.path.relpath(os.path.join(root, d), libs_path)
rpath = "$loader_path/" + rel_path
for lib in fd_libs:
pre_commands.append(
"install_name_tool -delete_rpath '@loader_path/{}' {}".format(
rpath, lib))
commands.append("install_name_tool -add_rpath 'loader_path/{}' {}".
format(rpath, lib))
rel_path = os.path.relpath(os.path.join(root, d), libs_path)
if path in user_specified_dirs:
# Note(zhoushunjie): Use the absolute path for user_specified_dirs
rpath = os.path.join(root, d)
else:
rpath = "$loader_path/" + rel_path
for lib in fd_libs:
pre_commands.append(
"install_name_tool -delete_rpath '@loader_path/{}' {}".format(
rpath, lib))
commands.append("install_name_tool -add_rpath 'loader_path/{}' {}".
format(rpath, lib))
for cmd in pre_commands:
try:
@@ -97,7 +101,6 @@ def process_on_mac(current_dir):
assert subprocess.Popen(
cmd, shell=True) != 0, "Execute command failed: {}".format(cmd)
def process_on_windows(current_dir):
libs_path = os.path.join(current_dir, "fastdeploy", "libs")
third_libs_path = os.path.join(libs_path, "third_libs")