diff --git a/cmake/external/anakin.cmake b/cmake/external/anakin.cmake index 37464485d8dd5efbb0ed55f39bbe0a85b5db7c16..bbe811fb7b53ac8575fc036ac1c41cdcfe2cfbca 100644 --- a/cmake/external/anakin.cmake +++ b/cmake/external/anakin.cmake @@ -2,29 +2,17 @@ if (NOT WITH_ANAKIN) return() endif() +INCLUDE(ExternalProject) set(ANAKIN_SOURCE_DIR ${THIRD_PARTY_PATH}/anakin) # the anakin install dir is only default one now set(ANAKIN_INSTALL_DIR ${THIRD_PARTY_PATH}/anakin/src/extern_anakin/output) set(ANAKIN_INCLUDE ${ANAKIN_INSTALL_DIR}) set(ANAKIN_LIBRARY ${ANAKIN_INSTALL_DIR}) -SET(ANAKIN_SHARED_LIB ${ANAKIN_LIBRARY}/libanakin.so) -SET(ANAKIN_SABER_LIB ${ANAKIN_LIBRARY}/libanakin_saber_common.so) +set(ANAKIN_SHARED_LIB ${ANAKIN_LIBRARY}/libanakin.so) +set(ANAKIN_SABER_LIB ${ANAKIN_LIBRARY}/libanakin_saber_common.so) -# A helper function used in Anakin, currently, to use it, one need to recursively include -# nearly all the header files. -function(fetch_include_recursively root_dir) - if (IS_DIRECTORY ${root_dir}) - include_directories(BEFORE ${root_dir}) - endif() - - file(GLOB ALL_SUB RELATIVE ${root_dir} ${root_dir}/*) - foreach(sub ${ALL_SUB}) - if (IS_DIRECTORY ${root_dir}/${sub}) - fetch_include_recursively(${root_dir}/${sub}) - endif() - endforeach() -endfunction() -fetch_include_recursively(${ANAKIN_INCLUDE}) +include_directories(${ANAKIN_INCLUDE}) +include_directories(${ANAKIN_INCLUDE}/saber/) set(ANAKIN_COMPILE_EXTRA_FLAGS -Wno-error=unused-but-set-variable -Wno-unused-but-set-variable @@ -60,11 +48,9 @@ ExternalProject_Add( message(STATUS "Anakin for inference is enabled") message(STATUS "Anakin is set INCLUDE:${ANAKIN_INCLUDE} LIBRARY:${ANAKIN_LIBRARY}") -fetch_include_recursively(${ANAKIN_INCLUDE}) -add_dependencies(extern_anakin protobuf mklml) add_library(anakin SHARED IMPORTED GLOBAL) set_property(TARGET anakin PROPERTY IMPORTED_LOCATION ${ANAKIN_SHARED_LIB}) set_property(TARGET anakin PROPERTY IMPORTED_LOCATION ${ANAKIN_SABER_LIB}) set_property(TARGET anakin PROPERTY IMPORTED_LOCATION ${CUDNN_LIBRARY}) -add_dependencies(anakin extern_anakin) +add_dependencies(anakin extern_anakin protobuf mklml) list(APPEND external_project_dependencies anakin) diff --git a/paddle/fluid/inference/api/CMakeLists.txt b/paddle/fluid/inference/api/CMakeLists.txt index 097a9eb8477da59916d3f90a707b4b3bb7636f4d..e9bb1d1c4faaa892d4566f0c9064e8a20446e33e 100644 --- a/paddle/fluid/inference/api/CMakeLists.txt +++ b/paddle/fluid/inference/api/CMakeLists.txt @@ -62,7 +62,6 @@ endif() if (WITH_ANAKIN) # only needed in CI # compile the libinference_anakin_api.a and anakin.so. - fetch_include_recursively(${ANAKIN_INCLUDE}) nv_library(inference_anakin_api SRCS api.cc api_anakin_engine.cc DEPS anakin) nv_library(inference_anakin_api_shared SHARED SRCS api.cc api_anakin_engine.cc DEPS anakin) set(ANAKIN_DEPS_LIB ${ANAKIN_SHARED_LIB} ${ANAKIN_SABER_LIB} ${CUDNN_LIBRARY}) @@ -73,12 +72,11 @@ if (WITH_ANAKIN) # only needed in CI anakin_target(inference_anakin_api) anakin_target(inference_anakin_api_shared) if (WITH_TESTING) + # TODO(luotao): anakin_model will move to demo_ci later set(ANAKIN_MODLE_URL "http://paddle-inference-dist.bj.bcebos.com/mobilenet_v2.anakin.bin") - add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/.timestamp - COMMAND cd ${CMAKE_CURRENT_BINARY_DIR} && wget --no-check-certificate ${ANAKIN_MODLE_URL} - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) + execute_process(COMMAND bash -c "cd ${ANAKIN_INSTALL_DIR}; wget -q --no-check-certificate ${ANAKIN_MODLE_URL}") cc_test(inference_anakin_test SRCS api_anakin_engine_tester.cc - ARGS --model=${CMAKE_CURRENT_BINARY_DIR}/mobilenet_v2.anakin.bin + ARGS --model=${ANAKIN_INSTAL_DIR}/mobilenet_v2.anakin.bin DEPS inference_anakin_api_shared dynload_cuda SERIAL) target_compile_options(inference_anakin_test BEFORE PUBLIC ${ANAKIN_COMPILE_EXTRA_FLAGS}) endif(WITH_TESTING)