提交 849bf9d0 编写于 作者: T tensor-tang

separate mkldnn benchmark as train and infer

上级 6c5f928a
set -e set -e
function train() { function infer() {
unset OMP_NUM_THREADS MKL_NUM_THREADS OMP_DYNAMIC KMP_AFFINITY unset OMP_NUM_THREADS MKL_NUM_THREADS OMP_DYNAMIC KMP_AFFINITY
topology=$1 topology=$1
layer_num=$2 layer_num=$2
...@@ -8,43 +8,13 @@ function train() { ...@@ -8,43 +8,13 @@ function train() {
use_mkldnn=$4 use_mkldnn=$4
if [ $4 == "True" ]; then if [ $4 == "True" ]; then
thread=1 thread=1
log="logs/train-${topology}-${layer_num}-mkldnn-${bs}.log" log="logs/infer-${topology}-${layer_num}-mkldnn-${bs}.log"
elif [ $4 == "False" ]; then
thread=`nproc`
# each trainer_count use only 1 core to avoid conflict
log="logs/train-${topology}-${layer_num}-${thread}mklml-${bs}.log"
else
echo "Wrong input $4, use True or False."
exit 0
fi
args="batch_size=${bs},layer_num=${layer_num}"
config="${topology}.py"
paddle train --job=time \
--config=$config \
--use_mkldnn=$use_mkldnn \
--use_gpu=False \
--trainer_count=$thread \
--log_period=10 \
--test_period=100 \
--config_args=$args \
2>&1 | tee ${log}
}
function test() {
unset OMP_NUM_THREADS MKL_NUM_THREADS OMP_DYNAMIC KMP_AFFINITY
topology=$1
layer_num=$2
bs=$3
use_mkldnn=$4
if [ $4 == "True" ]; then
thread=1
log="logs/test-${topology}-${layer_num}-mkldnn-${bs}.log"
elif [ $4 == "False" ]; then elif [ $4 == "False" ]; then
thread=`nproc` thread=`nproc`
if [ $thread -gt $bs ]; then if [ $thread -gt $bs ]; then
thread=$bs thread=$bs
fi fi
log="logs/test-${topology}-${layer_num}-${thread}mklml-${bs}.log" log="logs/infer-${topology}-${layer_num}-${thread}mklml-${bs}.log"
else else
echo "Wrong input $4, use True or False." echo "Wrong input $4, use True or False."
exit 0 exit 0
...@@ -69,8 +39,8 @@ function test() { ...@@ -69,8 +39,8 @@ function test() {
--use_mkldnn=$use_mkldnn \ --use_mkldnn=$use_mkldnn \
--use_gpu=False \ --use_gpu=False \
--trainer_count=$thread \ --trainer_count=$thread \
--log_period=10 \ --log_period=32 \
--config_args="batch_size=${bs},layer_num=${layer_num},is_test=True" \ --config_args="batch_size=${bs},layer_num=${layer_num},is_infer=True" \
--init_model_path=$models_in \ --init_model_path=$models_in \
2>&1 | tee ${log} 2>&1 | tee ${log}
} }
...@@ -91,17 +61,8 @@ fi ...@@ -91,17 +61,8 @@ fi
# inference benchmark # inference benchmark
for use_mkldnn in True False; do for use_mkldnn in True False; do
for batchsize in 1 2 4 8 16; do for batchsize in 1 2 4 8 16; do
test googlenet v1 $batchsize $use_mkldnn infer googlenet v1 $batchsize $use_mkldnn
test resnet 50 $batchsize $use_mkldnn infer resnet 50 $batchsize $use_mkldnn
test vgg 19 $batchsize $use_mkldnn infer vgg 19 $batchsize $use_mkldnn
done
done
# training benchmark
for use_mkldnn in True False; do
for batchsize in 64 128 256; do
train vgg 19 $batchsize $use_mkldnn
train resnet 50 $batchsize $use_mkldnn
train googlenet v1 $batchsize $use_mkldnn
done done
done done
set -e
function train() {
unset OMP_NUM_THREADS MKL_NUM_THREADS OMP_DYNAMIC KMP_AFFINITY
topology=$1
layer_num=$2
bs=$3
use_mkldnn=$4
if [ $4 == "True" ]; then
thread=1
log="logs/train-${topology}-${layer_num}-mkldnn-${bs}.log"
elif [ $4 == "False" ]; then
thread=`nproc`
# each trainer_count use only 1 core to avoid conflict
log="logs/train-${topology}-${layer_num}-${thread}mklml-${bs}.log"
else
echo "Wrong input $4, use True or False."
exit 0
fi
args="batch_size=${bs},layer_num=${layer_num}"
config="${topology}.py"
paddle train --job=time \
--config=$config \
--use_mkldnn=$use_mkldnn \
--use_gpu=False \
--trainer_count=$thread \
--log_period=10 \
--test_period=100 \
--config_args=$args \
2>&1 | tee ${log}
}
if [ ! -f "train.list" ]; then
echo " " > train.list
fi
if [ ! -d "logs" ]; then
mkdir logs
fi
# training benchmark
for use_mkldnn in True False; do
for batchsize in 64 128 256; do
train vgg 19 $batchsize $use_mkldnn
train resnet 50 $batchsize $use_mkldnn
train googlenet v1 $batchsize $use_mkldnn
done
done
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册