CMakeLists.txt 15.4 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
set(dist_ENVS http_proxy="" https_proxy="")
5 6 7

if(NOT WITH_DISTRIBUTE)
    list(REMOVE_ITEM TEST_OPS test_recv_op)
8 9 10 11
    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)
12
    LIST(REMOVE_ITEM TEST_OPS test_dist_mnist_fleetapi)
13 14 15 16 17
    LIST(REMOVE_ITEM TEST_OPS test_dist_mnist_dgc_nccl)
    LIST(REMOVE_ITEM TEST_OPS test_dist_mnist_hallreduce)
    LIST(REMOVE_ITEM TEST_OPS test_dist_mnist_multi_comm)
    LIST(REMOVE_ITEM TEST_OPS test_dist_mnist_ring_allreduce)
    LIST(REMOVE_ITEM TEST_OPS test_dist_mnist_backward_deps)
18
    LIST(REMOVE_ITEM TEST_OPS test_dist_mnist_lars)
19
    LIST(REMOVE_ITEM TEST_OPS test_dist_word2vec)
M
minqiyang 已提交
20
    LIST(REMOVE_ITEM TEST_OPS test_dist_ctr)
M
minqiyang 已提交
21 22 23
    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 已提交
24 25
    LIST(REMOVE_ITEM TEST_OPS test_nce_remote_table_op)
    LIST(REMOVE_ITEM TEST_OPS test_hsigmoid_remote_table_op)
T
tangwei12 已提交
26
    LIST(REMOVE_ITEM TEST_OPS test_dist_fleet_ctr)
27 28
endif(NOT WITH_DISTRIBUTE)

29

30
if(NOT WITH_GPU OR WIN32)
31
    LIST(REMOVE_ITEM TEST_OPS test_c_comm_init_all_op)
32 33 34 35 36 37
    LIST(REMOVE_ITEM TEST_OPS test_allgather)
    LIST(REMOVE_ITEM TEST_OPS test_allreduce)
    LIST(REMOVE_ITEM TEST_OPS test_broadcast)
    LIST(REMOVE_ITEM TEST_OPS test_reducescatter)
endif()

G
gongweibao 已提交
38 39
LIST(REMOVE_ITEM TEST_OPS test_launch)

Y
Yu Yang 已提交
40 41
if (NOT ${WITH_GPU})
    LIST(REMOVE_ITEM TEST_OPS test_conv2d_fusion_op)
42
    LIST(REMOVE_ITEM TEST_OPS test_parallel_dygraph_mnist) # TODO(Yancey1989): parallel dygraph support CPU device in future
P
peizhilin 已提交
43
elseif(${CUDNN_VERSION} VERSION_LESS 7100)
D
Dang Qingqing 已提交
44 45 46
    LIST(REMOVE_ITEM TEST_OPS test_conv2d_fusion_op)
endif()

H
hutuxian 已提交
47 48 49
if(NOT WITH_GPU OR WIN32)
    LIST(REMOVE_ITEM TEST_OPS test_pipeline)
endif() 
50
list(REMOVE_ITEM TEST_OPS test_seq_concat_op) # FIXME(helin): https://github.com/PaddlePaddle/Paddle/issues/8290
Q
Qiyang Min 已提交
51
list(REMOVE_ITEM TEST_OPS test_modified_huber_loss_op) # FIXME(qijun) https://github.com/PaddlePaddle/Paddle/issues/5184
52 53 54
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 已提交
55

56
list(REMOVE_ITEM TEST_OPS op_test) # op_test is a helper python file, not a test
57
list(REMOVE_ITEM TEST_OPS decorator_helper) # decorator_helper is a helper python file, not a test
58
if(APPLE)
59 60 61 62
    if(NOT WITH_DISTRIBUTE)
        list(REMOVE_ITEM TEST_OPS test_desc_clone)
        list(REMOVE_ITEM TEST_OPS test_program_code)
    endif(NOT WITH_DISTRIBUTE)
63
    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_*")
