CMakeLists.txt 30.5 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
file(GLOB DIST_TEST_OPS RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "test_dist_*.py")
7
list(REMOVE_ITEM DIST_TEST_OPS "test_dist_op")
8 9 10
if(NOT WITH_NCCL)
    list(REMOVE_ITEM DIST_TEST_OPS "test_dist_mnist_dgc_nccl")
endif()
11
string(REPLACE ".py" "" DIST_TEST_OPS "${DIST_TEST_OPS}")
12 13
list(APPEND DIST_TEST_OPS test_parallel_dygraph_mnist)
list(APPEND DIST_TEST_OPS test_parallel_dygraph_se_resnext)
14 15
list(APPEND DIST_TEST_OPS test_parallel_dygraph_sparse_embedding)
list(APPEND DIST_TEST_OPS test_parallel_dygraph_transformer)
16
list(APPEND DIST_TEST_OPS test_listen_and_serv_op)
17
list(APPEND DIST_TEST_OPS test_fleet_graph_execution_meta_optimizer)
18 19 20
set(MIXED_DIST_TEST_OPS ${DIST_TEST_OPS})
#remove distribute unittests.
list(APPEND MIXED_DIST_TEST_OPS test_dgc_op)
21 22
list(APPEND MIXED_DIST_TEST_OPS test_dgc_momentum_op)
list(APPEND MIXED_DIST_TEST_OPS test_dgc_optimizer)
23
list(APPEND MIXED_DIST_TEST_OPS test_simple_dist_transpiler)
T
tangwei12 已提交
24 25
list(APPEND MIXED_DIST_TEST_OPS test_recv_save_op)
list(APPEND MIXED_DIST_TEST_OPS test_transpiler_ops)
26
list(APPEND MIXED_DIST_TEST_OPS test_launch)
27
list(APPEND MIXED_DIST_TEST_OPS test_c_comm_init_op)
28
list(APPEND MIXED_DIST_TEST_OPS test_launch_ps)
29 30 31
list(APPEND MIXED_DIST_TEST_OPS test_communicator_async)
list(APPEND MIXED_DIST_TEST_OPS test_communicator_geo)
list(APPEND MIXED_DIST_TEST_OPS test_communicator_half_async)
T
tangwei12 已提交
32
list(APPEND MIXED_DIST_TEST_OPS test_communicator_sync)
33
list(APPEND MIXED_DIST_TEST_OPS test_fleet_launch)
34
list(APPEND MIXED_DIST_TEST_OPS test_fleet_api_input)
35
list(APPEND MIXED_DIST_TEST_OPS test_fleet_checkpoint)
M
mapingshuo 已提交
36
list(APPEND MIXED_DIST_TEST_OPS test_collective_optimizer)
37
list(APPEND MIXED_DIST_TEST_OPS test_fleet_base)
38 39
list(APPEND MIXED_DIST_TEST_OPS test_fleet_base_2)
list(APPEND MIXED_DIST_TEST_OPS test_fleet_base_3)
40
list(APPEND MIXED_DIST_TEST_OPS test_fleet_recompute_meta_optimizer)
41
list(APPEND MIXED_DIST_TEST_OPS test_fleet_pipeline_meta_optimizer)
42
list(APPEND MIXED_DIST_TEST_OPS test_fleet_amp_meta_optimizer)
43
list(APPEND MIXED_DIST_TEST_OPS test_fleet_gradient_merge_meta_optimizer)
44
list(APPEND MIXED_DIST_TEST_OPS test_fleet_sharding_meta_optimizer)
Y
Yi Liu 已提交
45
list(APPEND MIXED_DIST_TEST_OPS test_fleet_localsgd_meta_optimizer)
46
list(APPEND MIXED_DIST_TEST_OPS test_fleet_lars_meta_optimizer)
47
list(APPEND MIXED_DIST_TEST_OPS test_fleet_lamb_meta_optimizer)
48
list(APPEND MIXED_DIST_TEST_OPS test_fleet_dgc_meta_optimizer)
49
list(APPEND MIXED_DIST_TEST_OPS test_fleet_fp16_allreduce_meta_optimizer)
50
list(APPEND MIXED_DIST_TEST_OPS test_fleet_private_function)
51
list(APPEND MIXED_DIST_TEST_OPS test_fleet_graph_executor)
52
list(APPEND MIXED_DIST_TEST_OPS test_fleet_meta_optimizer_base)
53
list(APPEND MIXED_DIST_TEST_OPS test_fleet_distributed_strategy)
54
list(APPEND MIXED_DIST_TEST_OPS test_fleet_auto)
55 56 57
foreach(TEST_OP ${MIXED_DIST_TEST_OPS})
  list(REMOVE_ITEM TEST_OPS ${TEST_OP})
endforeach()
58

59
if(NOT WITH_GPU OR WIN32)
60
    LIST(REMOVE_ITEM TEST_OPS test_c_comm_init_all_op)
61 62 63
    LIST(REMOVE_ITEM TEST_OPS test_allgather)
    LIST(REMOVE_ITEM TEST_OPS test_allreduce)
    LIST(REMOVE_ITEM TEST_OPS test_broadcast)
L
lilong12 已提交
64 65
    LIST(REMOVE_ITEM TEST_OPS test_collective_reduce)
    LIST(REMOVE_ITEM TEST_OPS test_collective_scatter)
66
    LIST(REMOVE_ITEM TEST_OPS test_reducescatter)
67
    LIST(REMOVE_ITEM TEST_OPS test_reducescatter_api)
