184 lines
5.6 KiB
Bash
184 lines
5.6 KiB
Bash
# Copyright (c) 2023 PaddlePaddle Authors. All Rights Reserved.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
failuretest=''
|
|
function collect_failed_tests() {
|
|
for file in `ls $tmp_dir`; do
|
|
exit_code=0
|
|
grep -q 'The following tests FAILED:' $tmp_dir/$file||exit_code=$?
|
|
if [ $exit_code -eq 0 ]; then
|
|
failuretest=`grep -A 10000 'The following tests FAILED:' $tmp_dir/$file | sed 's/The following tests FAILED://g'|sed '/^$/d'|grep -v 'Passed'`
|
|
failed_test_lists="${failuretest}
|
|
${failed_test_lists}"
|
|
fi
|
|
done
|
|
}
|
|
|
|
function get_quickly_disable_ut() {
|
|
python -m pip install httpx
|
|
if disable_ut_quickly=$(python ${PADDLE_ROOT}/tools/get_quick_disable_lt.py); then
|
|
echo "========================================="
|
|
echo "The following unittests have been disabled:"
|
|
echo ${disable_ut_quickly}
|
|
echo "========================================="
|
|
else
|
|
|
|
exit 102
|
|
disable_ut_quickly='disable_ut'
|
|
fi
|
|
}
|
|
|
|
# disable test:
|
|
# test_dygraph_dataparallel_bf16
|
|
# test_dygraph_sharding_stage2_bf16
|
|
# test_dygraph_sharding_stage3_bf16
|
|
# test_dygraph_sharding_stage1_fp16
|
|
# test_dygraph_sharding_stage1_bf16
|
|
|
|
serial_list="^test_conv2d_op$|\
|
|
^test_conv2d_transpose_op$|\
|
|
^test_dist_fuse_resunit_pass$|\
|
|
^test_conv3d_op$"
|
|
|
|
parallel_list="^init_phi_test$|\
|
|
^operator_test$|\
|
|
^test_tcp_store$|\
|
|
^test_collective_cpu_barrier_with_gloo$|\
|
|
^test_conv1d_layer$|\
|
|
^test_conv1d_transpose_layer$|\
|
|
^test_conv2d_api_deprecated$|\
|
|
^test_conv2d_layer_deprecated$|\
|
|
^test_conv2d_op_depthwise_conv$|\
|
|
^test_conv2d_transpose_layer$|\
|
|
^test_conv2d_transpose_op_depthwise_conv$|\
|
|
^test_conv3d_layer$|\
|
|
^test_conv3d_transpose_layer$|\
|
|
^test_conv3d_transpose_op$|\
|
|
^test_conv_bn_fuse_pass_cc$|\
|
|
^test_conv_nn_grad$|\
|
|
^test_conv_transpose_nn_grad$|\
|
|
^test_convert_call$|\
|
|
^test_convert_call_generator$|\
|
|
^test_convert_operators$|\
|
|
^test_convert_to_mixed_precision$|\
|
|
^test_convert_to_process_meshes$|\
|
|
^test_cpu_cuda_to_tensor$|\
|
|
^test_cudnn_placement_pass$|\
|
|
^test_custom_kernel$|\
|
|
^test_dist_fleet_ps11$|\
|
|
^test_dist_fleet_ps12$|\
|
|
^test_executor_feed_non_tensor$|\
|
|
^test_fuse_resunit_pass$|\
|
|
^test_fused_adam_op$|\
|
|
^test_fused_attention_no_dropout$|\
|
|
^test_fused_attention_op$|\
|
|
^test_fused_attention_op_api$|\
|
|
^test_fused_attention_op_api_static_build$|\
|
|
^test_fused_attention_op_static_build$|\
|
|
^test_fused_dconv_drelu_dbn_op$|\
|
|
^test_fused_bias_dropout_residual_layer_norm_op$|\
|
|
^test_fused_bias_dropout_residual_layer_norm_op_api$|\
|
|
^test_fused_comm_buffer$|\
|
|
^test_fused_dropout_act_bias$|\
|
|
^test_fused_dropout_add_op$|\
|
|
^test_fused_emb_seq_pool_op$|\
|
|
^test_fused_embedding_fc_lstm_op$|\
|
|
^test_fused_fc_elementwise_layernorm_op$|\
|
|
^test_fused_feedforward_op$|\
|
|
^test_fused_feedforward_op_static_build$|\
|
|
^test_fused_gemm_epilogue_grad_op$|\
|
|
^test_fused_gemm_epilogue_grad_op_with_es$|\
|
|
^test_fused_gemm_epilogue_op$|\
|
|
^test_fused_gemm_epilogue_op_with_es$|\
|
|
^test_fused_layernorm_residual_dropout_bias$|\
|
|
^test_fused_linear_param_grad_add$|\
|
|
^test_fused_linear_pass_deprecated$|\
|
|
^test_fused_matmul_bias$|\
|
|
^test_fused_multi_transformer_decoder_pass$|\
|
|
^test_fused_multi_transformer_encoder_pass$|\
|
|
^test_fused_residual_dropout_bias$|\
|
|
^test_fused_rotary_position_embedding$|\
|
|
^test_fused_scale_bias_add_relu_op$|\
|
|
^test_fused_scale_bias_relu_conv_bn_op$|\
|
|
^test_fused_token_prune_op$|\
|
|
^test_fused_transformer_encoder_layer$|\
|
|
^test_fused_transformer_with_amp_decorator$|\
|
|
^test_fused_dot_product_attention_op$|\
|
|
^test_fused_dot_product_attention_op_static$|\
|
|
^test_fuse_dot_product_attention_pass$|\
|
|
^test_fused_dot_product_attention_pass$|\
|
|
^test_gather_nd_op$|\
|
|
^test_index_select_op$|\
|
|
^test_pass_base_list$|\
|
|
^test_pool_max_op$|\
|
|
^test_roll_op$|\
|
|
^test_switch_autotune$|\
|
|
^test_to_tensor$|\
|
|
^test_top_k_v2_op$|\
|
|
^test_pir_amp$"
|
|
|
|
cd ${work_dir}/build
|
|
tmp_dir=`mktemp -d`
|
|
tmpfile_rand=`date +%s%N`
|
|
tmpfile1_rand=`date +%s%N`
|
|
tmpfile=$tmp_dir/$tmpfile_rand"_"$i
|
|
tmpfile1=$tmp_dir/$tmpfile1_rand"_"$i
|
|
set +e
|
|
|
|
get_quickly_disable_ut||disable_ut_quickly='disable_ut'
|
|
|
|
NUM_PROC=4
|
|
EXIT_CODE=0
|
|
pids=()
|
|
for (( i = 0; i < $NUM_PROC; i++ )); do
|
|
cuda_list="$((i*2)),$((i*2+1))"
|
|
(env CUDA_VISIBLE_DEVICES=$cuda_list ctest -I $i,,$NUM_PROC --output-on-failure -R "($parallel_list)" -E "($disable_ut_quickly)" --timeout 120 -j4 | tee -a $tmpfile; test ${PIPESTATUS[0]} -eq 0)&
|
|
pids+=($!)
|
|
done
|
|
|
|
for pid in "${pids[@]}"; do
|
|
wait $pid
|
|
status=$?
|
|
if [ $status -ne 0 ]; then
|
|
EXIT_CODE=8
|
|
fi
|
|
done
|
|
|
|
pids=()
|
|
for (( i = 0; i < $NUM_PROC; i++ )); do
|
|
cuda_list="$((i*2)),$((i*2+1))"
|
|
(env CUDA_VISIBLE_DEVICES=$cuda_list ctest -I $i,,$NUM_PROC --output-on-failure -R "($serial_list)" -E "($disable_ut_quickly)" --timeout 180 -j1 | tee -a $tmpfile1; test ${PIPESTATUS[0]} -eq 0)&
|
|
pids+=($!)
|
|
done
|
|
|
|
for pid in "${pids[@]}"; do
|
|
wait $pid
|
|
status=$?
|
|
if [ $status -ne 0 ]; then
|
|
EXIT_CODE=8
|
|
fi
|
|
done
|
|
|
|
set -e
|
|
|
|
if [ "${EXIT_CODE}" != "0" ];then
|
|
echo "Sorry, some tests failed."
|
|
collect_failed_tests
|
|
echo "Summary Failed Tests... "
|
|
echo "========================================"
|
|
echo "The following tests FAILED: "
|
|
echo "${failed_test_lists}"| sort -u
|
|
exit 8
|
|
fi
|