64 65
    # this op is not support on mac
    list(REMOVE_ITEM TEST_OPS test_fusion_seqexpand_concat_fc_op)
66 67
    # TODO: add the unitest back when it fixed
    list(REMOVE_ITEM TEST_OPS test_detection_map_op)
68 69 70 71
    list(REMOVE_ITEM TEST_OPS test_dist_se_resnext_dgc)
    list(REMOVE_ITEM TEST_OPS test_dist_se_resnext_sync)
    list(REMOVE_ITEM TEST_OPS test_dist_se_resnext_async)
    list(REMOVE_ITEM TEST_OPS test_dist_se_resnext_sync_with_memopt)
72 73
    # TODO(tangwei12): add the unitest back when it fixed
    list(REMOVE_ITEM TEST_OPS test_dist_word2vec)
74
    list(REMOVE_ITEM TEST_OPS test_fuse_elewise_add_act_pass)
75
endif()
T
Tao Luo 已提交
76 77 78 79
if(NOT WITH_MKLML)
    # this op is not support on openblas
    list(REMOVE_ITEM TEST_OPS test_fusion_seqexpand_concat_fc_op)
endif()
80

K
Kevin 已提交
81
if(NOT WITH_MKL)
A
Aurelius84 已提交
82
  list(REMOVE_ITEM TEST_OPS test_match_matrix_tensor_op)
K
Kevin 已提交
83 84 85
  list(REMOVE_ITEM TEST_OPS test_var_conv_2d)
endif(NOT WITH_MKL)

86 87 88 89 90
if(WITH_GPU OR NOT WITH_MKLML)
    # matmul with multiple heads need MKL support
    LIST(REMOVE_ITEM TEST_OPS test_matmul_op_with_head)
endif()

91 92
function(py_test_modules TARGET_NAME)
  if(WITH_TESTING)
93
    set(options SERIAL)
94
    set(oneValueArgs "")
95
    set(multiValueArgs MODULES DEPS ENVS)
