diff options
author | Giorgio Arena <giorgio.arena@arm.com> | 2018-01-17 14:10:00 +0000 |
---|---|---|
committer | Anthony Barbier <anthony.barbier@arm.com> | 2018-11-02 16:43:42 +0000 |
commit | 9c42de9e4c7061ea0431f2ef2ecf8984e0d9c89b (patch) | |
tree | 1c694737d9dc082e5ecd943f9dbb3f11ef3b1d4b /tests | |
parent | a0d1183a15c6788676a12160f56e4c576ee1a84b (diff) | |
download | ComputeLibrary-9c42de9e4c7061ea0431f2ef2ecf8984e0d9c89b.tar.gz |
COMPMID-753 Add benchmarks for ActivationLayers used in MobileNet
Change-Id: Iafc16409430274d5126f0fb054b0de5de6b6ca8f
Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/116635
Tested-by: Jenkins <bsgcomp@arm.com>
Reviewed-by: Gian Marco Iodice <gianmarco.iodice@arm.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/benchmark/CL/ActivationLayer.cpp | 14 | ||||
-rw-r--r-- | tests/benchmark/NEON/ActivationLayer.cpp | 15 | ||||
-rw-r--r-- | tests/datasets/system_tests/mobilenet/MobileNetActivationLayerDataset.h | 59 |
3 files changed, 85 insertions, 3 deletions
diff --git a/tests/benchmark/CL/ActivationLayer.cpp b/tests/benchmark/CL/ActivationLayer.cpp index 6412bd9680..2e4641bfa5 100644 --- a/tests/benchmark/CL/ActivationLayer.cpp +++ b/tests/benchmark/CL/ActivationLayer.cpp @@ -32,6 +32,7 @@ #include "tests/datasets/system_tests/googlenet/inceptionv1/GoogLeNetInceptionV1ActivationLayerDataset.h" #include "tests/datasets/system_tests/googlenet/inceptionv4/GoogLeNetInceptionV4ActivationLayerDataset.h" #include "tests/datasets/system_tests/lenet5/LeNet5ActivationLayerDataset.h" +#include "tests/datasets/system_tests/mobilenet/MobileNetActivationLayerDataset.h" #include "tests/datasets/system_tests/squeezenet/SqueezeNetActivationLayerDataset.h" #include "tests/datasets/system_tests/vgg/vgg16/VGG16ActivationLayerDataset.h" #include "tests/datasets/system_tests/yolo/v2/YOLOV2ActivationLayerDataset.h" @@ -45,7 +46,8 @@ namespace test { namespace { -const auto data_types = framework::dataset::make("DataType", { DataType::F16, DataType::F32 }); +const auto data_types = framework::dataset::make("DataType", { DataType::F16, DataType::F32, DataType::QS8, DataType::QS16 }); +const auto data_types_mobilenet = framework::dataset::make("DataType", { DataType::F16, DataType::F32, DataType::QS8, DataType::QS16, DataType::QASYMM8 }); } // namespace using CLActivationLayerFixture = ActivationLayerFixture<CLTensor, CLActivationLayer, CLAccessor>; @@ -62,6 +64,11 @@ REGISTER_FIXTURE_DATA_TEST_CASE(LeNet5ActivationLayer, CLActivationLayerFixture, data_types), framework::dataset::make("Batches", 1))); +REGISTER_FIXTURE_DATA_TEST_CASE(MobileNetActivationLayer, CLActivationLayerFixture, framework::DatasetMode::ALL, + framework::dataset::combine(framework::dataset::combine(datasets::MobileNetActivationLayerDataset(), + data_types_mobilenet), + framework::dataset::make("Batches", 1))); + REGISTER_FIXTURE_DATA_TEST_CASE(GoogLeNetInceptionV1ActivationLayer, CLActivationLayerFixture, framework::DatasetMode::ALL, framework::dataset::combine(framework::dataset::combine(datasets::GoogLeNetInceptionV1ActivationLayerDataset(), data_types), @@ -98,6 +105,11 @@ REGISTER_FIXTURE_DATA_TEST_CASE(LeNet5ActivationLayer, CLActivationLayerFixture, data_types), framework::dataset::make("Batches", { 4, 8 }))); +REGISTER_FIXTURE_DATA_TEST_CASE(MobileNetActivationLayer, CLActivationLayerFixture, framework::DatasetMode::NIGHTLY, + framework::dataset::combine(framework::dataset::combine(datasets::MobileNetActivationLayerDataset(), + data_types_mobilenet), + framework::dataset::make("Batches", { 4, 8 }))); + REGISTER_FIXTURE_DATA_TEST_CASE(GoogLeNetInceptionV1ActivationLayer, CLActivationLayerFixture, framework::DatasetMode::NIGHTLY, framework::dataset::combine(framework::dataset::combine(datasets::GoogLeNetInceptionV1ActivationLayerDataset(), data_types), diff --git a/tests/benchmark/NEON/ActivationLayer.cpp b/tests/benchmark/NEON/ActivationLayer.cpp index b51cd7a841..58aa42a8a4 100644 --- a/tests/benchmark/NEON/ActivationLayer.cpp +++ b/tests/benchmark/NEON/ActivationLayer.cpp @@ -32,6 +32,7 @@ #include "tests/datasets/system_tests/googlenet/inceptionv1/GoogLeNetInceptionV1ActivationLayerDataset.h" #include "tests/datasets/system_tests/googlenet/inceptionv4/GoogLeNetInceptionV4ActivationLayerDataset.h" #include "tests/datasets/system_tests/lenet5/LeNet5ActivationLayerDataset.h" +#include "tests/datasets/system_tests/mobilenet/MobileNetActivationLayerDataset.h" #include "tests/datasets/system_tests/squeezenet/SqueezeNetActivationLayerDataset.h" #include "tests/datasets/system_tests/vgg/vgg16/VGG16ActivationLayerDataset.h" #include "tests/datasets/system_tests/yolo/v2/YOLOV2ActivationLayerDataset.h" @@ -46,9 +47,11 @@ namespace test namespace { #ifdef __ARM_FEATURE_FP16_VECTOR_ARITHMETIC -const auto data_types = framework::dataset::make("DataType", { DataType::F16, DataType::F32 }); +const auto data_types = framework::dataset::make("DataType", { DataType::F16, DataType::F32, DataType::QS8, DataType::QS16 }); +const auto data_types_mobilenet = framework::dataset::make("DataType", { DataType::F16, DataType::F32, DataType::QS8, DataType::QS16, DataType::QASYMM8 }); #else /* __ARM_FEATURE_FP16_VECTOR_ARITHMETIC */ -const auto data_types = framework::dataset::make("DataType", { DataType::F32 }); +const auto data_types = framework::dataset::make("DataType", { DataType::F32, DataType::QS8, DataType::QS16 }); +const auto data_types_mobilenet = framework::dataset::make("DataType", { DataType::F32, DataType::QS8, DataType::QS16, DataType::QASYMM8 }); #endif /* __ARM_FEATURE_FP16_VECTOR_ARITHMETIC */ } // namespace @@ -64,6 +67,10 @@ REGISTER_FIXTURE_DATA_TEST_CASE(LeNet5ActivationLayer, NEActivationLayerFixture, framework::dataset::combine(framework::dataset::combine(datasets::LeNet5ActivationLayerDataset(), data_types), framework::dataset::make("Batches", 1))); +REGISTER_FIXTURE_DATA_TEST_CASE(MobileNetActivationLayer, NEActivationLayerFixture, framework::DatasetMode::ALL, + framework::dataset::combine(framework::dataset::combine(datasets::MobileNetActivationLayerDataset(), data_types_mobilenet), + framework::dataset::make("Batches", 1))); + REGISTER_FIXTURE_DATA_TEST_CASE(GoogLeNetInceptionV1ActivationLayer, NEActivationLayerFixture, framework::DatasetMode::ALL, framework::dataset::combine(framework::dataset::combine(datasets::GoogLeNetInceptionV1ActivationLayerDataset(), data_types), framework::dataset::make("Batches", 1))); @@ -93,6 +100,10 @@ REGISTER_FIXTURE_DATA_TEST_CASE(LeNet5ActivationLayer, NEActivationLayerFixture, framework::dataset::combine(framework::dataset::combine(datasets::LeNet5ActivationLayerDataset(), data_types), framework::dataset::make("Batches", { 4, 8 }))); +REGISTER_FIXTURE_DATA_TEST_CASE(MobileNetActivationLayer, NEActivationLayerFixture, framework::DatasetMode::NIGHTLY, + framework::dataset::combine(framework::dataset::combine(datasets::MobileNetActivationLayerDataset(), data_types_mobilenet), + framework::dataset::make("Batches", { 4, 8 }))); + REGISTER_FIXTURE_DATA_TEST_CASE(GoogLeNetInceptionV1ActivationLayer, NEActivationLayerFixture, framework::DatasetMode::NIGHTLY, framework::dataset::combine(framework::dataset::combine(datasets::GoogLeNetInceptionV1ActivationLayerDataset(), data_types), framework::dataset::make("Batches", { 4, 8 }))); diff --git a/tests/datasets/system_tests/mobilenet/MobileNetActivationLayerDataset.h b/tests/datasets/system_tests/mobilenet/MobileNetActivationLayerDataset.h new file mode 100644 index 0000000000..64cd918049 --- /dev/null +++ b/tests/datasets/system_tests/mobilenet/MobileNetActivationLayerDataset.h @@ -0,0 +1,59 @@ +/* + * Copyright (c) 2017-2018 ARM Limited. + * + * SPDX-License-Identifier: MIT + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +#ifndef ARM_COMPUTE_TEST_MOBILENET_ACTIVATION_LAYER_DATASET +#define ARM_COMPUTE_TEST_MOBILENET_ACTIVATION_LAYER_DATASET + +#include "tests/framework/datasets/Datasets.h" + +#include "arm_compute/core/TensorShape.h" +#include "arm_compute/core/Types.h" + +namespace arm_compute +{ +namespace test +{ +namespace datasets +{ +class MobileNetActivationLayerDataset final : public + framework::dataset::CartesianProductDataset<framework::dataset::InitializerListDataset<TensorShape>, framework::dataset::SingletonDataset<ActivationLayerInfo>> +{ +public: + MobileNetActivationLayerDataset() + : CartesianProductDataset + { + framework::dataset::make("Shape", { + TensorShape(112U, 112U, 32U), TensorShape(112U, 112U, 64U), TensorShape(56U, 56U, 64U), TensorShape(56U, 56U, 128U), + TensorShape(28U, 28U, 128U), TensorShape(28U, 28U, 256U), TensorShape(14U, 14U, 256U), TensorShape(14U, 14U, 512U), + TensorShape(7U, 7U, 512U), TensorShape(7U, 7U, 1024U) }), + framework::dataset::make("Info", ActivationLayerInfo(ActivationLayerInfo::ActivationFunction::LU_BOUNDED_RELU, 6.f)) + } + { + } + MobileNetActivationLayerDataset(MobileNetActivationLayerDataset &&) = default; + ~MobileNetActivationLayerDataset() = default; +}; +} // namespace datasets +} // namespace test +} // namespace arm_compute +#endif /* ARM_COMPUTE_TEST_MOBILENET_ACTIVATION_LAYER_DATASET */ |