|
|
|
@ -43,21 +43,21 @@ function(inference_api_test TARGET_NAME)
|
|
|
|
|
endfunction(inference_api_test)
|
|
|
|
|
|
|
|
|
|
cc_library(paddle_inference_api
|
|
|
|
|
SRCS paddle_inference_api.cc paddle_inference_api_impl.cc
|
|
|
|
|
SRCS api.cc api_impl.cc
|
|
|
|
|
DEPS ${FLUID_CORE_MODULES} ${GLOB_OP_LIB})
|
|
|
|
|
if(NOT APPLE)
|
|
|
|
|
set(LINK_FLAGS "-Wl,--retain-symbols-file ${CMAKE_CURRENT_SOURCE_DIR}/paddle_inference_api.sym")
|
|
|
|
|
set(LINK_FLAGS "-Wl,--retain-symbols-file ${CMAKE_CURRENT_SOURCE_DIR}/api.sym")
|
|
|
|
|
set_target_properties(paddle_inference_api PROPERTIES LINK_FLAGS "${LINK_FLAGS}")
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
# Here the shared library doesn't depend on other fluid libraries, or double free will occur.
|
|
|
|
|
cc_library(paddle_inference_api_shared SHARED
|
|
|
|
|
SRCS paddle_inference_api.cc paddle_inference_api_impl.cc)
|
|
|
|
|
SRCS api.cc api_impl.cc)
|
|
|
|
|
add_dependencies(paddle_inference_api_shared ${FLUID_CORE_MODULES} ${GLOB_OP_LIB})
|
|
|
|
|
set_target_properties(paddle_inference_api_shared PROPERTIES OUTPUT_NAME paddle_inference_api)
|
|
|
|
|
|
|
|
|
|
if(NOT APPLE)
|
|
|
|
|
set(LINK_FLAGS "-Wl,--version-script ${CMAKE_CURRENT_SOURCE_DIR}/paddle_inference_api.map")
|
|
|
|
|
set(LINK_FLAGS "-Wl,--version-script ${CMAKE_CURRENT_SOURCE_DIR}/api.map")
|
|
|
|
|
set_target_properties(paddle_inference_api_shared PROPERTIES LINK_FLAGS "${LINK_FLAGS}")
|
|
|
|
|
FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/check_symbol.cmake
|
|
|
|
|
"execute_process(COMMAND bash -c \"${CMAKE_CURRENT_SOURCE_DIR}/check_symbol.sh"
|
|
|
|
@ -73,32 +73,32 @@ if(NOT APPLE)
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
cc_test(test_paddle_inference_api
|
|
|
|
|
SRCS test_paddle_inference_api.cc
|
|
|
|
|
SRCS test_api.cc
|
|
|
|
|
DEPS paddle_inference_api)
|
|
|
|
|
|
|
|
|
|
inference_api_test(test_paddle_inference_api_impl
|
|
|
|
|
inference_api_test(test_api_impl
|
|
|
|
|
ARGS test_word2vec test_image_classification)
|
|
|
|
|
|
|
|
|
|
if(WITH_GPU AND TENSORRT_FOUND)
|
|
|
|
|
cc_library(paddle_inference_tensorrt_subgraph_engine
|
|
|
|
|
SRCS paddle_inference_api_tensorrt_subgraph_engine.cc
|
|
|
|
|
DEPS paddle_inference_api analysis tensorrt_engine paddle_inference_api paddle_fluid_api)
|
|
|
|
|
SRCS api_tensorrt_subgraph_engine.cc
|
|
|
|
|
DEPS paddle_inference_api analysis tensorrt_engine paddle_fluid_api)
|
|
|
|
|
|
|
|
|
|
inference_api_test(test_paddle_inference_api_tensorrt_subgraph_engine ARGS test_word2vec)
|
|
|
|
|
inference_api_test(test_api_tensorrt_subgraph_engine ARGS test_word2vec)
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
if (WITH_ANAKIN) # only needed in CI
|
|
|
|
|
# Due to Anakin do not have official library releases and the versions of protobuf and cuda do not match Paddle's,
|
|
|
|
|
# so anakin library will not be merged to our official inference library. To use anakin prediction API, one need to
|
|
|
|
|
# compile the libinference_anakin_api.a and compile with anakin.so.
|
|
|
|
|
nv_library(inference_anakin_api SRCS paddle_inference_api.cc paddle_inference_api_anakin_engine.cc)
|
|
|
|
|
nv_library(inference_anakin_api_shared SHARED SRCS paddle_inference_api.cc paddle_inference_api_anakin_engine.cc)
|
|
|
|
|
nv_library(inference_anakin_api SRCS api.cc api_anakin_engine.cc)
|
|
|
|
|
nv_library(inference_anakin_api_shared SHARED SRCS api.cc api_anakin_engine.cc)
|
|
|
|
|
target_compile_options(inference_anakin_api BEFORE PUBLIC ${ANAKIN_COMPILE_EXTRA_FLAGS})
|
|
|
|
|
target_compile_options(inference_anakin_api_shared BEFORE PUBLIC ${ANAKIN_COMPILE_EXTRA_FLAGS})
|
|
|
|
|
target_link_libraries(inference_anakin_api anakin anakin_saber_common)
|
|
|
|
|
target_link_libraries(inference_anakin_api_shared anakin anakin_saber_common)
|
|
|
|
|
if (WITH_TESTING)
|
|
|
|
|
cc_test(inference_anakin_test SRCS paddle_inference_api_anakin_engine_tester.cc
|
|
|
|
|
cc_test(inference_anakin_test SRCS api_anakin_engine_tester.cc
|
|
|
|
|
ARGS --model=${ANAKIN_INSTALL_DIR}/mobilenet_v2.anakin.bin
|
|
|
|
|
DEPS inference_anakin_api)
|
|
|
|
|
target_compile_options(inference_anakin_test BEFORE PUBLIC ${ANAKIN_COMPILE_EXTRA_FLAGS})
|
|
|
|
|