96
    cmake_parse_arguments(py_test_modules "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
97 98 99 100 101

    if(WITH_COVERAGE)
      add_test(NAME ${TARGET_NAME}
          COMMAND ${CMAKE_COMMAND} -E env PYTHONPATH=${PADDLE_BINARY_DIR}/python ${py_test_modules_ENVS}
          COVERAGE_FILE=${PADDLE_BINARY_DIR}/python-coverage.data
102
          ${PYTHON_EXECUTABLE} -m coverage run --branch -p ${PADDLE_SOURCE_DIR}/tools/test_runner.py ${py_test_modules_MODULES}
103 104 105 106 107 108 109 110 111
          WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
    else()
      add_test(NAME ${TARGET_NAME}
          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})
    endif()

    if (py_test_modules_SERIAL)
112 113
        set_property(TEST ${TARGET_NAME} PROPERTY RUN_SERIAL 1)            
    endif()
114

T
tianshuo78520a 已提交
115
    set_tests_properties(${TARGET_NAME} PROPERTIES TIMEOUT 350)
116 117
  endif()
endfunction()
G
gongweibao 已提交
118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140

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()

141
list(REMOVE_ITEM TEST_OPS test_warpctc_op)
142 143 144 145 146 147

LIST(REMOVE_ITEM TEST_OPS test_lookup_remote_table_op)
LIST(REMOVE_ITEM TEST_OPS test_hsigmoid_remote_table_op)
LIST(REMOVE_ITEM TEST_OPS test_nce_remote_table_op)
LIST(REMOVE_ITEM TEST_OPS test_dist_train)
LIST(REMOVE_ITEM TEST_OPS test_listen_and_serv_op)
T
typhoonzero 已提交
148
list(REMOVE_ITEM TEST_OPS test_dist_transpiler)
Y
yuyang18 已提交
149
list(REMOVE_ITEM TEST_OPS test_parallel_executor_crf)
150
list(REMOVE_ITEM TEST_OPS test_parallel_executor_crf_auto_growth)
Y
yuyang18 已提交
151
list(REMOVE_ITEM TEST_OPS test_parallel_executor_fetch_feed)
152 153 154 155
list(REMOVE_ITEM TEST_OPS test_dist_se_resnext_dgc)
list(REMOVE_ITEM TEST_OPS test_dist_se_resnext_sync)
list(REMOVE_ITEM TEST_OPS test_dist_se_resnext_async)
list(REMOVE_ITEM TEST_OPS test_dist_se_resnext_sync_with_memopt)
156
list(REMOVE_ITEM TEST_OPS test_dgc_op)
157
list(REMOVE_ITEM TEST_OPS test_dist_se_resnext_nccl)
X
Xin Pan 已提交
158
list(REMOVE_ITEM TEST_OPS test_dist_transformer)
159
list(REMOVE_ITEM TEST_OPS test_parallel_executor_transformer)
160
list(REMOVE_ITEM TEST_OPS test_parallel_executor_transformer_auto_growth)
D
dengkaipeng 已提交
161 162
list(REMOVE_ITEM TEST_OPS test_bilinear_interp_op)
list(REMOVE_ITEM TEST_OPS test_nearest_interp_op)
163
list(REMOVE_ITEM TEST_OPS test_imperative_resnet)
164 165
list(REMOVE_ITEM TEST_OPS test_imperative_resnet_sorted_gradient)
list(REMOVE_ITEM TEST_OPS test_imperative_mnist_sorted_gradient)
Y
Yan Xu 已提交
166
list(REMOVE_ITEM TEST_OPS test_imperative_se_resnext)
M
minqiyang 已提交
167
list(REMOVE_ITEM TEST_OPS test_imperative_mnist)
D
dzhwinter 已提交
168
list(REMOVE_ITEM TEST_OPS test_ir_memory_optimize_transformer)
L
lujun 已提交
169
list(REMOVE_ITEM TEST_OPS test_layers)
170
list(REMOVE_ITEM TEST_OPS test_imperative_ocr_attention_model)
171
list(REMOVE_ITEM TEST_OPS test_async_ssa_graph_executor_mnist)
172
list(REMOVE_ITEM TEST_OPS test_install_check)
173 174 175 176
list(REMOVE_ITEM TEST_OPS test_basic_gru_api)
list(REMOVE_ITEM TEST_OPS test_basic_gru_unit_op)
list(REMOVE_ITEM TEST_OPS test_basic_lstm_api)
list(REMOVE_ITEM TEST_OPS test_basic_lstm_unit_op)
177 178 179

# Some ops need to check results when gc is enabled
# Currently, only ops that register NoNeedBufferVarsInference need to do this test   
180 181
set(TEST_OPS_WITH_GC
  test_affine_channel_op
182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213
  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 已提交
214 215 216
foreach(TEST_OP ${TEST_OPS})
    py_test_modules(${TEST_OP} MODULES ${TEST_OP})
endforeach(TEST_OP)
217
py_test_modules(test_adam_op_multi_thread MODULES test_adam_op ENVS FLAGS_inner_op_parallelism=4)
218 219 220
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})
221
py_test_modules(test_imperative_resnet MODULES test_imperative_resnet ENVS
222
    FLAGS_cudnn_deterministic=1 SERIAL)
223
set_tests_properties(test_imperative_resnet PROPERTIES LABELS "RUN_TYPE=EXCLUSIVE")
224
py_test_modules(test_imperative_resnet_sorted_gradient MODULES test_imperative_resnet_sorted_gradient ENVS
225
        FLAGS_cudnn_deterministic=1 SERIAL)
226
set_tests_properties(test_imperative_resnet_sorted_gradient PROPERTIES LABELS "RUN_TYPE=EXCLUSIVE")
M
minqiyang 已提交
227
py_test_modules(test_imperative_mnist MODULES test_imperative_mnist ENVS
228
    FLAGS_cudnn_deterministic=1)
229
py_test_modules(test_imperative_mnist_sorted_gradient MODULES test_imperative_mnist_sorted_gradient ENVS
230
        FLAGS_cudnn_deterministic=1)
