From b2367f3661d3bb9fbe97eceb53041cef92fef737 Mon Sep 17 00:00:00 2001 From: luotao1 Date: Fri, 10 Aug 2018 17:04:50 +0800 Subject: [PATCH] update anakin.cmake --- cmake/external/anakin.cmake | 26 ++++++----------------- paddle/fluid/inference/api/CMakeLists.txt | 8 +++---- 2 files changed, 9 insertions(+), 25 deletions(-) diff --git a/cmake/external/anakin.cmake b/cmake/external/anakin.cmake index 37464485d8d..bbe811fb7b5 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 097a9eb8477..e9bb1d1c4fa 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) -- GitLab