#!/bin/bash # Copyright (c) 2020 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. function check_whl { bash -x paddle/scripts/paddle_build.sh build_only [ $? -ne 0 ] && echo "build paddle failed." && exit 1 pip uninstall -y paddlepaddle_gpu pip install build/python/dist/*.whl [ $? -ne 0 ] && echo "install paddle failed." && exit 1 mkdir build/pr_whl && cp build/python/dist/*.whl build/pr_whl mkdir -p /tmp/pr && mkdir -p /tmp/develop unzip -q build/python/dist/*.whl -d /tmp/pr rm -f build/python/dist/*.whl && rm -f build/python/build/.timestamp rm -rf ${PADDLE_ROOT}/build/Makefile ${PADDLE_ROOT}/build/CMakeCache.txt cmake_change=`git diff --name-only upstream/$BRANCH | grep "cmake/external" || true` if [ ${cmake_change} ];then rm -rf ${PADDLE_ROOT}/build/third_party fi git checkout . git checkout -b develop_base_pr upstream/$BRANCH [ $? -ne 0 ] && echo "checkout paddle branch failed." && exit 1 bash -x paddle/scripts/paddle_build.sh build_only [ $? -ne 0 ] && echo "build paddle failed." && exit 1 unzip -q build/python/dist/*.whl -d /tmp/develop sed -i '/version.py/d' /tmp/pr/*/RECORD sed -i '/version.py/d' /tmp/develop/*/RECORD diff_whl=`diff /tmp/pr/*/RECORD /tmp/develop/*/RECORD|wc -l` [ $? -ne 0 ] && echo "diff paddle whl failed." && exit 1 if [ ${diff_whl} -eq 0 ];then echo "paddle whl does not diff in PR-CI-Model-benchmark, so skip this ci" echo "ipipe_log_param_isSkipTest_model_benchmark: 1" echo "cpu_benchmark=ON" >${cfs_dir}/model_benchmark/${AGILE_PULL_ID}/${AGILE_REVISION}/pass.txt exit 0 else echo "ipipe_log_param_isSkipTest_model_benchmark: 0" fi } function compile_install_paddle { export CUDA_ARCH_NAME=${CUDA_ARCH_NAME:-Auto} export PY_VERSION=3.7 export WITH_DISTRIBUTE=ON export WITH_GPU=ON export WITH_TENSORRT=OFF export WITH_TESTING=OFF export WITH_UNITY_BUILD=ON check_whl cd /workspace/Paddle git clone --depth=1 https://github.com/paddlepaddle/benchmark.git cd benchmark set +x wget -q --no-proxy https://xly-devops.bj.bcebos.com/benchmark/new_clone/benchmark/benchmark_allgit.tar.gz tar xf benchmark_allgit.tar.gz set -x } function init_benchmark { cd /workspace/Paddle/benchmark git clone PaddleClas.bundle PaddleClas } function prepare_data { cd ${cache_dir} if [ -d "benchmark_data" ];then echo -e "benchmark_data exist!" else mkdir benchmark_data && cd benchmark_data mkdir dataset && cd dataset wget --no-proxy -q https://paddle-qa.bj.bcebos.com/benchmark_data/Bert.zip unzip Bert.zip wget --no-proxy -q https://paddle-qa.bj.bcebos.com/benchmark_data/imagenet100_data.zip unzip imagenet100_data.zip fi } function run_model_benchmark { cd /workspace/Paddle pip install build/pr_whl/*.whl cd ${cache_dir}/benchmark_data export data_path=${cfs_dir}/model_dataset/model_benchmark_data export prepare_path=${cfs_dir}/model_dataset/model_benchmark_prepare export BENCHMARK_ROOT=/workspace/Paddle/benchmark cd ${BENCHMARK_ROOT}/scripts/benchmark_ci bash model_ci.sh } case $1 in whl_check) compile_install_paddle ;; run_benchmark) init_benchmark prepare_data run_model_benchmark ;; *) compile_install_paddle prepare_data run_model_benchmark ;; esac