Skip to content

Commit 2d89849

Browse files
luotao1Superjomn
authored andcommitted
add WITH_INFERENCE_API_TEST option (#13425)
1 parent 0c8c0d9 commit 2d89849

File tree

8 files changed

+66
-72
lines changed

8 files changed

+66
-72
lines changed

CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ option(WITH_ANAKIN "Compile with Anakin library" OFF)
6969
option(WITH_GRPC "Use grpc as the default rpc framework" ${WITH_DISTRIBUTE})
7070
option(WITH_BRPC_RDMA "Use brpc rdma as the rpc protocal" OFF)
7171
option(WITH_INFERENCE "Compile fluid inference library" ON)
72+
option(WITH_INFERENCE_API_TEST "Test fluid inference high-level api interface" OFF)
7273
option(WITH_SYSTEM_BLAS "Use system blas library" OFF)
7374
option(PY_VERSION "Compile PaddlePaddle with python3 support" ${PY_VERSION})
7475

paddle/fluid/inference/CMakeLists.txt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,7 @@ get_property(fluid_modules GLOBAL PROPERTY FLUID_MODULES)
1717
# paddle_fluid_origin exclude inference api interface
1818
cc_library(paddle_fluid_origin DEPS ${fluid_modules} paddle_fluid_api)
1919

20-
#if(APPLE)
21-
add_subdirectory(api)
22-
#endif()
20+
add_subdirectory(api)
2321

2422
# Create static library
2523
cc_library(paddle_fluid DEPS ${fluid_modules} paddle_fluid_api paddle_inference_api analysis_predictor)
@@ -57,5 +55,7 @@ endif()
5755
if(WITH_TESTING)
5856
# tests/book depends the models that generated by python/paddle/fluid/tests/book
5957
add_subdirectory(tests/book)
60-
add_subdirectory(tests/api)
58+
if(WITH_INFERENCE_API_TEST)
59+
add_subdirectory(tests/api)
60+
endif()
6161
endif()

paddle/fluid/inference/api/CMakeLists.txt

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -69,25 +69,4 @@ if (WITH_ANAKIN AND WITH_MKL) # only needed in CI
6969
endfunction()
7070
anakin_target(inference_anakin_api)
7171
anakin_target(inference_anakin_api_shared)
72-
if (WITH_TESTING)
73-
# TODO(luotao): ANAKIN_MODLE_URL etc will move to demo ci later.
74-
set(INFERENCE_URL "http://paddle-inference-dist.bj.bcebos.com")
75-
set(ANAKIN_RNN_MODLE_URL "${INFERENCE_URL}/anakin_test%2Fditu_rnn.anakin2.model.bin")
76-
set(ANAKIN_RNN_DATA_URL "${INFERENCE_URL}/anakin_test%2Fditu_rnn_data.txt")
77-
execute_process(COMMAND bash -c "mkdir -p ${ANAKIN_SOURCE_DIR}")
78-
execute_process(COMMAND bash -c "cd ${ANAKIN_SOURCE_DIR}; wget -q --no-check-certificate ${ANAKIN_RNN_MODLE_URL} -N")
79-
execute_process(COMMAND bash -c "cd ${ANAKIN_SOURCE_DIR}; wget -q --no-check-certificate ${ANAKIN_RNN_DATA_URL} -N")
80-
if(WITH_GPU)
81-
set(anakin_test_extra_deps dynload_cuda)
82-
set(ANAKIN_MODLE_URL "${INFERENCE_URL}/mobilenet_v2.anakin.bin")
83-
execute_process(COMMAND bash -c "cd ${ANAKIN_SOURCE_DIR}; wget -q --no-check-certificate ${ANAKIN_MODLE_URL} -N")
84-
cc_test(api_anakin_engine_tester SRCS api_anakin_engine_tester.cc
85-
ARGS --model=${ANAKIN_SOURCE_DIR}/mobilenet_v2.anakin.bin
86-
DEPS inference_anakin_api_shared ${anakin_test_extra_deps} SERIAL)
87-
endif()
88-
cc_test(api_anakin_engine_rnn_tester SRCS api_anakin_engine_rnn_tester.cc
89-
ARGS --model=${ANAKIN_SOURCE_DIR}/anakin_test%2Fditu_rnn.anakin2.model.bin
90-
--datapath=${ANAKIN_SOURCE_DIR}/anakin_test%2Fditu_rnn_data.txt
91-
DEPS inference_anakin_api_shared ${anakin_test_extra_deps} SERIAL)
92-
endif(WITH_TESTING)
9372
endif()

paddle/fluid/inference/tests/api/CMakeLists.txt

Lines changed: 56 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,77 +1,87 @@
1-
set(INFERENCE_URL "http://paddle-inference-dist.bj.bcebos.com")
2-
set(INFERENCE_DEMO_INSTALL_DIR "${THIRD_PARTY_PATH}/inference_demo")
1+
set(INFERENCE_URL "http://paddle-inference-dist.cdn.bcebos.com")
2+
set(INFERENCE_DEMO_INSTALL_DIR "${THIRD_PARTY_PATH}/inference_demo" CACHE STRING
3+
"A path setting inference demo download directories.")
34
set(INFERENCE_EXTRA_DEPS paddle_inference_api paddle_fluid_api ir_pass_manager analysis_predictor)
4-
function (inference_download_and_uncompress install_dir filename)
5-
message(STATUS "Download inference test stuff from ${INFERENCE_URL}/${filename}")
5+
function (inference_download install_dir url filename)
6+
message(STATUS "Download inference test stuff from ${url}/${filename}")
67
execute_process(COMMAND bash -c "mkdir -p ${install_dir}")
7-
execute_process(COMMAND bash -c "cd ${install_dir} && wget -q ${INFERENCE_URL}/${filename}")
8-
execute_process(COMMAND bash -c "cd ${install_dir} && tar xzf ${filename}")
8+
execute_process(COMMAND bash -c "cd ${install_dir} && wget -q ${url}/${filename}")
99
message(STATUS "finish downloading ${filename}")
10-
endfunction(inference_download_and_uncompress)
10+
endfunction()
11+
12+
function (inference_download_and_uncompress install_dir url filename)
13+
inference_download(${install_dir} ${url} ${filename})
14+
execute_process(COMMAND bash -c "cd ${install_dir} && tar xzf ${filename}")
15+
endfunction()
1116

1217
function(download_model_and_data install_dir model_name data_name)
13-
if (NOT EXISTS ${install_dir} AND WITH_INFERENCE)
14-
inference_download_and_uncompress(${install_dir} ${model_name})
15-
inference_download_and_uncompress(${install_dir} ${data_name})
18+
if (NOT EXISTS ${install_dir})
19+
inference_download_and_uncompress(${install_dir} ${INFERENCE_URL} ${model_name})
20+
inference_download_and_uncompress(${install_dir} ${INFERENCE_URL} ${data_name})
1621
endif()
1722
endfunction()
1823

24+
function(inference_analysis_api_test target install_dir filename)
25+
inference_analysis_test(${target} SRCS ${filename}
26+
EXTRA_DEPS ${INFERENCE_EXTRA_DEPS}
27+
ARGS --infer_model=${install_dir}/model --infer_data=${install_dir}/data.txt)
28+
endfunction()
29+
1930
# RNN1
20-
# TODO: fix this test on MACOS
21-
message(WARNING "These tests has been disabled in OSX before being fixed: \n test_analyzer_rnn1")
2231
if(NOT APPLE)
2332
set(RNN1_INSTALL_DIR "${INFERENCE_DEMO_INSTALL_DIR}/rnn1")
2433
download_model_and_data(${RNN1_INSTALL_DIR} "rnn1%2Fmodel.tar.gz" "rnn1%2Fdata.txt.tar.gz")
25-
inference_analysis_test(test_analyzer_rnn1 SRCS analyzer_rnn1_tester.cc
26-
EXTRA_DEPS ${INFERENCE_EXTRA_DEPS}
27-
ARGS --infer_model=${RNN1_INSTALL_DIR}/model
28-
--infer_data=${RNN1_INSTALL_DIR}/data.txt)
29-
endif(NOT APPLE)
34+
inference_analysis_api_test(test_analyzer_rnn1 ${RNN1_INSTALL_DIR} analyzer_rnn1_tester.cc)
35+
else()
36+
# TODO: fix this test on MACOS, the reason is that
37+
# fusion_seqexpand_concat_fc_op is not supported on MACOS
38+
message(WARNING "These tests has been disabled in OSX before being fixed: \n test_analyzer_rnn1")
39+
endif()
3040

3141
# RNN2
3242
set(RNN2_INSTALL_DIR "${INFERENCE_DEMO_INSTALL_DIR}/rnn2")
3343
download_model_and_data(${RNN2_INSTALL_DIR} "rnn2_model.tar.gz" "rnn2_data.txt.tar.gz")
34-
inference_analysis_test(test_analyzer_rnn2 SRCS analyzer_rnn2_tester.cc
35-
EXTRA_DEPS ${INFERENCE_EXTRA_DEPS}
36-
ARGS --infer_model=${RNN2_INSTALL_DIR}/model
37-
--infer_data=${RNN2_INSTALL_DIR}/data.txt)
44+
inference_analysis_api_test(test_analyzer_rnn2 ${RNN2_INSTALL_DIR} analyzer_rnn2_tester.cc)
3845

3946
# chinese_ner
4047
set(CHINESE_NER_INSTALL_DIR "${INFERENCE_DEMO_INSTALL_DIR}/chinese_ner")
4148
download_model_and_data(${CHINESE_NER_INSTALL_DIR} "chinese_ner_model.tar.gz" "chinese_ner-data.txt.tar.gz")
42-
inference_analysis_test(test_analyzer_ner SRCS analyzer_ner_tester.cc
43-
EXTRA_DEPS ${INFERENCE_EXTRA_DEPS}
44-
ARGS --infer_model=${CHINESE_NER_INSTALL_DIR}/model
45-
--infer_data=${CHINESE_NER_INSTALL_DIR}/data.txt)
49+
inference_analysis_api_test(test_analyzer_ner ${CHINESE_NER_INSTALL_DIR} analyzer_ner_tester.cc)
4650

4751
# lac
4852
set(LAC_INSTALL_DIR "${INFERENCE_DEMO_INSTALL_DIR}/lac")
4953
download_model_and_data(${LAC_INSTALL_DIR} "lac_model.tar.gz" "lac_data.txt.tar.gz")
50-
inference_analysis_test(test_analyzer_lac SRCS analyzer_lac_tester.cc
51-
EXTRA_DEPS ${INFERENCE_EXTRA_DEPS}
52-
ARGS --infer_model=${LAC_INSTALL_DIR}/model
53-
--infer_data=${LAC_INSTALL_DIR}/data.txt)
54+
inference_analysis_api_test(test_analyzer_lac ${LAC_INSTALL_DIR} analyzer_lac_tester.cc)
5455

5556
# text_classification
5657
set(TEXT_CLASSIFICATION_INSTALL_DIR "${INFERENCE_DEMO_INSTALL_DIR}/text_classification")
5758
download_model_and_data(${TEXT_CLASSIFICATION_INSTALL_DIR} "text-classification-Senta.tar.gz" "text_classification_data.txt.tar.gz")
58-
inference_analysis_test(test_analyzer_text_classification SRCS analyzer_text_classification_tester.cc
59-
EXTRA_DEPS ${INFERENCE_EXTRA_DEPS}
60-
ARGS --infer_model=${TEXT_CLASSIFICATION_INSTALL_DIR}/model
61-
--infer_data=${TEXT_CLASSIFICATION_INSTALL_DIR}/data.txt)
59+
inference_analysis_api_test(test_analyzer_text_classification ${TEXT_CLASSIFICATION_INSTALL_DIR} analyzer_text_classification_tester.cc)
6260

6361
# ocr
64-
set(OCR_MODEL_URL "http://paddlemodels.cdn.bcebos.com/inference-vis-demos%2Focr.tar.gz")
65-
set(OCR_INSTALL_DIR "${THIRD_PARTY_PATH}/inference_demo/ocr")
66-
if (NOT EXISTS ${OCR_INSTALL_DIR} AND WITH_INFERENCE)
67-
get_filename_component(filename ${OCR_MODEL_URL} NAME)
68-
message(STATUS "Download inference test stuff ${filename} from ${OCR_MODEL_URL}")
69-
execute_process(COMMAND bash -c "mkdir -p ${OCR_INSTALL_DIR}")
70-
execute_process(COMMAND bash -c "cd ${OCR_INSTALL_DIR} && wget -q ${OCR_MODEL_URL}")
71-
execute_process(COMMAND bash -c "cd ${OCR_INSTALL_DIR} && tar xzf ${filename}")
72-
message(STATUS "finish downloading ${filename}")
62+
set(OCR_INSTALL_DIR "${INFERENCE_DEMO_INSTALL_DIR}/ocr")
63+
if (NOT EXISTS ${OCR_INSTALL_DIR})
64+
inference_download_and_uncompress(${OCR_INSTALL_DIR} "http://paddlemodels.cdn.bcebos.com/" "inference-vis-demos%2Focr.tar.gz")
65+
endif()
66+
inference_analysis_api_test(test_analyzer_ocr ${OCR_INSTALL_DIR} analyzer_vis_tester.cc)
67+
68+
# anakin
69+
if (WITH_ANAKIN AND WITH_MKL) # only needed in CI
70+
# anakin rnn1
71+
set(ANAKIN_INSTALL_DIR "${INFERENCE_DEMO_INSTALL_DIR}/anakin")
72+
set(ANAKIN_RNN1_INSTALL_DIR "${ANAKIN_INSTALL_DIR}/rnn1")
73+
inference_download(${ANAKIN_RNN1_INSTALL_DIR} ${INFERENCE_URL} "anakin_test%2Fditu_rnn.anakin2.model.bin")
74+
inference_download(${ANAKIN_RNN1_INSTALL_DIR} ${INFERENCE_URL} "anakin_test%2Fditu_rnn_data.txt")
75+
cc_test(test_anakin_rnn1 SRCS anakin_rnn1_tester.cc
76+
ARGS --model=${ANAKIN_RNN1_INSTALL_DIR}/anakin_test%2Fditu_rnn.anakin2.model.bin
77+
--datapath=${ANAKIN_RNN1_INSTALL_DIR}/anakin_test%2Fditu_rnn_data.txt
78+
DEPS inference_anakin_api_shared SERIAL)
79+
# anakin mobilenet
80+
if(WITH_GPU)
81+
set(ANAKIN_MOBILENET_INSTALL_DIR "${ANAKIN_INSTALL_DIR}/mobilenet")
82+
inference_download(${ANAKIN_MOBILENET_INSTALL_DIR} ${INFERENCE_URL} "mobilenet_v2.anakin.bin")
83+
cc_test(test_anakin_mobilenet SRCS anakin_mobilenet_tester.cc
84+
ARGS --model=${ANAKIN_MOBILENET_INSTALL_DIR}/mobilenet_v2.anakin.bin
85+
DEPS inference_anakin_api_shared dynload_cuda SERIAL)
86+
endif()
7387
endif()
74-
inference_analysis_test(test_analyzer_ocr SRCS analyzer_vis_tester.cc
75-
EXTRA_DEPS ${INFERENCE_EXTRA_DEPS}
76-
ARGS --infer_model=${OCR_INSTALL_DIR}/model
77-
--infer_data=${OCR_INSTALL_DIR}/data.txt)

paddle/scripts/paddle_build.sh

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,8 @@ function cmake_gen() {
135135
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON
136136
-DWITH_CONTRIB=${WITH_CONTRIB:-ON}
137137
-DWITH_INFERENCE=${WITH_INFERENCE:-ON}
138+
-DWITH_INFERENCE_API_TEST=${WITH_INFERENCE_API_TEST:-ON}
139+
-DINFERENCE_DEMO_INSTALL_DIR=${INFERENCE_DEMO_INSTALL_DIR:-/root/.cache/inference_demo}
138140
-DWITH_ANAKIN=${WITH_ANAKIN:-OFF}
139141
-DPY_VERSION=${PY_VERSION:-2.7}
140142
========================================
@@ -165,6 +167,8 @@ EOF
165167
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
166168
-DWITH_CONTRIB=${WITH_CONTRIB:-ON} \
167169
-DWITH_INFERENCE=${WITH_INFERENCE:-ON} \
170+
-DWITH_INFERENCE_API_TEST=${WITH_INFERENCE_API_TEST:-ON} \
171+
-DINFERENCE_DEMO_INSTALL_DIR=${INFERENCE_DEMO_INSTALL_DIR:-/root/.cache/inference_demo} \
168172
-DWITH_ANAKIN=${WITH_ANAKIN:-OFF} \
169173
-DPY_VERSION=${PY_VERSION:-2.7}
170174
}

python/paddle/fluid/tests/unittests/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ list(REMOVE_ITEM TEST_OPS test_cond_op) # FIXME(qijun): https://github.com/Paddl
2929
list(REMOVE_ITEM TEST_OPS op_test) # op_test is a helper python file, not a test
3030
list(REMOVE_ITEM TEST_OPS decorators) # decorators is a helper python file, not a test
3131

32-
message(WARNING "These tests has been disabled in OSX before being fixed: \n test_detection_map_op \n test_desc_clone \n test_debugger \n test_program_code \n test_dist_transformer \n test_dist_se_resnext")
3332
if(APPLE)
33+
message(WARNING "These tests has been disabled in OSX before being fixed: \n test_detection_map_op \n test_desc_clone \n test_debugger \n test_program_code \n test_dist_transformer \n test_dist_se_resnext")
3434
# this op is not support on mac
3535
list(REMOVE_ITEM TEST_OPS test_fusion_seqexpand_concat_fc_op)
3636
# TODO: add the unitest back when it fixed

0 commit comments

Comments
 (0)