提交 a7b81193 编写于 作者: L LDOUBLEV

add benchmark_train.sh

上级 892c0e67
......@@ -2,9 +2,8 @@
source test_tipc/common_func.sh
# run benchmark sh
# params: batch
# Usage:
# bash run_benchmark_train.sh config.txt benchmark_train batch_size=2 precision=3 profile_option=4
# bash run_benchmark_train.sh config.txt params
function func_parser_params(){
strs=$1
......@@ -43,41 +42,120 @@ function func_sed_params(){
function set_gpu_id(){
string=$1
_str=${string:1:6}
IFS="C"
arr=(${_str})
M=${arr[0]}
P=${arr[1]}
gpu_num=`expr $P - 1`
gn=`expr $P - 1`
gpu_num=`expr $gn / $M`
seq=`seq -s "," 0 $gpu_num`
echo $seq
}
FILENAME=$1
# MODE be one of ['benchmark_train']
MODE=$2
#
# line_bs=9
# line_presion=6
# line_profile=13
# if [ $# -eq 4 ] ; then
# echo "Usage: bash run_benchmark_train.sh config.txt benchmark_train batch_size=2 precision=fp16"
# elif [ $# -eq 5 ] ; then
# echo "Usage: bash run_benchmark_train.sh config.txt benchmark_train batch_size=2 precision=fp16 profile_option=None"
# profile_options=$(func_parser_params "$5")
# else
# echo "None"
# fi
# l=`grep -n "benchmark_params" ${FILENAME} | cut -d ":" -f 1`
# echo $l
function get_repo_name(){
IFS=";"
cur_dir=$(pwd)
IFS="/"
arr=(${cur_dir})
echo ${arr[-1]}
}
# sed -i '[第n行]s/[正则通配符]/[替换内容]/' [指定文件]
# FILENAME=$1
# # MODE be one of ['benchmark_train']
# MODE=$2
# params=$3
IFS="\n"
FILENAME="test_tipc/configs/det_mv3_db_v2.0/train_benchmark.txt"
MODE="benchmark_train"
params="dynamic_bs8_fp32_SingleP_DP_N1C4"
# parser params from input: modeltype_bs${bs_item}_${fp_item}_${run_process_type}_${run_mode}_${device_num}
IFS="_"
params_list=(${params})
model_type=${params_list[0]}
batch_size=${params_list[1]}
batch_size=`echo ${batch_size} | tr -cd "[0-9]" `
precision=${params_list[2]}
run_process_type=${params_list[3]}
run_mode=${params_list[4]}
device_num=${params_list[5]}
device_num_copy=$device_num
IFS=";"
echo $precision
# sed batchsize and precision
func_sed_params "$FILENAME" "6" "$precision"
func_sed_params "$FILENAME" "9" "$batch_size"
# parser params from train_benchmark.txt
dataline=`cat $FILENAME`
# parser params
IFS=$'\n'
lines=(${dataline})
model_name=$(func_parser_value "${lines[1]}")
# 获取benchmark_params所在的行数
line_num=`grep -n "benchmark_params" $FILENAME | cut -d ":" -f 1`
echo $line_num # debug
echo ${lines[$line_num]} # debug
# for train log parser
line_num=`expr $line_num + 3`
ips_unit_value=$(func_parser_value "${lines[line_num]}")
line_num=`expr $line_num + 1`
skip_steps_value=$(func_parser_value "${lines[line_num]}")
echo $skip_steps_value "haha"
line_num=`expr $line_num + 1`
keyword_value=$(func_parser_value "${lines[line_num]}")
line_num=`expr $line_num + 1`
convergence_key_value=$(func_parser_value "${lines[line_num]}")
line_num=`expr $line_num + 1`
flags_value=$(func_parser_value "${lines[line_num]}")
# echo "device_num: $device_num"
# gpu_id=$(set_gpu_id "N4C32")
# echo "gpuid: $gpu_id"
gpu_id=$(set_gpu_id $device_num)
echo "gpu_id: $gpu_id"
repo_name=$(get_repo_name )
echo "repo_name: ${repo_name}"
# train_log_file=${run_log_path}/${model_repo}_${model_name}_${device_num}_log
# profiling_log_file=${profiling_log_path}/${model_repo}_${model_name}_${device_num}_profiling
SAVE_LOG="benchmark_log"
if [ ${#gpu_id} -le 1 ];then
echo "single_gpu train"
log_path="$SAVE_LOG/profiling_log"
mkdir -p $log_path
log_name="${repo_name}_${model_name}_bs${batch_size}_${precision}_${run_process_type}_${run_mode}_${device_num}_profiling"
echo $log_name
func_sed_params "$FILENAME" "4" "0" # sed used gpu_id
cmd="bash test_tipc/test_train_inference_python.sh benchmark_train > ${log_path}/${log_name} 2>&1 "
echo $cmd
# without profile
log_path="$SAVE_LOG/train_log"
mkdir -p $log_path
log_name="${repo_name}_${model_name}_bs${batch_size}_${precision}_${run_process_type}_${run_mode}_${device_num}_log"
func_sed_params "$FILENAME" "13" "null" # sed used gpu_id
cmd="bash test_tipc/test_train_inference_python.sh benchmark_train > ${log_path}/${log_name} 2>&1 "
echo $cmd
else
echo "multi_gpu training"
log_path="$SAVE_LOG/train_log"
mkdir -p $log_path
log_name="${repo_name}_${model_name}_bs${batch_size}_${precision}_${run_process_type}_${run_mode}_${device_num}_log"
func_sed_params "$FILENAME" "4" "$gpu_id" # sed used gpu_id
func_sed_params "$FILENAME" "13" "$null" # sed --profile_option as null
cmd="bash test_tipc/test_train_inference_python.sh benchmark_train > ${log_path}/${log_name} 2>&1 "
echo $cmd
fi
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册