145 lines
5.5 KiB
Bash
145 lines
5.5 KiB
Bash
# Copyright (c) 2025 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.
|
|
|
|
export PATH=$(pwd)/run_env:${PATH}
|
|
push_file=${ROOT_DIR}/PaddleTest/tools/bos_tools.py
|
|
|
|
set_python () {
|
|
cd ${ROOT_DIR}
|
|
set +e
|
|
rm -rf run_env
|
|
mkdir run_env
|
|
ln -s $(which python3.10) run_env/python
|
|
ln -s $(which pip3.10) run_env/pip
|
|
pip install --upgrade pip
|
|
pip config set global.cache-dir "/home/data/cfs/.cache/pip"
|
|
echo "----------benchmark_log: python env done; pip list ------------- "
|
|
pip list
|
|
}
|
|
|
|
wget_model_benchmark_ci () {
|
|
cd ${ROOT_DIR}
|
|
wget -nv --no-proxy https://paddle-github-action.bj.bcebos.com/paddle-qa/benchmark/${bos_path}/model_benchmark_ci_action_latest.tar
|
|
tar xvf model_benchmark_ci_action_latest.tar
|
|
mv model_benchmark_ci_action/* ${ROOT_DIR}
|
|
|
|
rm -rf benchmark_summary_res.csv
|
|
wget -nv --no-proxy https://paddle-github-action.bj.bcebos.com/paddle-qa/benchmark/${bos_path}/benchmark_summary_res.csv
|
|
cd ${ROOT_DIR}
|
|
wget -q --no-proxy https://xly-devops.bj.bcebos.com/PaddleTest/PaddleTest.tar.gz
|
|
tar xf PaddleTest.tar.gz
|
|
ls
|
|
}
|
|
|
|
get_paddlescope_tar () {
|
|
cd ${ROOT_DIR}
|
|
cp ${CACHE_DIR}/paddlescope_nosql.tar.gz .
|
|
tar xf paddlescope_nosql.tar.gz
|
|
pip install -r paddlescope/requirements.txt
|
|
echo "----------benchmark_log: paddlescope python env done; pip list ------------- "
|
|
pip list;
|
|
}
|
|
|
|
update_summary () {
|
|
cd ${ROOT_DIR}
|
|
rm -rf benchmark_summary_res.csv
|
|
wget -nv --no-proxy https://paddle-github-action.bj.bcebos.com/paddle-qa/benchmark/${bos_path}/benchmark_summary_res.csv
|
|
bash main.sh update_summary
|
|
python ${push_file} benchmark_summary_res.csv paddle-github-action/paddle-qa/benchmark/${bos_path} upload
|
|
echo "----------benchmark_log: update_summary done ------------- "
|
|
head -3 benchmark_summary_res.csv
|
|
}
|
|
|
|
check_paddle () {
|
|
set_python
|
|
cd ${ROOT_DIR}/paddle
|
|
git checkout test
|
|
git diff --numstat --diff-filter=AMR ${BRANCH} | \
|
|
grep -v inference/ | grep -v test/ | grep -v tools/ | \
|
|
grep -v onednn/ | grep -v security/ | grep -v doc/ | \
|
|
grep -v xpu/ | \
|
|
grep -v '\.md$' | grep -v '\.sh$' | \
|
|
awk '{print $NF}' | tee filelist
|
|
|
|
git diff --numstat --diff-filter=AMR ${BRANCH} | \
|
|
grep -v inference/ | grep -v test/ | grep -v tools/ | \
|
|
grep -v onednn/ | grep -v security/ | grep -v doc/ | \
|
|
grep -v xpu/ | \
|
|
grep -v '\.md$' | grep -v '\.sh$' | \
|
|
grep operators/ | awk '{print $NF}' | tee operatorlist
|
|
|
|
filelist_num=`cat filelist | wc -l`
|
|
echo "filelist_num: ${filelist_num}"
|
|
if [ ${filelist_num} -eq 0 ];then
|
|
echo "The modified files does not affect models in PR-CI-Model-benchmark, so skip this ci."
|
|
update_summary
|
|
echo "can-skip=true" >> $1
|
|
exit 0
|
|
fi
|
|
# check cinn
|
|
git diff --numstat --diff-filter=AMRD ${BRANCH} | grep paddle/cinn | awk '{print $NF}' | tee pr_filelist1.log
|
|
filelist_num1=`cat pr_filelist1.log | wc -l`
|
|
|
|
git diff --numstat --diff-filter=AMRD ${BRANCH} | grep paddle/fluid/primitive/ | awk '{print $NF}' | tee pr_filelist2.log
|
|
filelist_num2=`cat pr_filelist2.log | wc -l`
|
|
|
|
git diff --numstat --diff-filter=AMRD ${BRANCH} | grep paddle/fluid/pir/dialect/operator/interface/infer_symbolic_shape/ | awk '{print $NF}' | tee pr_filelist3.log
|
|
filelist_num3=`cat pr_filelist3.log | wc -l`
|
|
|
|
git diff --numstat --diff-filter=AMRD ${BRANCH} | grep paddle/fluid/pir/dialect/operator/interface | awk '{print $NF}' | tee pr_filelist4.log
|
|
filelist_num4=`cat pr_filelist4.log | wc -l`
|
|
|
|
sum_num=$((filelist_num1 + filelist_num2 + filelist_num3 + filelist_num4))
|
|
echo " check cinn case sum_num: ${sum_num}"
|
|
export CINN_FILE_LIST=${sum_num}
|
|
echo "export CINN_FILE_LIST=$CINN_FILE_LIST" >> ~/.bashrc
|
|
}
|
|
|
|
check_skip () {
|
|
cd ${ROOT_DIR}
|
|
export IF_RUN='False'
|
|
bash main.sh get_case > get_case.log 2>&1
|
|
echo "----------benchmark_log: get_case.log "
|
|
cat get_case.log
|
|
echo "----------benchmark_log: get_case.log done "
|
|
IF_RUN=`cat get_case.log |grep benchmark_log: |grep IF_RUN |awk -F ' ' '{print $3}'`
|
|
echo "----------benchmark_log: IF_RUN, ${IF_RUN} ------------- "
|
|
if [[ ${IF_RUN} == 'False' ]];then
|
|
echo "----------benchmark_log: skip model_benchmark ------------- "
|
|
update_summary
|
|
echo "can-skip=true" >> $1
|
|
exit 0
|
|
fi
|
|
if [ -f "temp_summary_res.txt" ]; then
|
|
cat temp_summary_res.txt
|
|
else
|
|
echo "temp_summary_res.txt not exist"
|
|
fi
|
|
cd ${ROOT_DIR}
|
|
python ${push_file} benchmark_summary_res.csv paddle-github-action/paddle-qa/benchmark/${bos_path} upload
|
|
cat $ROOT_DIR/case_info.csv
|
|
}
|
|
check_model_benchmark () {
|
|
# benchmark case
|
|
cd ${ROOT_DIR}
|
|
bash main.sh run_all;EXCODE=$?
|
|
# over
|
|
cd ${ROOT_DIR}
|
|
bash main.sh update_history
|
|
python ${push_file} benchmark_history_PR_result.csv paddle-github-action/paddle-qa/benchmark/${bos_path} upload
|
|
update_summary
|
|
echo ------------------------------ model_benchmark CI result ------------------------------
|
|
cat $ROOT_DIR/case_info.csv
|
|
}
|