From 19939657eaf5793af62033c34c071c949c409012 Mon Sep 17 00:00:00 2001 From: tensor-tang Date: Thu, 21 Dec 2017 23:47:34 +0800 Subject: [PATCH 1/4] enable training alexnet benchmark --- benchmark/paddle/image/alexnet.py | 22 +++++++++++++++++--- benchmark/paddle/image/run_mkl_train.sh | 1 + benchmark/paddle/image/run_openblas_train.sh | 1 + 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/benchmark/paddle/image/alexnet.py b/benchmark/paddle/image/alexnet.py index 3358d43a4b..10db194485 100644 --- a/benchmark/paddle/image/alexnet.py +++ b/benchmark/paddle/image/alexnet.py @@ -6,6 +6,7 @@ height = 227 width = 227 num_class = 1000 batch_size = get_config_arg('batch_size', int, 128) +use_mkldnn = get_config_arg('use_mkldnn', bool, False) args = {'height': height, 'width': width, 'color': True, 'num_class': num_class} define_py_data_sources2( @@ -31,7 +32,12 @@ net = img_pool_layer(input=net, pool_size=3, stride=2) # conv2 net = img_conv_layer( - input=net, filter_size=5, num_filters=256, stride=1, padding=2, groups=1) + input=net, + filter_size=5, + num_filters=256, + stride=1, + padding=2, + groups=2 if use_mkldnn else 1) net = img_cmrnorm_layer(input=net, size=5, scale=0.0001, power=0.75) net = img_pool_layer(input=net, pool_size=3, stride=2) @@ -40,11 +46,21 @@ net = img_conv_layer( input=net, filter_size=3, num_filters=384, stride=1, padding=1) # conv4 net = img_conv_layer( - input=net, filter_size=3, num_filters=384, stride=1, padding=1, groups=1) + input=net, + filter_size=3, + num_filters=384, + stride=1, + padding=1, + groups=2 if use_mkldnn else 1) # conv5 net = img_conv_layer( - input=net, filter_size=3, num_filters=256, stride=1, padding=1, groups=1) + input=net, + filter_size=3, + num_filters=256, + stride=1, + padding=1, + groups=2 if use_mkldnn else 1) net = img_pool_layer(input=net, pool_size=3, stride=2) net = fc_layer( diff --git a/benchmark/paddle/image/run_mkl_train.sh b/benchmark/paddle/image/run_mkl_train.sh index 5335af5ac1..c38b3e3621 100755 --- a/benchmark/paddle/image/run_mkl_train.sh +++ b/benchmark/paddle/image/run_mkl_train.sh @@ -47,5 +47,6 @@ for use_mkldnn in True False; do train vgg 19 $batchsize $use_mkldnn train resnet 50 $batchsize $use_mkldnn train googlenet v1 $batchsize $use_mkldnn + train alexnet group2 $batchsize $use_mkldnn done done diff --git a/benchmark/paddle/image/run_openblas_train.sh b/benchmark/paddle/image/run_openblas_train.sh index b9494ce119..caea5548c3 100755 --- a/benchmark/paddle/image/run_openblas_train.sh +++ b/benchmark/paddle/image/run_openblas_train.sh @@ -36,4 +36,5 @@ for batchsize in 64 128 256; do train vgg 19 $batchsize train resnet 50 $batchsize train googlenet v1 $batchsize + train alexnet group2 $batchsize $use_mkldnn done From 86b8bdc0af01960eaded403ade4214faebe5c475 Mon Sep 17 00:00:00 2001 From: tensor-tang Date: Thu, 21 Dec 2017 23:54:38 +0800 Subject: [PATCH 2/4] enable inference alexnet benchmark --- benchmark/paddle/image/alexnet.py | 11 ++++++++++- benchmark/paddle/image/run_mkl_infer.sh | 1 + benchmark/paddle/image/run_openblas_infer.sh | 1 + 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/benchmark/paddle/image/alexnet.py b/benchmark/paddle/image/alexnet.py index 10db194485..b0beef8ca7 100644 --- a/benchmark/paddle/image/alexnet.py +++ b/benchmark/paddle/image/alexnet.py @@ -7,8 +7,17 @@ width = 227 num_class = 1000 batch_size = get_config_arg('batch_size', int, 128) use_mkldnn = get_config_arg('use_mkldnn', bool, False) +is_infer = get_config_arg("is_infer", bool, False) +num_samples = get_config_arg('num_samples', int, 2560) -args = {'height': height, 'width': width, 'color': True, 'num_class': num_class} +args = { + 'height': height, + 'width': width, + 'color': True, + 'num_class': num_class, + 'is_infer': is_infer, + 'num_samples': num_samples +} define_py_data_sources2( "train.list", None, module="provider", obj="process", args=args) diff --git a/benchmark/paddle/image/run_mkl_infer.sh b/benchmark/paddle/image/run_mkl_infer.sh index d795bcab1b..00942e32a5 100755 --- a/benchmark/paddle/image/run_mkl_infer.sh +++ b/benchmark/paddle/image/run_mkl_infer.sh @@ -79,6 +79,7 @@ fi # inference benchmark for use_mkldnn in True False; do for batchsize in 1 2 4 8 16; do + infer alexnet group2 $batchsize $use_mkldnn infer googlenet v1 $batchsize $use_mkldnn infer resnet 50 $batchsize $use_mkldnn infer vgg 19 $batchsize $use_mkldnn diff --git a/benchmark/paddle/image/run_openblas_infer.sh b/benchmark/paddle/image/run_openblas_infer.sh index c1001d3a7c..3dad42ee0d 100755 --- a/benchmark/paddle/image/run_openblas_infer.sh +++ b/benchmark/paddle/image/run_openblas_infer.sh @@ -56,6 +56,7 @@ fi # inference benchmark for batchsize in 1 2 4 8 16; do + infer alexnet group2 $batchsize $use_mkldnn infer googlenet v1 $batchsize infer resnet 50 $batchsize infer vgg 19 $batchsize From a785496b6904fe56754110242a8dceb8ef795221 Mon Sep 17 00:00:00 2001 From: tensor-tang Date: Fri, 22 Dec 2017 10:19:33 +0800 Subject: [PATCH 3/4] fix logical error --- benchmark/paddle/image/alexnet.py | 32 ++++++-------------- benchmark/paddle/image/run_mkl_infer.sh | 2 +- benchmark/paddle/image/run_mkl_train.sh | 2 +- benchmark/paddle/image/run_openblas_infer.sh | 2 +- benchmark/paddle/image/run_openblas_train.sh | 2 +- 5 files changed, 14 insertions(+), 26 deletions(-) diff --git a/benchmark/paddle/image/alexnet.py b/benchmark/paddle/image/alexnet.py index b0beef8ca7..77d130ae34 100644 --- a/benchmark/paddle/image/alexnet.py +++ b/benchmark/paddle/image/alexnet.py @@ -6,7 +6,7 @@ height = 227 width = 227 num_class = 1000 batch_size = get_config_arg('batch_size', int, 128) -use_mkldnn = get_config_arg('use_mkldnn', bool, False) +gp = get_config_arg('layer_num', int, 1) is_infer = get_config_arg("is_infer", bool, False) num_samples = get_config_arg('num_samples', int, 2560) @@ -41,12 +41,7 @@ net = img_pool_layer(input=net, pool_size=3, stride=2) # conv2 net = img_conv_layer( - input=net, - filter_size=5, - num_filters=256, - stride=1, - padding=2, - groups=2 if use_mkldnn else 1) + input=net, filter_size=5, num_filters=256, stride=1, padding=2, groups=gp) net = img_cmrnorm_layer(input=net, size=5, scale=0.0001, power=0.75) net = img_pool_layer(input=net, pool_size=3, stride=2) @@ -55,21 +50,11 @@ net = img_conv_layer( input=net, filter_size=3, num_filters=384, stride=1, padding=1) # conv4 net = img_conv_layer( - input=net, - filter_size=3, - num_filters=384, - stride=1, - padding=1, - groups=2 if use_mkldnn else 1) + input=net, filter_size=3, num_filters=384, stride=1, padding=1, groups=gp) # conv5 net = img_conv_layer( - input=net, - filter_size=3, - num_filters=256, - stride=1, - padding=1, - groups=2 if use_mkldnn else 1) + input=net, filter_size=3, num_filters=256, stride=1, padding=1, groups=gp) net = img_pool_layer(input=net, pool_size=3, stride=2) net = fc_layer( @@ -84,6 +69,9 @@ net = fc_layer( layer_attr=ExtraAttr(drop_rate=0.5)) net = fc_layer(input=net, size=1000, act=SoftmaxActivation()) -lab = data_layer('label', num_class) -loss = cross_entropy(input=net, label=lab) -outputs(loss) +if is_infer: + outputs(net) +else: + lab = data_layer('label', num_class) + loss = cross_entropy(input=net, label=lab) + outputs(loss) diff --git a/benchmark/paddle/image/run_mkl_infer.sh b/benchmark/paddle/image/run_mkl_infer.sh index 00942e32a5..a3b5e2db5e 100755 --- a/benchmark/paddle/image/run_mkl_infer.sh +++ b/benchmark/paddle/image/run_mkl_infer.sh @@ -79,7 +79,7 @@ fi # inference benchmark for use_mkldnn in True False; do for batchsize in 1 2 4 8 16; do - infer alexnet group2 $batchsize $use_mkldnn + infer alexnet 2 $batchsize $use_mkldnn infer googlenet v1 $batchsize $use_mkldnn infer resnet 50 $batchsize $use_mkldnn infer vgg 19 $batchsize $use_mkldnn diff --git a/benchmark/paddle/image/run_mkl_train.sh b/benchmark/paddle/image/run_mkl_train.sh index c38b3e3621..03d2d378fb 100755 --- a/benchmark/paddle/image/run_mkl_train.sh +++ b/benchmark/paddle/image/run_mkl_train.sh @@ -47,6 +47,6 @@ for use_mkldnn in True False; do train vgg 19 $batchsize $use_mkldnn train resnet 50 $batchsize $use_mkldnn train googlenet v1 $batchsize $use_mkldnn - train alexnet group2 $batchsize $use_mkldnn + train alexnet 2 $batchsize $use_mkldnn done done diff --git a/benchmark/paddle/image/run_openblas_infer.sh b/benchmark/paddle/image/run_openblas_infer.sh index 3dad42ee0d..ec9235e2c2 100755 --- a/benchmark/paddle/image/run_openblas_infer.sh +++ b/benchmark/paddle/image/run_openblas_infer.sh @@ -56,7 +56,7 @@ fi # inference benchmark for batchsize in 1 2 4 8 16; do - infer alexnet group2 $batchsize $use_mkldnn + infer alexnet 2 $batchsize $use_mkldnn infer googlenet v1 $batchsize infer resnet 50 $batchsize infer vgg 19 $batchsize diff --git a/benchmark/paddle/image/run_openblas_train.sh b/benchmark/paddle/image/run_openblas_train.sh index caea5548c3..1e007be966 100755 --- a/benchmark/paddle/image/run_openblas_train.sh +++ b/benchmark/paddle/image/run_openblas_train.sh @@ -36,5 +36,5 @@ for batchsize in 64 128 256; do train vgg 19 $batchsize train resnet 50 $batchsize train googlenet v1 $batchsize - train alexnet group2 $batchsize $use_mkldnn + train alexnet 2 $batchsize $use_mkldnn done From 025a6f3c234c07ac34d881db7f9f4dbb47be25b4 Mon Sep 17 00:00:00 2001 From: tensor-tang Date: Fri, 22 Dec 2017 10:33:02 +0800 Subject: [PATCH 4/4] unify the test reorder --- benchmark/paddle/image/run_mkl_infer.sh | 6 +++--- benchmark/paddle/image/run_openblas_infer.sh | 6 +++--- benchmark/paddle/image/run_openblas_train.sh | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/paddle/image/run_mkl_infer.sh b/benchmark/paddle/image/run_mkl_infer.sh index a3b5e2db5e..c22c4deb1c 100755 --- a/benchmark/paddle/image/run_mkl_infer.sh +++ b/benchmark/paddle/image/run_mkl_infer.sh @@ -79,9 +79,9 @@ fi # inference benchmark for use_mkldnn in True False; do for batchsize in 1 2 4 8 16; do - infer alexnet 2 $batchsize $use_mkldnn - infer googlenet v1 $batchsize $use_mkldnn - infer resnet 50 $batchsize $use_mkldnn infer vgg 19 $batchsize $use_mkldnn + infer resnet 50 $batchsize $use_mkldnn + infer googlenet v1 $batchsize $use_mkldnn + infer alexnet 2 $batchsize $use_mkldnn done done diff --git a/benchmark/paddle/image/run_openblas_infer.sh b/benchmark/paddle/image/run_openblas_infer.sh index ec9235e2c2..ba9019c9de 100755 --- a/benchmark/paddle/image/run_openblas_infer.sh +++ b/benchmark/paddle/image/run_openblas_infer.sh @@ -56,8 +56,8 @@ fi # inference benchmark for batchsize in 1 2 4 8 16; do - infer alexnet 2 $batchsize $use_mkldnn - infer googlenet v1 $batchsize - infer resnet 50 $batchsize infer vgg 19 $batchsize + infer resnet 50 $batchsize + infer googlenet v1 $batchsize + infer alexnet 2 $batchsize done diff --git a/benchmark/paddle/image/run_openblas_train.sh b/benchmark/paddle/image/run_openblas_train.sh index 1e007be966..a1b5ee9da8 100755 --- a/benchmark/paddle/image/run_openblas_train.sh +++ b/benchmark/paddle/image/run_openblas_train.sh @@ -36,5 +36,5 @@ for batchsize in 64 128 256; do train vgg 19 $batchsize train resnet 50 $batchsize train googlenet v1 $batchsize - train alexnet 2 $batchsize $use_mkldnn + train alexnet 2 $batchsize done