test_ci_model_benchmark.sh 3.9 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
#!/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 {
T
tianshuo78520a 已提交
19
    bash -x paddle/scripts/paddle_build.sh build_only
20 21 22 23
    [ $? -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
T
tianshuo78520a 已提交
24
    mkdir build/pr_whl && cp build/python/dist/*.whl build/pr_whl
25 26 27 28
    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

29 30 31 32 33
    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
T
tianshuo78520a 已提交
34 35 36
    git checkout .
    git checkout -b develop_base_pr upstream/$BRANCH
    [ $? -ne 0 ] && echo "checkout paddle branch failed." && exit 1
37

T
tianshuo78520a 已提交
38
    bash -x paddle/scripts/paddle_build.sh build_only
39
    [ $? -ne 0 ] && echo "build paddle failed." && exit 1
T
tianshuo78520a 已提交
40
    unzip -q build/python/dist/*.whl -d /tmp/develop
41 42 43 44

    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`
T
tianshuo78520a 已提交
45
    [ $? -ne 0 ] && echo "diff paddle whl failed." && exit 1
46 47 48
    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" 
T
tianshuo78520a 已提交
49
        echo "cpu_benchmark=ON" >${cfs_dir}/model_benchmark/${AGILE_PULL_ID}/${AGILE_REVISION}/pass.txt
50 51 52 53 54 55 56
        exit 0
    else
        echo "ipipe_log_param_isSkipTest_model_benchmark: 0"
    fi
}

function compile_install_paddle {
T
tianshuo78520a 已提交
57
    export CUDA_ARCH_NAME=${CUDA_ARCH_NAME:-Auto}
58
    export PY_VERSION=3.7
59
    export WITH_DISTRIBUTE=ON
60 61 62 63 64 65
    export WITH_GPU=ON
    export WITH_TENSORRT=OFF
    export WITH_TESTING=OFF
    export WITH_UNITY_BUILD=ON
    check_whl
    cd /workspace/Paddle
66 67 68 69 70 71 72 73 74 75 76 77
    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

78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
}

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
98 99
    export data_path=${cfs_dir}/model_dataset/model_benchmark_data
    export prepare_path=${cfs_dir}/model_dataset/model_benchmark_prepare
100 101 102 103 104 105 106 107 108 109
    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)
110
    init_benchmark
111 112 113 114 115 116 117 118 119
    prepare_data
    run_model_benchmark
  ;;
  *)
    compile_install_paddle
    prepare_data
    run_model_benchmark
  ;;
esac