|
- #!/bin/bash
- # Copyright 2021 Huawei Technologies Co., Ltd
- #
- # 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.
- # ============================================================================
-
- stage=0
- days=7
- iter=5
- device_id=0
- n_worker=128
- work_dir="/opt/npu/me_monitor"
- me_report_path=$work_dir/logs/ME_report_daily.xlsx
- log_dir=logs_$(date "+%m%d-%H%M")
- log_path=$work_dir/logs/$log_dir
- ms_master="https://gitee.com/mindspore/mindspore.git"
- log_data="data.json"
- ci_mode=true
-
- set -e
- set -o pipefail
-
- # parse arguments from command line
- while getopts "s:d:i:l:" args
- do
- case $args in
- s)
- stage=$OPTARG
- ;;
- d)
- days=$OPTARG
- ;;
- i)
- iter=$OPTARG
- ;;
- l)
- log_dir=$OPTARG
- log_path=$work_dir/logs/$log_dir
- ;;
- ?)
- echo "unknown argument"
- exit 1
- ;;
- esac
- done
-
- source env.sh
- export DEVICE_ID=$device_id
- echo "Args: days=$days, iter=$iter, log_path=$log_path"
- cd $work_dir
-
- echo $WORKSPACE
- WORKSPACE=/home/jenkins-slave/workspace/MindSpore_Network_reid_compile_performance
- echo $WORKSPACE
-
- if [ $stage -le 1 ]; then
- echo ""
- echo "===========Stage 1: Fetching latest mindspore from master==========="
- if [ -d mindspore ]; then
- rm -rf mindspore
- fi
- git clone $ms_master
- fi
-
- if [ $stage -le 2 ]; then
- echo ""
- echo "===========Stage 2: Building mindspore==========="
- cd $work_dir/mindspore
- bash build.sh -e ascend -j $n_worker -p on
- fi
-
- if [ $stage -le 3 ]; then
- echo ""
- echo "===========Stage 3: Compiling networks==========="
- cd $work_dir
- mkdir -p $log_path
-
- # Compiling ReID-8
- # split resource-consuming task from others
- for count in $(seq 1 $iter); do
- echo "[INFO] Compiling ReID-8p, iteration $count"
- if [ -d reid$count ]; then
- rm -rf reid$count
- fi
- mkdir reid$count
- cd reid$count
- bash $work_dir/faceReidToMe/dist_env/env_26/dist_env_26.sh
- for num in {0..7}; do
- cp device_$num/test_reid_stage123_1024node_graphdata_dynamiclossscale_log$num.log $log_path/reid_${count}_${num}.log
- done
- cd $work_dir
- mv reid$count $log_path
- done
-
- # Compiling BERT
- cd $work_dir
- for count in $(seq 1 $iter); do
- echo "[INFO] Compiling BERT, iteration $count"
- pytest -s mindspore/tests/perf_test/bert/test_bert_train.py::test_bert_train | tee $log_path/bert$count.log
- done
-
- # Compiling ResNet50
- for count in $(seq 1 $iter); do
- echo "[INFO] Compiling ResNet50, iteration $count"
- pytest -s mindspore/tests/perf_test/test_resnet_train.py::test_train_step | tee $log_path/resnet$count.log
- done
-
- # Compiling GPT
- for count in $(seq 1 $iter); do
- echo "[INFO] Compiling GPT, iteration $count"
- cd gpt
- bash scripts/run_standalone_train.sh 0 1 $work_dir/gpt_data | tee $log_path/gpt$count.log
- done
- fi
-
- if [ $stage -le 4 ]; then
- echo ""
- echo "===========Stage 4: Processing log files==========="
- cd $work_dir
- python process_data.py $me_report_path $log_path $iter $log_path/$log_data
- fi
-
- if [ $stage -le 5 ]; then
- echo ""
- echo "===========Stage 5: Generating reports==========="
- if [ ! -d $log_path/reports ]; then
- mkdir $log_path/reports
- fi
- python generate_report.py $log_path $log_path/$log_data $me_report_path $days
-
- if [ $ci_mode ]; then
- echo "copying file to artifacts"
- mkdir -p ${WORKSPACE}/archive
- cp $log_path/reports/* ${WORKSPACE}/archive
- fi
- fi
|