Files
2026-07-13 12:40:42 +08:00

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
}