L
lilong12 已提交
68 69 70 71 72 73
    LIST(REMOVE_ITEM TEST_OPS test_collective_reduce_api)
    LIST(REMOVE_ITEM TEST_OPS test_collective_scatter_api)
    LIST(REMOVE_ITEM TEST_OPS test_collective_barrier_api)
    LIST(REMOVE_ITEM TEST_OPS test_collective_allreduce_api)
    LIST(REMOVE_ITEM TEST_OPS test_collective_broadcast_api)
    LIST(REMOVE_ITEM TEST_OPS test_collective_allgather_api)
74 75
endif()

I
iducn 已提交
76 77
#TODO(sunxiaolong01): Fix this unitest failed on GCC8.
LIST(REMOVE_ITEM TEST_OPS test_conv2d_transpose_op)
H
hutuxian 已提交
78 79
if(WIN32)
    LIST(REMOVE_ITEM TEST_OPS test_boxps)
80
    LIST(REMOVE_ITEM TEST_OPS test_trainer_desc)
81
    LIST(REMOVE_ITEM TEST_OPS test_multiprocess_reader_exception)
82
    LIST(REMOVE_ITEM TEST_OPS test_avoid_twice_initialization)
83
    LIST(REMOVE_ITEM TEST_OPS test_checkpoint_notify_op)
84

85 86 87 88 89 90 91 92 93 94 95 96 97 98
    LIST(REMOVE_ITEM TEST_OPS test_distributed_strategy)
    LIST(REMOVE_ITEM TEST_OPS test_downpoursgd)
    LIST(REMOVE_ITEM TEST_OPS test_fleet)
    LIST(REMOVE_ITEM TEST_OPS test_fleet_metric)
    LIST(REMOVE_ITEM TEST_OPS test_fleet_nocvm_1)
    LIST(REMOVE_ITEM TEST_OPS test_fleet_ps)
    LIST(REMOVE_ITEM TEST_OPS test_fleet_rolemaker)
    LIST(REMOVE_ITEM TEST_OPS test_fleet_rolemaker_2)
    LIST(REMOVE_ITEM TEST_OPS test_fleet_rolemaker_3)
    LIST(REMOVE_ITEM TEST_OPS test_fleet_unitaccessor)
    LIST(REMOVE_ITEM TEST_OPS test_fleet_utils)
    LIST(REMOVE_ITEM TEST_OPS test_lookup_sparse_table_split_op)
    LIST(REMOVE_ITEM TEST_OPS test_ps_dispatcher)

99 100 101 102 103 104
    # TODO: Fix these unittests failed on Windows
    LIST(REMOVE_ITEM TEST_OPS test_debugger)
    list(REMOVE_ITEM TEST_OPS test_fake_init_op)
    list(REMOVE_ITEM TEST_OPS test_merge_ids_op)
    list(REMOVE_ITEM TEST_OPS test_split_ids_op)
    LIST(REMOVE_ITEM TEST_OPS test_ref_by_trainer_id_op)
H
hutuxian 已提交
105 106
endif()

107 108

LIST(REMOVE_ITEM TEST_OPS test_auto_checkpoint)
109
LIST(REMOVE_ITEM TEST_OPS test_auto_checkpoint1)
110
LIST(REMOVE_ITEM TEST_OPS test_auto_checkpoint2)
111 112 113 114 115 116
LIST(REMOVE_ITEM TEST_OPS test_auto_checkpoint3)
LIST(REMOVE_ITEM TEST_OPS test_auto_checkpoint_multiple)
LIST(REMOVE_ITEM TEST_OPS test_auto_checkpoint_dist_basic)
LIST(REMOVE_ITEM TEST_OPS test_hdfs1)
LIST(REMOVE_ITEM TEST_OPS test_hdfs2)
LIST(REMOVE_ITEM TEST_OPS test_hdfs3)
117
LIST(REMOVE_ITEM TEST_OPS test_checkpoint_saver)
G
gongweibao 已提交
118 119
if(APPLE OR WIN32)
    LIST(REMOVE_ITEM TEST_OPS test_fs_interface)
120
    LIST(REMOVE_ITEM TEST_OPS test_fleet_metric)
G
gongweibao 已提交
121 122
endif()

Y
Yu Yang 已提交
123 124
if (NOT ${WITH_GPU})
    LIST(REMOVE_ITEM TEST_OPS test_conv2d_fusion_op)
S
ShenLiang 已提交
125
    LIST(REMOVE_ITEM TEST_OPS test_rank_attention_op) # TODO(shenliang03): rank_attention_op support CPU device in future
S
ShenLiang 已提交
126
    LIST(REMOVE_ITEM TEST_OPS test_batch_fc_op) # TODO(shenliang03): batch_fc_op support CPU device in future
127
    LIST(REMOVE_ITEM TEST_OPS test_parallel_dygraph_mnist) # TODO(Yancey1989): parallel dygraph support CPU device in future
128 129 130
    list(REMOVE_ITEM TEST_OPS test_parallel_dygraph_se_resnext)
    LIST(REMOVE_ITEM TEST_OPS test_parallel_dygraph_sparse_embedding)
    LIST(REMOVE_ITEM TEST_OPS test_parallel_dygraph_transformer)
C
ceci3 已提交
131
    LIST(REMOVE_ITEM TEST_OPS test_parallel_dygraph_sync_batch_norm)
132
    LIST(REMOVE_ITEM TEST_OPS test_imperative_auto_mixed_precision)
133 134
    LIST(REMOVE_ITEM TEST_OPS test_fleet_base_single)

P
peizhilin 已提交
135
elseif(${CUDNN_VERSION} VERSION_LESS 7100)
D
Dang Qingqing 已提交
136 137 138
    LIST(REMOVE_ITEM TEST_OPS test_conv2d_fusion_op)
