CMakeLists.txt 10.1 KB
Newer Older
1 2
file(GLOB TEST_OPS RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "test_*.py")
string(REPLACE ".py" "" TEST_OPS "${TEST_OPS}")
3
set(GC_ENVS FLAGS_eager_delete_tensor_gb=0.0 FLAGS_fast_eager_deletion_mode=1 FLAGS_memory_fraction_of_eager_deletion=1.0) 
4 5 6

if(NOT WITH_DISTRIBUTE)
    list(REMOVE_ITEM TEST_OPS test_recv_op)
7 8 9 10
    list(REMOVE_ITEM TEST_OPS test_dist_transpiler)
    list(REMOVE_ITEM TEST_OPS test_simple_dist_transpiler)
    list(REMOVE_ITEM TEST_OPS test_listen_and_serv_op)
    LIST(REMOVE_ITEM TEST_OPS test_dist_mnist)
11 12
    LIST(REMOVE_ITEM TEST_OPS test_dist_mnist_nccl)
    LIST(REMOVE_ITEM TEST_OPS test_dist_mnist_lars)
13
    LIST(REMOVE_ITEM TEST_OPS test_dist_word2vec)
M
minqiyang 已提交
14
    LIST(REMOVE_ITEM TEST_OPS test_dist_ctr)
M
minqiyang 已提交
15 16 17
    LIST(REMOVE_ITEM TEST_OPS test_dist_simnet_bow)
    LIST(REMOVE_ITEM TEST_OPS test_dist_mnist_batch_merge)
    LIST(REMOVE_ITEM TEST_OPS test_dist_text_classification)
T
tangwei12 已提交
18 19
    LIST(REMOVE_ITEM TEST_OPS test_nce_remote_table_op)
    LIST(REMOVE_ITEM TEST_OPS test_hsigmoid_remote_table_op)
20 21
endif(NOT WITH_DISTRIBUTE)

G
gongweibao 已提交
22 23
LIST(REMOVE_ITEM TEST_OPS test_launch)

Y
Yu Yang 已提交
24 25
if (NOT ${WITH_GPU})
    LIST(REMOVE_ITEM TEST_OPS test_conv2d_fusion_op)
26
    LIST(REMOVE_ITEM TEST_OPS test_parallel_dygraph_mnist) # TODO(Yancey1989): parallel dygraph support CPU device in future
P
peizhilin 已提交
27
elseif(${CUDNN_VERSION} VERSION_LESS 7100)
D
Dang Qingqing 已提交
28 29 30
    LIST(REMOVE_ITEM TEST_OPS test_conv2d_fusion_op)
endif()

31
list(REMOVE_ITEM TEST_OPS test_seq_concat_op) # FIXME(helin): https://github.com/PaddlePaddle/Paddle/issues/8290
Q
Qiyang Min 已提交
32
list(REMOVE_ITEM TEST_OPS test_modified_huber_loss_op) # FIXME(qijun) https://github.com/PaddlePaddle/Paddle/issues/5184
33 34 35
list(REMOVE_ITEM TEST_OPS test_lstm_unit_op) # # FIXME(qijun) https://github.com/PaddlePaddle/Paddle/issues/5185
list(REMOVE_ITEM TEST_OPS test_cond_op) # FIXME(qijun): https://github.com/PaddlePaddle/Paddle/issues/5101#issuecomment-339814957

H
Hongyu Liu 已提交
36

37
list(REMOVE_ITEM TEST_OPS op_test) # op_test is a helper python file, not a test
38
list(REMOVE_ITEM TEST_OPS decorator_helper) # decorator_helper is a helper python file, not a test
39
if(APPLE)
40 41 42 43
    if(NOT WITH_DISTRIBUTE)
        list(REMOVE_ITEM TEST_OPS test_desc_clone)
        list(REMOVE_ITEM TEST_OPS test_program_code)
    endif(NOT WITH_DISTRIBUTE)