Y
Yan Xu 已提交
231
py_test_modules(test_imperative_se_resnext MODULES test_imperative_se_resnext ENVS
232 233
    FLAGS_cudnn_deterministic=1 SERIAL)
set_tests_properties(test_imperative_se_resnext PROPERTIES LABELS "RUN_TYPE=EXCLUSIVE")
234 235
py_test_modules(test_imperative_ocr_attention_model MODULES test_imperative_ocr_attention_model ENVS
        FLAGS_cudnn_deterministic=1 SERIAL)
236 237 238
py_test_modules(test_install_check MODULES test_install_check ENVS
        FLAGS_cudnn_deterministic=1 SERIAL)
set_tests_properties(test_install_check PROPERTIES LABELS "RUN_TYPE=DIST")
239
if(WITH_DISTRIBUTE)
240 241 242 243 244
    py_test_modules(test_dist_train MODULES test_dist_train ENVS ${dist_ENVS})
    py_test_modules(test_lookup_remote_table_op MODULES test_lookup_remote_table_op ENVS ${dist_ENVS})
    py_test_modules(test_hsigmoid_remote_table_op MODULES test_hsigmoid_remote_table_op ENVS ${dist_ENVS})
    py_test_modules(test_nce_remote_table_op MODULES test_nce_remote_table_op ENVS ${dist_ENVS})
    py_test_modules(test_listen_and_serv_op MODULES test_listen_and_serv_op ENVS ${dist_ENVS})
245
    set_tests_properties(test_listen_and_serv_op PROPERTIES TIMEOUT 20 LABELS "RUN_TYPE=EXCLUSIVE")
246 247
    set_tests_properties(test_listen_and_serv_op test_nce_remote_table_op test_hsigmoid_remote_table_op
            PROPERTIES LABELS "RUN_TYPE=DIST")
G
gongweibao 已提交
248 249 250
    if(WITH_DGC)
        py_test_modules(test_dgc_op MODULES test_dgc_op)
    endif()
J
JiabinYang 已提交
251
    if(NOT APPLE)
252 253
        set_tests_properties(test_dist_mnist PROPERTIES TIMEOUT 350 LABELS "RUN_TYPE=EXCLUSIVE")
        set_tests_properties(test_dist_mnist_dgc_nccl PROPERTIES TIMEOUT 350 LABELS "RUN_TYPE=EXCLUSIVE")
254 255 256 257 258
        set_tests_properties(test_dist_mnist_hallreduce PROPERTIES TIMEOUT 350 LABELS "RUN_TYPE=EXCLUSIVE")
        set_tests_properties(test_dist_mnist_multi_comm PROPERTIES TIMEOUT 350 LABELS "RUN_TYPE=EXCLUSIVE")
        set_tests_properties(test_dist_mnist_ring_allreduce PROPERTIES TIMEOUT 350 LABELS "RUN_TYPE=EXCLUSIVE")
        set_tests_properties(test_dist_mnist_backward_deps PROPERTIES TIMEOUT 350 LABELS "RUN_TYPE=EXCLUSIVE")
        set_tests_properties(test_dist_mnist_fleetapi  PROPERTIES TIMEOUT 350 LABELS "RUN_TYPE=EXCLUSIVE")
259 260
        set_tests_properties(test_dist_mnist_lars PROPERTIES TIMEOUT 350 LABELS "RUN_TYPE=EXCLUSIVE")
        set_tests_properties(test_dist_word2vec PROPERTIES TIMEOUT 350 LABELS "RUN_TYPE=EXCLUSIVE")
261 262
        set_tests_properties(test_dist_simnet_bow PROPERTIES TIMEOUT 350 LABELS "RUN_TYPE=EXCLUSIVE")
        set_tests_properties(test_dist_text_classification PROPERTIES TIMEOUT 350 LABELS "RUN_TYPE=EXCLUSIVE")
263

264
        list(REMOVE_ITEM TEST_OPS test_dist_se_resnext_dgc)