endif()

139 140 141 142 143 144 145
if (WITH_NCCL)
    if (${NCCL_VERSION} VERSION_LESS 2212)
        LIST(REMOVE_ITEM DIST_TEST_OPS test_parallel_dygraph_sparse_embedding)
        LIST(REMOVE_ITEM DIST_TEST_OPS test_parallel_dygraph_transformer)
    endif()
endif()

H
hutuxian 已提交
146 147
if(NOT WITH_GPU OR WIN32)
    LIST(REMOVE_ITEM TEST_OPS test_pipeline)
H
hutuxian 已提交
148
    LIST(REMOVE_ITEM TEST_OPS test_boxps)
149
endif()
150 151 152
list(REMOVE_ITEM TEST_OPS test_seq_concat_op) # FIXME(helin): https://github.com/PaddlePaddle/Paddle/issues/8290
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 已提交
153

154
list(REMOVE_ITEM TEST_OPS op_test) # op_test is a helper python file, not a test
155
list(REMOVE_ITEM TEST_OPS decorator_helper) # decorator_helper is a helper python file, not a test
156

157
if(APPLE)
158 159 160 161
    if(NOT WITH_DISTRIBUTE)
        list(REMOVE_ITEM TEST_OPS test_desc_clone)
        list(REMOVE_ITEM TEST_OPS test_program_code)
    endif(NOT WITH_DISTRIBUTE)
162
    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_*")
163 164
    # this op is not support on mac
    list(REMOVE_ITEM TEST_OPS test_fusion_seqexpand_concat_fc_op)
165
    list(REMOVE_ITEM TEST_OPS test_detection_map_op)
166
    list(REMOVE_ITEM TEST_OPS test_fuse_elewise_add_act_pass)
167
endif()
T
Tao Luo 已提交
168 169 170 171
if(NOT WITH_MKLML)
    # this op is not support on openblas
    list(REMOVE_ITEM TEST_OPS test_fusion_seqexpand_concat_fc_op)
endif()
172

173
if(NOT WITH_MKL OR NOT WITH_AVX)
A
Aurelius84 已提交
174
  list(REMOVE_ITEM TEST_OPS test_match_matrix_tensor_op)
K
Kevin 已提交
175
  list(REMOVE_ITEM TEST_OPS test_var_conv_2d)
176
endif()
177
if(WITH_COVERAGE OR WIN32 OR WITH_NV_JETSON)
A
Aurelius84 已提交
178
  list(REMOVE_ITEM TEST_OPS test_pyramid_hash_op)
C
Chengmo 已提交
179
  list(REMOVE_ITEM TEST_OPS test_fleet_pyramid_hash)
A
Aurelius84 已提交
180
endif()
K
Kevin 已提交
181

182 183 184 185 186
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()

Y
Yanghello 已提交
187 188 189 190
if(NOT WITH_CRYPTO)
    LIST(REMOVE_ITEM TEST_OPS test_crypto)
endif()

191 192
function(py_test_modules TARGET_NAME)
  if(WITH_TESTING)
193
    set(options SERIAL)
194
    set(oneValueArgs "")
195
    set(multiValueArgs MODULES DEPS ENVS)
196
    cmake_parse_arguments(py_test_modules "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
197 198 199 200 201

    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
202
          ${PYTHON_EXECUTABLE} -m coverage run --branch -p ${PADDLE_SOURCE_DIR}/tools/test_runner.py ${py_test_modules_MODULES}
203 204 205 206 207 208 209 210 211
          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)
212
        set_property(TEST ${TARGET_NAME} PROPERTY RUN_SERIAL 1)
213
    endif()
214

T
tianshuo78520a 已提交
215
    set_tests_properties(${TARGET_NAME} PROPERTIES TIMEOUT 350)
216 217
  endif()
endfunction()
G
gongweibao 已提交
218

219

G
gongweibao 已提交
220 221 222 223 224 225
function(bash_test_modules TARGET_NAME)
    if(NOT WITH_TESTING)
        return()
    endif()

    set(options SERIAL)
226 227
    set(oneValueArgs TIMEOUT START_BASH)
    set(multiValueArgs DEPS ENVS LABELS)