44
    message(WARNING "These tests has been disabled in OSX before being fixed:\n test_fuse_elewise_add_act_pass \n test_detection_map_op \n test_dist_se_resnext")
45 46
    # this op is not support on mac
    list(REMOVE_ITEM TEST_OPS test_fusion_seqexpand_concat_fc_op)
47 48 49
    # TODO: add the unitest back when it fixed
    list(REMOVE_ITEM TEST_OPS test_detection_map_op)
    list(REMOVE_ITEM TEST_OPS test_dist_se_resnext)
50 51
    # TODO(tangwei12): add the unitest back when it fixed
    list(REMOVE_ITEM TEST_OPS test_dist_word2vec)
52
    list(REMOVE_ITEM TEST_OPS test_fuse_elewise_add_act_pass)
53
endif()
T
Tao Luo 已提交
54 55 56 57
if(NOT WITH_MKLML)
    # this op is not support on openblas
    list(REMOVE_ITEM TEST_OPS test_fusion_seqexpand_concat_fc_op)
endif()
58 59 60

function(py_test_modules TARGET_NAME)
  if(WITH_TESTING)
61
    set(options SERIAL)
62
    set(oneValueArgs "")
63
    set(multiValueArgs MODULES DEPS ENVS)
64 65
    cmake_parse_arguments(py_test_modules "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
    add_test(NAME ${TARGET_NAME}
66 67 68
        COMMAND ${CMAKE_COMMAND} -E env PYTHONPATH=${PADDLE_BINARY_DIR}/python ${py_test_modules_ENVS}
        ${PYTHON_EXECUTABLE} ${PADDLE_SOURCE_DIR}/tools/test_runner.py ${py_test_modules_MODULES}
        WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
69 70 71
    if (py_test_modules_SERIAL)         
        set_property(TEST ${TARGET_NAME} PROPERTY RUN_SERIAL 1)            
    endif()
T
tianshuo78520a 已提交
72
    set_tests_properties(${TARGET_NAME} PROPERTIES TIMEOUT 350)
73 74
  endif()
endfunction()
G
gongweibao 已提交
75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97

function(bash_test_modules TARGET_NAME)
    if(NOT WITH_TESTING)
        return()
    endif()

    set(options SERIAL)
    set(oneValueArgs "")
    set(multiValueArgs MODULES DEPS ENVS)
    cmake_parse_arguments(bash_test_modules "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})

    message(STATUS "CMAKE_CURRENT_BINARY_DIR:" ${CMAKE_CURRENT_BINARY_DIR})

    add_test(NAME ${TARGET_NAME}
        COMMAND ${CMAKE_COMMAND} -E env PYTHONPATH=${PADDLE_BINARY_DIR}/python ${bash_test_modules_ENVS}
        bash ${CMAKE_CURRENT_BINARY_DIR}/${bash_test_modules_MODULES}
        WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
    if (bash_test_modules_SERIAL)
        set_property(TEST ${TARGET_NAME} PROPERTY RUN_SERIAL 1)
    endif()
    set_tests_properties(${TARGET_NAME} PROPERTIES TIMEOUT 600)
endfunction()

98
list(REMOVE_ITEM TEST_OPS test_warpctc_op)
T
typhoonzero 已提交
99
list(REMOVE_ITEM TEST_OPS test_dist_train)
T
typhoonzero 已提交
100
list(REMOVE_ITEM TEST_OPS test_dist_transpiler)
Y
yuyang18 已提交
101
list(REMOVE_ITEM TEST_OPS test_parallel_executor_crf)
Y
yuyang18 已提交
102
list(REMOVE_ITEM TEST_OPS test_parallel_executor_fetch_feed)
103
list(REMOVE_ITEM TEST_OPS test_dist_se_resnext)
104
list(REMOVE_ITEM TEST_OPS test_dgc_op)
105
list(REMOVE_ITEM TEST_OPS test_dist_se_resnext_nccl)
X
Xin Pan 已提交
106
list(REMOVE_ITEM TEST_OPS test_dist_transformer)
107
list(REMOVE_ITEM TEST_OPS test_parallel_executor_transformer)
D
dengkaipeng 已提交
108 109
list(REMOVE_ITEM TEST_OPS test_bilinear_interp_op)
list(REMOVE_ITEM TEST_OPS test_nearest_interp_op)
110
list(REMOVE_ITEM TEST_OPS test_imperative_resnet)
111 112
list(REMOVE_ITEM TEST_OPS test_imperative_resnet_sorted_gradient)
list(REMOVE_ITEM TEST_OPS test_imperative_mnist_sorted_gradient)
Y
Yan Xu 已提交
113
list(REMOVE_ITEM TEST_OPS test_imperative_se_resnext)
M
minqiyang 已提交
114
list(REMOVE_ITEM TEST_OPS test_imperative_mnist)
D
dzhwinter 已提交
115
list(REMOVE_ITEM TEST_OPS test_ir_memory_optimize_transformer)
L
lujun 已提交
116
list(REMOVE_ITEM TEST_OPS test_layers)
117
list(REMOVE_ITEM TEST_OPS test_imperative_ocr_attention_model)
118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153

# Some ops need to check results when gc is enabled
# Currently, only ops that register NoNeedBufferVarsInference need to do this test   
set(TEST_OPS_WITH_GC 
  test_concat_op
  test_elementwise_add_op
  test_elementwise_sub_op
  test_fill_constant_batch_size_like_op
  test_fill_zeros_like2_op
  test_gather_op
  test_gaussian_random_batch_size_like_op
  test_linear_chain_crf_op
  test_lod_reset_op
  test_lookup_table_op
  test_mean_op
  test_pad2d_op
  test_scatter_op
  test_sequence_concat
  test_seq_conv
  test_seq_pool
  test_sequence_expand_as
  test_sequence_expand
  test_sequence_pad_op
  test_sequence_unpad_op
  test_sequence_scatter_op
  test_sequence_slice_op
  test_slice_op
  test_space_to_depth_op
  test_squared_l2_distance_op
  test_uniform_random_batch_size_like_op)

foreach(TEST_OP ${TEST_OPS_WITH_GC})
  list(REMOVE_ITEM TEST_OPS ${TEST_OP})
  py_test_modules(${TEST_OP} MODULES ${TEST_OP} ENVS ${GC_ENVS})
endforeach()

Y
yuyang18 已提交
154 155 156
foreach(TEST_OP ${TEST_OPS})
    py_test_modules(${TEST_OP} MODULES ${TEST_OP})
endforeach(TEST_OP)
157
py_test_modules(test_adam_op_multi_thread MODULES test_adam_op ENVS FLAGS_inner_op_parallelism=4)
158 159 160
py_test_modules(test_warpctc_op MODULES test_warpctc_op)
py_test_modules(test_bilinear_interp_op MODULES test_bilinear_interp_op ENVS ${GC_ENVS})
py_test_modules(test_nearest_interp_op MODULES test_nearest_interp_op ENVS ${GC_ENVS})
161
py_test_modules(test_imperative_resnet MODULES test_imperative_resnet ENVS
162
    FLAGS_cudnn_deterministic=1 SERIAL)
163
set_tests_properties(test_imperative_resnet PROPERTIES LABELS "RUN_TYPE=EXCLUSIVE")
164
py_test_modules(test_imperative_resnet_sorted_gradient MODULES test_imperative_resnet_sorted_gradient ENVS
165
        FLAGS_cudnn_deterministic=1 SERIAL)
166
set_tests_properties(test_imperative_resnet_sorted_gradient PROPERTIES LABELS "RUN_TYPE=EXCLUSIVE")
M
minqiyang 已提交
167
py_test_modules(test_imperative_mnist MODULES test_imperative_mnist ENVS
168
    FLAGS_cudnn_deterministic=1)
169
py_test_modules(test_imperative_mnist_sorted_gradient MODULES test_imperative_mnist_sorted_gradient ENVS
170
        FLAGS_cudnn_deterministic=1)
Y
Yan Xu 已提交
171
py_test_modules(test_imperative_se_resnext MODULES test_imperative_se_resnext ENVS
172 173 174
    FLAGS_cudnn_deterministic=1 SERIAL)
set_tests_properties(test_imperative_se_resnext PROPERTIES LABELS "RUN_TYPE=EXCLUSIVE")

175
if(WITH_DISTRIBUTE)
176
    py_test_modules(test_dist_train MODULES test_dist_train)
177
    set_tests_properties(test_listen_and_serv_op PROPERTIES TIMEOUT 20)
G
gongweibao 已提交
178 179 180
    if(WITH_DGC)
        py_test_modules(test_dgc_op MODULES test_dgc_op)
    endif()
J
JiabinYang 已提交
181
    if(NOT APPLE)
182
        set_tests_properties(test_dist_mnist PROPERTIES TIMEOUT 200)
183 184
        set_tests_properties(test_dist_mnist_nccl PROPERTIES TIMEOUT 200)
        set_tests_properties(test_dist_mnist_lars PROPERTIES TIMEOUT 200)
185
        set_tests_properties(test_dist_word2vec PROPERTIES TIMEOUT 200)
186
        py_test_modules(test_dist_se_resnext MODULES test_dist_se_resnext)
187
        py_test_modules(test_dist_se_resnext_nccl MODULES test_dist_se_resnext_nccl)
G
gongweibao 已提交
188
        bash_test_modules(test_launch MODULES test_launch.sh)
189
        # FIXME(typhoonzero): add these tests back
190 191
        # py_test_modules(test_dist_transformer MODULES test_dist_transformer)
        # set_tests_properties(test_dist_transformer PROPERTIES TIMEOUT 1000)
192
    endif(NOT APPLE)
193
    # py_test_modules(test_dist_transpiler MODULES test_dist_transpiler)
194
endif()
195

196 197
py_test_modules(test_parallel_executor_crf MODULES test_parallel_executor_crf)
py_test_modules(test_parallel_executor_fetch_feed MODULES test_parallel_executor_fetch_feed)
C
chengduo 已提交
198
set_tests_properties(test_parallel_executor_fetch_feed PROPERTIES TIMEOUT 450)
199
set_tests_properties(test_parallel_executor_seresnext PROPERTIES TIMEOUT 740)
200
py_test_modules(test_parallel_executor_transformer MODULES test_parallel_executor_transformer)
201
py_test_modules(test_layers MODULES test_layers ENVS FLAGS_cudnn_deterministic=1)
D
dzhwinter 已提交
202
if(NOT WIN32)
203
    py_test_modules(test_ir_memory_optimize_transformer MODULES test_ir_memory_optimize_transformer)
D
dzhwinter 已提交
204
endif()
205

206
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
C
chengduo 已提交
207 208
    # change the timeout from 600 to 2200, because in debug mode, this test need more time.
    set_tests_properties(test_parallel_executor_seresnext PROPERTIES TIMEOUT 2200)
209
endif()
210 211 212 213

if (WITH_NGRAPH)
    add_subdirectory(ngraph)
endif()
214 215 216 217

if (WITH_MKLDNN)
    add_subdirectory(mkldnn)
endif()
218 219 220

if(WITH_DISTRIBUTE)
    set_tests_properties(test_listen_and_serv_op test_nce_remote_table_op test_hsigmoid_remote_table_op
221
            PROPERTIES LABELS "RUN_TYPE=DIST")
222 223
endif()

224 225 226
set_tests_properties(test_recordio_reader test_parallel_executor_test_while_train test_parallel_executor_mnist
        test_parallel_executor_seresnext test_parallel_executor_crf
        PROPERTIES LABELS "RUN_TYPE=DIST")