265 266
        list(REMOVE_ITEM TEST_OPS test_dist_se_resnext_sync)
	    list(REMOVE_ITEM TEST_OPS test_dist_se_resnext_async)
267 268
	    list(REMOVE_ITEM TEST_OPS test_dist_se_resnext_sync_with_memopt)

269
        py_test_modules(test_dist_se_resnext_dgc MODULES test_dist_se_resnext_dgc)
270
	    py_test_modules(test_dist_se_resnext_sync MODULES test_dist_se_resnext_sync)
271
        py_test_modules(test_dist_se_resnext_nccl MODULES test_dist_se_resnext_nccl)
G
gongweibao 已提交
272
        bash_test_modules(test_launch MODULES test_launch.sh)
273

274
        # FIXME(typhoonzero): add these tests back
275 276
        # py_test_modules(test_dist_transformer MODULES test_dist_transformer)
        # set_tests_properties(test_dist_transformer PROPERTIES TIMEOUT 1000)
277 278 279
        set_tests_properties(test_dist_se_resnext_dgc PROPERTIES LABELS "RUN_TYPE=EXCLUSIVE")
        set_tests_properties(test_dist_se_resnext_sync PROPERTIES LABELS "RUN_TYPE=EXCLUSIVE")
        set_tests_properties(test_dist_se_resnext_nccl PROPERTIES LABELS "RUN_TYPE=EXCLUSIVE")
280
    endif(NOT APPLE)
281
    # py_test_modules(test_dist_transpiler MODULES test_dist_transpiler)
282
endif()
283

284
py_test_modules(test_parallel_executor_crf MODULES test_parallel_executor_crf)
285
py_test_modules(test_parallel_executor_crf_auto_growth MODULES test_parallel_executor_crf_auto_growth ENVS FLAGS_allocator_strategy=auto_growth)
286
py_test_modules(test_parallel_executor_fetch_feed MODULES test_parallel_executor_fetch_feed)
C
chengduo 已提交
287
set_tests_properties(test_parallel_executor_fetch_feed PROPERTIES TIMEOUT 450)
288
py_test_modules(test_parallel_executor_transformer MODULES test_parallel_executor_transformer)
289
py_test_modules(test_parallel_executor_transformer_auto_growth MODULES test_parallel_executor_transformer_auto_growth ENVS FLAGS_allocator_strategy=auto_growth)
290
py_test_modules(test_layers MODULES test_layers ENVS FLAGS_cudnn_deterministic=1)
D
dzhwinter 已提交
291
if(NOT WIN32)
292
    py_test_modules(test_ir_memory_optimize_transformer MODULES test_ir_memory_optimize_transformer)
D
dzhwinter 已提交
293
endif()
294

295
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
296 297 298
    set_tests_properties(test_parallel_executor_seresnext_base_cpu PROPERTIES TIMEOUT 900)
    set_tests_properties(test_parallel_executor_seresnext_with_reduce_cpu PROPERTIES TIMEOUT 740)
    set_tests_properties(test_parallel_executor_seresnext_with_fuse_all_reduce_cpu PROPERTIES TIMEOUT 450)
299
endif()
300 301 302 303

if (WITH_NGRAPH)
    add_subdirectory(ngraph)
endif()
304 305 306 307

if (WITH_MKLDNN)
    add_subdirectory(mkldnn)
endif()
308

309
set_tests_properties(test_parallel_executor_test_while_train test_parallel_executor_mnist
310 311 312
        test_parallel_executor_seresnext_base_gpu test_parallel_executor_seresnext_with_reduce_gpu
        test_parallel_executor_seresnext_with_fuse_all_reduce_gpu
        test_parallel_executor_crf test_sync_batch_norm_op
313
        test_parallel_executor_crf_auto_growth test_buffer_shared_memory_reuse_pass_and_fuse_optimization_op_pass
314
        test_buffer_shared_memory_reuse_pass PROPERTIES LABELS "RUN_TYPE=DIST")