From e20234094c5857a12438228608260a2058ef201f Mon Sep 17 00:00:00 2001 From: Wilber Date: Mon, 1 Mar 2021 19:43:46 +0800 Subject: [PATCH] Fix xpu compile and cipher symbol problem. (#31271) --- cmake/external/xpu.cmake | 4 ++-- cmake/third_party.cmake | 1 + paddle/fluid/framework/io/crypto/cipher.cc | 5 ----- paddle/fluid/inference/api/CMakeLists.txt | 9 +++++++-- paddle/fluid/inference/api/api.cc | 6 ++++++ paddle/fluid/inference/api/api_tester.cc | 5 +++++ paddle/fluid/inference/api/demo_ci/CMakeLists.txt | 6 ++++-- 7 files changed, 25 insertions(+), 11 deletions(-) diff --git a/cmake/external/xpu.cmake b/cmake/external/xpu.cmake index 846f6d1b02..3189590645 100644 --- a/cmake/external/xpu.cmake +++ b/cmake/external/xpu.cmake @@ -4,6 +4,8 @@ endif() INCLUDE(ExternalProject) SET(XPU_PROJECT "extern_xpu") +SET(XPU_API_LIB_NAME "libxpuapi.so") +SET(XPU_RT_LIB_NAME "libxpurt.so") if(NOT XPU_SDK_ROOT) if (WITH_AARCH64) @@ -20,8 +22,6 @@ if(NOT XPU_SDK_ROOT) SET(XPU_API_INC_DIR "${THIRD_PARTY_PATH}/install/xpu/include") SET(XPU_LIB_DIR "${THIRD_PARTY_PATH}/install/xpu/lib") - SET(XPU_API_LIB_NAME "libxpuapi.so") - SET(XPU_RT_LIB_NAME "libxpurt.so") SET(XPU_API_LIB "${XPU_LIB_DIR}/${XPU_API_LIB_NAME}") SET(XPU_RT_LIB "${XPU_LIB_DIR}/${XPU_RT_LIB_NAME}") diff --git a/cmake/third_party.cmake b/cmake/third_party.cmake index 44ebf4e89b..8f2f2e6da9 100644 --- a/cmake/third_party.cmake +++ b/cmake/third_party.cmake @@ -317,6 +317,7 @@ endif (WITH_LITE) if (WITH_CRYPTO) include(external/cryptopp) # download, build, install cryptopp + add_definitions(-DPADDLE_WITH_CRYPTO) endif (WITH_CRYPTO) add_custom_target(third_party ALL DEPENDS ${third_party_deps}) diff --git a/paddle/fluid/framework/io/crypto/cipher.cc b/paddle/fluid/framework/io/crypto/cipher.cc index 28767a6834..eca175c020 100644 --- a/paddle/fluid/framework/io/crypto/cipher.cc +++ b/paddle/fluid/framework/io/crypto/cipher.cc @@ -57,9 +57,4 @@ std::shared_ptr CipherFactory::CreateCipher( } } // namespace framework - -std::shared_ptr MakeCipher(const std::string& config_file) { - return framework::CipherFactory::CreateCipher(config_file); -} - } // namespace paddle diff --git a/paddle/fluid/inference/api/CMakeLists.txt b/paddle/fluid/inference/api/CMakeLists.txt index 22aa210c97..9a4637306b 100755 --- a/paddle/fluid/inference/api/CMakeLists.txt +++ b/paddle/fluid/inference/api/CMakeLists.txt @@ -30,8 +30,13 @@ endif() cc_library(analysis_config SRCS analysis_config.cc DEPS ${mkldnn_quantizer_cfg} lod_tensor paddle_pass_builder) cc_library(paddle_pass_builder SRCS paddle_pass_builder.cc) -cc_library(paddle_inference_api SRCS api.cc api_impl.cc helper.cc DEPS lod_tensor scope reset_tensor_array - analysis_config zero_copy_tensor trainer_desc_proto) +if(WITH_CRYPTO) + cc_library(paddle_inference_api SRCS api.cc api_impl.cc helper.cc DEPS lod_tensor scope reset_tensor_array + analysis_config zero_copy_tensor trainer_desc_proto paddle_crypto) +else() + cc_library(paddle_inference_api SRCS api.cc api_impl.cc helper.cc DEPS lod_tensor scope reset_tensor_array + analysis_config zero_copy_tensor trainer_desc_proto) +endif() if(WIN32) target_link_libraries(paddle_inference_api gflags) diff --git a/paddle/fluid/inference/api/api.cc b/paddle/fluid/inference/api/api.cc index f103eb7674..e2befadf0a 100644 --- a/paddle/fluid/inference/api/api.cc +++ b/paddle/fluid/inference/api/api.cc @@ -146,4 +146,10 @@ std::string UpdateDllFlag(const char *name, const char *value) { return ret; } +#ifdef PADDLE_WITH_CRYPTO +std::shared_ptr MakeCipher(const std::string &config_file) { + return framework::CipherFactory::CreateCipher(config_file); +} +#endif + } // namespace paddle diff --git a/paddle/fluid/inference/api/api_tester.cc b/paddle/fluid/inference/api/api_tester.cc index 3b489616af..46724fa6b1 100644 --- a/paddle/fluid/inference/api/api_tester.cc +++ b/paddle/fluid/inference/api/api_tester.cc @@ -94,4 +94,9 @@ TEST(paddle_inference_api, AnalysisConfigCopyCtor) { CHECK_NE(ps, delete_pass); } } + +#ifdef PADDLE_WITH_CRYPTO +TEST(paddle_inference_api, crypto) { paddle::MakeCipher(""); } +#endif + } // namespace paddle diff --git a/paddle/fluid/inference/api/demo_ci/CMakeLists.txt b/paddle/fluid/inference/api/demo_ci/CMakeLists.txt index e24d83af2f..0a09b06280 100644 --- a/paddle/fluid/inference/api/demo_ci/CMakeLists.txt +++ b/paddle/fluid/inference/api/demo_ci/CMakeLists.txt @@ -36,11 +36,13 @@ include_directories("${PADDLE_LIB_THIRD_PARTY_PATH}protobuf/include") include_directories("${PADDLE_LIB_THIRD_PARTY_PATH}glog/include") include_directories("${PADDLE_LIB_THIRD_PARTY_PATH}gflags/include") include_directories("${PADDLE_LIB_THIRD_PARTY_PATH}xxhash/include") +include_directories("${PADDLE_LIB_THIRD_PARTY_PATH}cryptopp/include") link_directories("${PADDLE_LIB_THIRD_PARTY_PATH}protobuf/lib") link_directories("${PADDLE_LIB_THIRD_PARTY_PATH}glog/lib") link_directories("${PADDLE_LIB_THIRD_PARTY_PATH}gflags/lib") link_directories("${PADDLE_LIB_THIRD_PARTY_PATH}xxhash/lib") +link_directories("${PADDLE_LIB_THIRD_PARTY_PATH}cryptopp/lib") link_directories("${PADDLE_LIB}/paddle/lib") if (WIN32) @@ -145,12 +147,12 @@ if (NOT WIN32) set(EXTERNAL_LIB "-lrt -ldl -lpthread") set(DEPS ${DEPS} ${MATH_LIB} ${MKLDNN_LIB} - glog gflags protobuf xxhash + glog gflags protobuf xxhash cryptopp ${EXTERNAL_LIB}) else() set(DEPS ${DEPS} ${MATH_LIB} ${MKLDNN_LIB} - glog gflags_static libprotobuf xxhash ${EXTERNAL_LIB}) + glog gflags_static libprotobuf xxhash cryptopp-static ${EXTERNAL_LIB}) set(DEPS ${DEPS} shlwapi.lib) endif(NOT WIN32) -- GitLab