G
gongweibao 已提交
228 229
    cmake_parse_arguments(bash_test_modules "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})

230

231 232 233 234
    set(timeout 350)
    if(${bash_test_modules_TIMEOUT})
        set(timeout ${bash_test_modules_TIMEOUT})
    endif()
G
gongweibao 已提交
235

236 237 238 239 240
    if(WITH_COVERAGE)
        add_test(NAME ${TARGET_NAME}
            COMMAND ${CMAKE_COMMAND} -E env PYTHONPATH=${PADDLE_BINARY_DIR}/python 
            TEST_TARGET_NAME=${TARGET_NAME} TEST_TIMEOUT=${timeout} ${bash_test_modules_ENVS}
            WITH_COVERAGE=ON COVERAGE_FILE=${PADDLE_BINARY_DIR}/python-coverage.data
241
            bash ${CMAKE_CURRENT_BINARY_DIR}/${bash_test_modules_START_BASH}
242 243 244 245 246
            WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
    else()
        add_test(NAME ${TARGET_NAME}
            COMMAND ${CMAKE_COMMAND} -E env PYTHONPATH=${PADDLE_BINARY_DIR}/python 
            TEST_TARGET_NAME=${TARGET_NAME} TEST_TIMEOUT=${timeout} ${bash_test_modules_ENVS}
247
            bash ${CMAKE_CURRENT_BINARY_DIR}/${bash_test_modules_START_BASH}
248 249
            WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
    endif()
250

G
gongweibao 已提交
251 252 253
    if (bash_test_modules_SERIAL)
        set_property(TEST ${TARGET_NAME} PROPERTY RUN_SERIAL 1)
    endif()
254 255 256 257 258 259

    if(bash_test_modules_LABELS)
        set_tests_properties(${TARGET_NAME} PROPERTIES TIMEOUT ${timeout} LABELS ${bash_test_modules_LABELS})
    else()
        set_tests_properties(${TARGET_NAME} PROPERTIES TIMEOUT ${timeout})
    endif()
G
gongweibao 已提交
260 261
endfunction()

262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306
function(parallel_bash_test_modules TARGET_NAME)
    if(NOT WITH_TESTING)
        return()
    endif()

    set(options SERIAL)
    set(oneValueArgs TIMEOUT START_BASH)
    set(multiValueArgs DEPS ENVS LABELS UnitTests)
    cmake_parse_arguments(parallel_bash_test_modules "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})


    set(timeout 120)
    if(${parallel_bash_test_modules_TIMEOUT})
        set(timeout ${parallel_bash_test_modules_TIMEOUT})
    endif()

    list(JOIN  parallel_bash_test_modules_UnitTests " " uts_string)

    if(WITH_COVERAGE)
        add_test(NAME ${TARGET_NAME}
            COMMAND ${CMAKE_COMMAND} -E env PYTHONPATH=${PADDLE_BINARY_DIR}/python 
            TEST_TARGET_NAME=${TARGET_NAME} TEST_TIMEOUT=${timeout} ${parallel_bash_test_modules_ENVS} UnitTests=${uts_string}
            WITH_COVERAGE=ON COVERAGE_FILE=${PADDLE_BINARY_DIR}/python-coverage.data
            bash ${CMAKE_CURRENT_BINARY_DIR}/${parallel_bash_test_modules_START_BASH}
            WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
    else()
        add_test(NAME ${TARGET_NAME}
            COMMAND ${CMAKE_COMMAND} -E env PYTHONPATH=${PADDLE_BINARY_DIR}/python 
            TEST_TARGET_NAME=${TARGET_NAME} TEST_TIMEOUT=${timeout} ${parallel_bash_test_modules_ENVS} UnitTests=${uts_string}
            bash ${CMAKE_CURRENT_BINARY_DIR}/${parallel_bash_test_modules_START_BASH}
            WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
    endif()

    if (parallel_bash_test_modules_SERIAL)
        set_property(TEST ${TARGET_NAME} PROPERTY RUN_SERIAL 1)
    endif()

    if(parallel_bash_test_modules_LABELS)
        set_tests_properties(${TARGET_NAME} PROPERTIES TIMEOUT ${timeout} LABELS ${parallel_bash_test_modules_LABELS})
    else()
        set_tests_properties(${TARGET_NAME} PROPERTIES TIMEOUT ${timeout})
    endif()
endfunction()


307
list(REMOVE_ITEM TEST_OPS test_warpctc_op)
Y
yuyang18 已提交
308
list(REMOVE_ITEM TEST_OPS test_parallel_executor_crf)
309
list(REMOVE_ITEM TEST_OPS test_parallel_executor_profiler)
H
hutuxian 已提交
310
list(REMOVE_ITEM TEST_OPS test_data_norm_op)
311
list(REMOVE_ITEM TEST_OPS test_parallel_executor_fetch_feed)
312
list(REMOVE_ITEM TEST_OPS test_parallel_executor_transformer)
313
list(REMOVE_ITEM TEST_OPS test_parallel_executor_transformer_auto_growth)
D
dengkaipeng 已提交
314 315
list(REMOVE_ITEM TEST_OPS test_bilinear_interp_op)
list(REMOVE_ITEM TEST_OPS test_nearest_interp_op)
316
list(REMOVE_ITEM TEST_OPS test_imperative_resnet)
317 318
list(REMOVE_ITEM TEST_OPS test_imperative_resnet_sorted_gradient)
list(REMOVE_ITEM TEST_OPS test_imperative_mnist_sorted_gradient)
Y
Yan Xu 已提交
319
list(REMOVE_ITEM TEST_OPS test_imperative_se_resnext)
M
minqiyang 已提交
320
list(REMOVE_ITEM TEST_OPS test_imperative_mnist)
D
dzhwinter 已提交
321
list(REMOVE_ITEM TEST_OPS test_ir_memory_optimize_transformer)
L
lujun 已提交
322
list(REMOVE_ITEM TEST_OPS test_layers)
323 324 325
list(REMOVE_ITEM TEST_OPS test_parallel_executor_seresnext_base_cpu)
list(REMOVE_ITEM TEST_OPS test_parallel_executor_seresnext_with_reduce_cpu)
list(REMOVE_ITEM TEST_OPS test_parallel_executor_seresnext_with_fuse_all_reduce_cpu)
326
list(REMOVE_ITEM TEST_OPS test_imperative_ocr_attention_model)
327
list(REMOVE_ITEM TEST_OPS test_async_ssa_graph_executor_mnist)
328
list(REMOVE_ITEM TEST_OPS test_install_check)
329 330 331 332
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)
Z
Zhen Wang 已提交
333
list(REMOVE_ITEM TEST_OPS test_fuse_bn_act_pass)
Z
Zhang Ting 已提交
334
list(REMOVE_ITEM TEST_OPS test_fuse_bn_add_act_pass)
335 336
list(REMOVE_ITEM TEST_OPS test_imperative_static_runner_mnist)
list(REMOVE_ITEM TEST_OPS test_imperative_static_runner_while)
337
list(REMOVE_ITEM TEST_OPS test_conv3d_transpose_op)
Z
Zeng Jinle 已提交
338

339 340
# disable this unittest temporarily
list(REMOVE_ITEM TEST_OPS test_imperative_data_loader_exception)
341
list(REMOVE_ITEM TEST_OPS test_sampling_id_op)
Y
YUNSHEN XIE 已提交
342

Z
Zeng Jinle 已提交
343 344 345
if (APPLE OR WIN32)
  list(REMOVE_ITEM TEST_OPS test_dataset)
  list(REMOVE_ITEM TEST_OPS test_dataset_dataloader)
346
  list(REMOVE_ITEM TEST_OPS test_imperative_data_loader_base)
347
  # list(REMOVE_ITEM TEST_OPS test_imperative_data_loader_exception)
348
  list(REMOVE_ITEM TEST_OPS test_imperative_data_loader_process)
349 350
  list(REMOVE_ITEM TEST_OPS test_imperative_data_loader_fds_clear)
  list(REMOVE_ITEM TEST_OPS test_imperative_data_loader_exit_func)
351
  list(REMOVE_ITEM TEST_OPS test_imperative_signal_handler)
352 353
  list(REMOVE_ITEM TEST_OPS test_multiprocess_dataloader_static)
  list(REMOVE_ITEM TEST_OPS test_multiprocess_dataloader_dynamic)
354
  list(REMOVE_ITEM TEST_OPS test_multiprocess_dataloader_exception)
355
  list(REMOVE_ITEM TEST_OPS test_multiprocess_dataloader_iterable_dataset)
356
  list(REMOVE_ITEM TEST_OPS test_multiprocess_dataloader_dataset)
Z
Zeng Jinle 已提交
357 358
endif()

359 360 361 362
if(NOT WITH_GPU OR WIN32 OR APPLE)
  list(REMOVE_ITEM TEST_OPS test_build_strategy_fusion_group_pass)
endif()

363
# Some ops need to check results when gc is enabled
364
# Currently, only ops that register NoNeedBufferVarsInference need to do this test
365 366
set(TEST_OPS_WITH_GC
  test_affine_channel_op
367 368 369 370 371
  test_concat_op
  test_elementwise_add_op
  test_elementwise_sub_op
  test_fill_zeros_like2_op
  test_gather_op
372
  test_gather_nd_op
373 374 375 376 377 378 379
  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
380 381
  test_sequence_conv
  test_sequence_pool
382 383 384 385 386 387 388 389
  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
390
  test_squared_l2_distance_op)
391 392 393 394 395 396

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 已提交
397 398 399
foreach(TEST_OP ${TEST_OPS})
    py_test_modules(${TEST_OP} MODULES ${TEST_OP})
endforeach(TEST_OP)
400
py_test_modules(test_adam_op_multi_thread MODULES test_adam_op ENVS FLAGS_inner_op_parallelism=4)
L
Li Fuchen 已提交
401
py_test_modules(test_warpctc_op MODULES test_warpctc_op)
402 403
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})
404
py_test_modules(test_imperative_resnet MODULES test_imperative_resnet ENVS
405
    FLAGS_cudnn_deterministic=1 SERIAL)
406
set_tests_properties(test_imperative_resnet PROPERTIES LABELS "RUN_TYPE=EXCLUSIVE:NIGHTLY")
407
py_test_modules(test_imperative_resnet_sorted_gradient MODULES test_imperative_resnet_sorted_gradient ENVS
408
        FLAGS_cudnn_deterministic=1 SERIAL)
409
set_tests_properties(test_imperative_resnet_sorted_gradient PROPERTIES LABELS "RUN_TYPE=EXCLUSIVE:NIGHTLY")
M
minqiyang 已提交
410
py_test_modules(test_imperative_mnist MODULES test_imperative_mnist ENVS
411
    FLAGS_cudnn_deterministic=1)
412
py_test_modules(test_imperative_mnist_sorted_gradient MODULES test_imperative_mnist_sorted_gradient ENVS
413
        FLAGS_cudnn_deterministic=1)
Y
Yan Xu 已提交
414
py_test_modules(test_imperative_se_resnext MODULES test_imperative_se_resnext ENVS
415
    FLAGS_cudnn_deterministic=1 SERIAL)
416
set_tests_properties(test_imperative_se_resnext PROPERTIES LABELS "RUN_TYPE=EXCLUSIVE:NIGHTLY")
417 418
py_test_modules(test_imperative_ocr_attention_model MODULES test_imperative_ocr_attention_model ENVS
        FLAGS_cudnn_deterministic=1 SERIAL)
419 420 421
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")
422 423 424 425
py_test_modules(test_imperative_static_runner_mnist MODULES test_imperative_static_runner_mnist ENVS
    FLAGS_cudnn_deterministic=1)
py_test_modules(test_imperative_static_runner_while MODULES test_imperative_static_runner_while ENVS
    FLAGS_cudnn_deterministic=1)
426
if(WITH_DISTRIBUTE)
427 428 429 430
    # FIXME(typhoonzero): add these tests back
    list(REMOVE_ITEM DIST_TEST_OPS "test_dist_transformer")
    list(REMOVE_ITEM DIST_TEST_OPS "test_dist_transpiler")

431 432 433
    # TODO(sandyhouse): fix and add the ut back
    list(REMOVE_ITEM DIST_TEST_OPS "test_dist_mnist_hallreduce")

434 435 436 437
    #not need
    list(REMOVE_ITEM DIST_TEST_OPS "test_dist_base")
    list(REMOVE_ITEM DIST_TEST_OPS "test_dist_fleet_base")

T
tangwei12 已提交
438

439 440 441 442 443 444 445 446
    list(REMOVE_ITEM DIST_TEST_OPS "test_dist_ctr")
    list(REMOVE_ITEM DIST_TEST_OPS "test_dist_mnist_lars")
    list(REMOVE_ITEM DIST_TEST_OPS "test_dist_mnist_train")
    list(REMOVE_ITEM DIST_TEST_OPS "test_dist_save_load")
    list(REMOVE_ITEM DIST_TEST_OPS "test_dist_text_classification")
    list(REMOVE_ITEM DIST_TEST_OPS "test_dist_train")
    list(REMOVE_ITEM DIST_TEST_OPS "test_dist_word2vec")

T
tangwei12 已提交
447 448 449 450
    # FIXME(seiriosX) will fix this
    list(REMOVE_ITEM DIST_TEST_OPS "test_dist_fleet_sparse_embedding_ctr")
    list(REMOVE_ITEM DIST_TEST_OPS "test_dist_fleet_gloo")

T
tangwei12 已提交
451 452
    py_test_modules(test_recv_save_op MODULES test_recv_save_op ENVS ${dist_ENVS})
    py_test_modules(test_transpiler_ops MODULES test_transpiler_ops ENVS ${dist_ENVS})
453 454 455
    py_test_modules(test_communicator_async MODULES test_communicator_async ENVS ${dist_ENVS})
    py_test_modules(test_communicator_geo MODULES test_communicator_geo ENVS ${dist_ENVS})
    py_test_modules(test_communicator_half_async MODULES test_communicator_half_async ENVS ${dist_ENVS} FLAGS_communicator_send_queue_size=1 FLAGS_communicator_max_merge_var_num=1)
T
tangwei12 已提交
456
    py_test_modules(test_communicator_sync MODULES test_communicator_sync ENVS ${dist_ENVS} FLAGS_communicator_send_queue_size=1 FLAGS_communicator_max_merge_var_num=1)
M
mapingshuo 已提交
457
    py_test_modules(test_collective_optimizer MODULES test_collective_optimizer)
458
    if(NOT APPLE)
459
    	   py_test_modules(test_fleet_base MODULES test_fleet_base ENVS ${dist_ENVS})
460 461
    	   py_test_modules(test_fleet_base_2 MODULES test_fleet_base_2 ENVS ${dist_ENVS})
    	   py_test_modules(test_fleet_base_3 MODULES test_fleet_base_3 ENVS ${dist_ENVS})
462
    	   py_test_modules(test_fleet_recompute_meta_optimizer MODULES test_fleet_recompute_meta_optimizer ENVS ${dist_ENVS})
463
	       py_test_modules(test_fleet_graph_executor MODULES test_fleet_graph_executor ENVS ${dist_ENVS})
464
           py_test_modules(test_fleet_gradient_merge_meta_optimizer MODULES test_fleet_gradient_merge_meta_optimizer ENVS ${dist_ENVS})
465
           py_test_modules(test_fleet_sharding_meta_optimizer MODULES test_fleet_sharding_meta_optimizer ENVS ${dist_ENVS})
466
           py_test_modules(test_fleet_amp_meta_optimizer MODULES test_fleet_amp_meta_optimizer ENVS ${dist_ENVS})
467
           py_test_modules(test_fleet_fp16_allreduce_meta_optimizer MODULES test_fleet_fp16_allreduce_meta_optimizer ENVS ${dist_ENVS})
468 469
    	   py_test_modules(test_fleet_pipeline_meta_optimizer MODULES test_fleet_pipeline_meta_optimizer ENVS ${dist_ENVS})
    	   py_test_modules(test_fleet_private_function MODULES test_fleet_private_function ENVS ${dist_ENVS})
470
	   py_test_modules(test_fleet_meta_optimizer_base MODULES test_fleet_meta_optimizer_base ENVS ${dist_ENVS})
471
	   py_test_modules(test_fleet_distributed_strategy MODULES test_fleet_distributed_strategy)
472
	   #py_test_modules(test_fleet_auto MODULES test_fleet_auto ENVS ${dist_ENVS})
Y
Yi Liu 已提交
473 474
        if(NOT WIN32)
            py_test_modules(test_fleet_localsgd_meta_optimizer MODULES test_fleet_localsgd_meta_optimizer ENVS ${dist_ENVS})
Y
YUNSHEN XIE 已提交
475 476
            py_test_modules(test_fleet_lars_meta_optimizer MODULES test_fleet_lars_meta_optimizer ENVS ${dist_ENVS})
            py_test_modules(test_fleet_lamb_meta_optimizer MODULES test_fleet_lamb_meta_optimizer ENVS ${dist_ENVS})
Y
Yi Liu 已提交
477
        endif(NOT WIN32)
478
    endif(NOT APPLE)
G
gongweibao 已提交
479
    if(WITH_DGC)
W
WangXi 已提交
480 481
        # if with dgc, test all dgc tests.
        # NOTE. dist dgc tests is already in DIST_TEST_OPS
G
gongweibao 已提交
482
        py_test_modules(test_dgc_op MODULES test_dgc_op)
483 484
        py_test_modules(test_dgc_momentum_op MODULES test_dgc_momentum_op)
        py_test_modules(test_dgc_optimizer MODULES test_dgc_optimizer)
485
        py_test_modules(test_fleet_dgc_meta_optimizer MODULES test_fleet_dgc_meta_optimizer)
W
WangXi 已提交
486 487 488 489
    else()
        # if not with dgc, must close all dgc tests
        list(REMOVE_ITEM DIST_TEST_OPS "test_dist_mnist_dgc_nccl")
        list(REMOVE_ITEM DIST_TEST_OPS "test_dist_se_resnext_dgc")
G
gongweibao 已提交
490
    endif()
J
JiabinYang 已提交
491
    if(NOT APPLE)
W
WangXi 已提交
492 493
        if(WITH_GPU)
            # NOTE. test_launch only work in gpu collective mode
494
            bash_test_modules(test_launch START_BASH test_launch.sh  ENVS PADDLE_BINARY_DIR=${PADDLE_BINARY_DIR})
495
            bash_test_modules(test_c_comm_init_op START_BASH test_c_comm_init_op.sh  ENVS PADDLE_BINARY_DIR=${PADDLE_BINARY_DIR})
496
            py_test_modules(test_fleet_checkpoint MODULES test_fleet_checkpoint)
W
WangXi 已提交
497
        endif()
498 499 500

        bash_test_modules(test_launch_ps START_BASH test_launch_ps.sh ENVS PADDLE_BINARY_DIR=${PADDLE_BINARY_DIR})
        bash_test_modules(test_fleet_launch START_BASH test_fleet_launch.sh ENVS PADDLE_BINARY_DIR=${PADDLE_BINARY_DIR})
501

502
        # port range (20000, 23000) is reserved for dist-ops
G
gongweibao 已提交
503
        set(dist_ut_port 20001)
504
        foreach(TEST_OP ${DIST_TEST_OPS})
505
            bash_test_modules(${TEST_OP} START_BASH dist_test.sh SERIAL LABELS "RUN_TYPE=EXCLUSIVE" ENVS "PADDLE_DIST_UT_PORT=${dist_ut_port}")
506
            MATH(EXPR dist_ut_port "${dist_ut_port}+50")
507
        endforeach(TEST_OP)
508
    endif(NOT APPLE)
509
endif()
510

511
py_test_modules(test_parallel_executor_crf MODULES test_parallel_executor_crf)
512
py_test_modules(test_parallel_executor_profiler MODULES test_parallel_executor_profiler)
513
py_test_modules(test_parallel_executor_transformer MODULES test_parallel_executor_transformer)
514
py_test_modules(test_parallel_executor_transformer_auto_growth MODULES test_parallel_executor_transformer_auto_growth ENVS FLAGS_allocator_strategy=auto_growth)
515

H
hutuxian 已提交
516
py_test_modules(test_data_norm_op MODULES test_data_norm_op)
Z
Zhen Wang 已提交
517
py_test_modules(test_fuse_bn_act_pass MODULES test_fuse_bn_act_pass ENVS FLAGS_cudnn_deterministic=1 FLAGS_cudnn_batchnorm_spatial_persistent=1 FLAGS_conv_workspace_size_limit=1000)
Z
Zhang Ting 已提交
518
py_test_modules(test_fuse_bn_add_act_pass MODULES test_fuse_bn_add_act_pass ENVS FLAGS_cudnn_deterministic=1 FLAGS_cudnn_batchnorm_spatial_persistent=1 FLAGS_conv_workspace_size_limit=1000)
519

520 521 522 523 524
# NOTE: These unittests will appear NaN steadily in windows CI. After analysis,
# it is found that windows CI will run all the training unittests with the ON_INFER option turned on, 
# which will not appear in other CIs. The calculation behavior of some ops in inference mode is 
# inconsistent with that in non-inference mode.
if(NOT ON_INFER)
525 526 527 528 529 530
    py_test_modules(test_parallel_executor_seresnext_base_cpu MODULES test_parallel_executor_seresnext_base_cpu)
    py_test_modules(test_parallel_executor_seresnext_with_reduce_cpu MODULES test_parallel_executor_seresnext_with_reduce_cpu)
    py_test_modules(test_parallel_executor_seresnext_with_fuse_all_reduce_cpu MODULES test_parallel_executor_seresnext_with_fuse_all_reduce_cpu)
    set_tests_properties(test_parallel_executor_seresnext_base_cpu PROPERTIES TIMEOUT 900)
    set_tests_properties(test_parallel_executor_seresnext_with_reduce_cpu PROPERTIES TIMEOUT 750)
    set_tests_properties(test_parallel_executor_seresnext_with_fuse_all_reduce_cpu PROPERTIES TIMEOUT 750)
531
endif()
532

533 534 535
if(NOT WIN32)
    # TODO: fix these unittests failure on Windows
    py_test_modules(test_layers MODULES test_layers ENVS FLAGS_cudnn_deterministic=1)
536
    py_test_modules(test_ir_memory_optimize_transformer MODULES test_ir_memory_optimize_transformer)
537 538 539
    # FIXME(zcd): temporally disable test_parallel_executor_fetch_feed in Windows CI because of the random failure.
    py_test_modules(test_parallel_executor_fetch_feed MODULES test_parallel_executor_fetch_feed)
    set_tests_properties(test_parallel_executor_fetch_feed PROPERTIES TIMEOUT 450)
D
dzhwinter 已提交
540
endif()
541

542
if(NOT APPLE AND NOT WIN32)
G
gongweibao 已提交
543 544 545 546 547 548 549 550 551
    bash_test_modules(test_auto_checkpoint START_BASH dist_test.sh TIMEOUT 140 LABELS "RUN_TYPE=EXCLUSIVE:NIGHTLY")
    bash_test_modules(test_auto_checkpoint1 START_BASH dist_test.sh TIMEOUT 140  LABELS "RUN_TYPE=EXCLUSIVE:NIGHTLY")
    bash_test_modules(test_auto_checkpoint2 START_BASH dist_test.sh TIMEOUT 140  LABELS "RUN_TYPE=EXCLUSIVE:NIGHTLY")
    bash_test_modules(test_auto_checkpoint3 START_BASH dist_test.sh TIMEOUT 140  LABELS "RUN_TYPE=EXCLUSIVE:NIGHTLY")
    bash_test_modules(test_auto_checkpoint_multiple START_BASH dist_test.sh TIMEOUT 140  LABELS "RUN_TYPE=EXCLUSIVE:NIGHTLY")
    bash_test_modules(test_auto_checkpoint_dist_basic START_BASH dist_test.sh TIMEOUT 140  LABELS "RUN_TYPE=EXCLUSIVE:NIGHTLY")
    bash_test_modules(test_hdfs1 START_BASH dist_test.sh TIMEOUT 140  LABELS "RUN_TYPE=EXCLUSIVE:NIGHTLY")
    bash_test_modules(test_hdfs2 START_BASH dist_test.sh TIMEOUT 140   LABELS "RUN_TYPE=EXCLUSIVE:NIGHTLY")
    bash_test_modules(test_hdfs3 START_BASH dist_test.sh TIMEOUT 140  LABELS "RUN_TYPE=EXCLUSIVE:NIGHTLY")
552 553
endif()

554
add_subdirectory(sequence)
555
add_subdirectory(dygraph_to_static)
F
Feiyu Chan 已提交
556
add_subdirectory(rnn)
557

T
tianshuo78520a 已提交
558 559 560 561
if (WITH_XPU)
    add_subdirectory(xpu)
endif()

562 563 564
if (WITH_MKLDNN)
    add_subdirectory(mkldnn)
endif()
565

566 567
add_subdirectory(ir)

568
if (WITH_TESTING)
Z
Zeng Jinle 已提交
569
    set_property(TEST test_parallel_executor_mnist PROPERTY ENVIRONMENT GLOG_vmodule=all_reduce_deps_pass=10)
570 571
endif()

572
set_tests_properties(test_parallel_executor_test_while_train test_parallel_executor_mnist
573
        test_parallel_executor_feed_persistable_var
574
        test_buffer_shared_memory_reuse_pass_and_fuse_optimization_op_pass
575
        test_data_norm_op
576
        test_dataloader_keep_order
577 578
        test_dataloader_unkeep_order
        test_parallel_executor_inference_feed_partial_data
579
        test_parallel_ssa_graph_inference_feed_partial_data
580
        test_fetch_unmerged
581
        test_buffer_shared_memory_reuse_pass PROPERTIES LABELS "RUN_TYPE=DIST")
582 583
# disable test_parallel_executor_fetch_isolated_var
# set_tests_properties(test_parallel_executor_fetch_isolated_var PROPERTIES LABELS "RUN_TYPE=DIST")
K
Kaipeng Deng 已提交
584
set_tests_properties(test_parallel_executor_crf test_sync_batch_norm_op test_inplace_abn_op
585 586 587
        test_parallel_executor_seresnext_base_gpu
        test_parallel_executor_seresnext_with_reduce_gpu
        test_parallel_executor_seresnext_with_fuse_all_reduce_gpu
588
        test_parallel_executor_profiler
589
        test_parallel_executor_fetch_isolated_var
C
chalsliu 已提交
590
        PROPERTIES LABELS "RUN_TYPE=DIST")
591

592
if(NOT WIN32 AND NOT APPLE)
C
chalsliu 已提交
593 594 595 596 597 598
    set_tests_properties(test_imperative_data_loader_base PROPERTIES LABELS "RUN_TYPE=EXCLUSIVE")
    set_tests_properties(test_imperative_data_loader_fds_clear PROPERTIES LABELS "RUN_TYPE=EXCLUSIVE")
    # set_tests_properties(test_imperative_data_loader_exception PROPERTIES LABELS "RUN_TYPE=EXCLUSIVE")
    set_tests_properties(test_multiprocess_dataloader_static PROPERTIES LABELS "RUN_TYPE=EXCLUSIVE")
    set_tests_properties(test_multiprocess_dataloader_dynamic PROPERTIES LABELS "RUN_TYPE=EXCLUSIVE")
    set_tests_properties(test_multiprocess_dataloader_exception PROPERTIES LABELS "RUN_TYPE=EXCLUSIVE")
599 600
    set_tests_properties(test_multiprocess_dataloader_iterable_dataset_static PROPERTIES LABELS "RUN_TYPE=EXCLUSIVE")
    set_tests_properties(test_multiprocess_dataloader_iterable_dataset_dynamic PROPERTIES LABELS "RUN_TYPE=EXCLUSIVE")
601
    set_tests_properties(test_multiprocess_dataloader_dataset PROPERTIES LABELS "RUN_TYPE=EXCLUSIVE")
602
endif()
Y
YUNSHEN XIE 已提交
603 604 605

# setting timeout value for old unittests
# set_tests_properties(test_dist_fleet_sparse_embedding_ctr PROPERTIES TIMEOUT 200)
606 607 608 609 610 611 612
if(NOT WIN32 AND NOT APPLE)
    set_tests_properties(test_fused_elemwise_activation_op PROPERTIES TIMEOUT 150)
    set_tests_properties(test_gru_op PROPERTIES TIMEOUT 200)
    set_tests_properties(test_layer_norm_op PROPERTIES TIMEOUT 150)
    set_tests_properties(test_pool3d_op PROPERTIES TIMEOUT 150)
    set_tests_properties(test_regularizer PROPERTIES TIMEOUT 150)
endif()