aboutsummaryrefslogtreecommitdiff
path: root/tests/benchmark/common
diff options
context:
space:
mode:
authorMoritz Pflanzer <moritz.pflanzer@arm.com>2017-07-05 10:52:21 +0100
committerAnthony Barbier <anthony.barbier@arm.com>2018-09-17 14:16:42 +0100
commitee493ae23b8cd6de5a6c578cea34bccb478d2f64 (patch)
tree154d1f8652f659128d3d76a1ac49cc942816b090 /tests/benchmark/common
parentd7a5d22dd6b2a968469ea511f11907b131ec1c67 (diff)
downloadComputeLibrary-ee493ae23b8cd6de5a6c578cea34bccb478d2f64.tar.gz
COMPMID-415: Port benchmark tests and remove google benchmark
Change-Id: I2f17720a4e974b2cc4481f2884d9f351e8f78b5f Reviewed-on: http://mpd-gerrit.cambridge.arm.com/79776 Tested-by: Kaizen <jeremy.johnson+kaizengerrit@arm.com> Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
Diffstat (limited to 'tests/benchmark/common')
-rw-r--r--tests/benchmark/common/ActivationLayer.h92
-rw-r--r--tests/benchmark/common/ConvolutionLayer.h107
-rw-r--r--tests/benchmark/common/FullyConnectedLayer.h108
-rw-r--r--tests/benchmark/common/NormalizationLayer.h96
-rw-r--r--tests/benchmark/common/PoolingLayer.h95
5 files changed, 0 insertions, 498 deletions
diff --git a/tests/benchmark/common/ActivationLayer.h b/tests/benchmark/common/ActivationLayer.h
deleted file mode 100644
index 8e22281025..0000000000
--- a/tests/benchmark/common/ActivationLayer.h
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Copyright (c) 2017 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_BENCHMARK_ACTIVATION_LAYER_H__
-#define __ARM_COMPUTE_TEST_BENCHMARK_ACTIVATION_LAYER_H__
-
-#include "TensorLibrary.h"
-#include "Utils.h"
-#include "dataset/ActivationLayerDataset.h"
-
-#include <memory>
-
-using namespace arm_compute;
-using namespace arm_compute::test;
-using namespace arm_compute::test::benchmark;
-
-namespace arm_compute
-{
-namespace test
-{
-namespace benchmark
-{
-template <typename DataSet, typename TensorType, typename Accessor, typename Function, DataType dt = DataType::F32>
-class ActivationLayer : public ::benchmark::Fixture
-{
-public:
- void SetUp(::benchmark::State &state) override
- {
- profiler.add(std::make_shared<WallClockTimer>());
-
- const ActivationLayerDataObject act_obj = *(DataSet().begin() + state.range(0));
-
- // Set batched in source and destination shapes
- const unsigned int batches = state.range(1);
- const unsigned int fixed_point_position = 4;
- TensorShape shape = act_obj.shape;
- shape.set(shape.num_dimensions(), batches);
-
- // Create tensors
- src = create_tensor<TensorType>(shape, dt, 1, fixed_point_position);
- dst = create_tensor<TensorType>(shape, dt, 1, fixed_point_position);
-
- // Create and configure function
- act_layer.configure(&src, &dst, act_obj.info);
-
- // Allocate tensors
- src.allocator()->allocate();
- dst.allocator()->allocate();
-
- // Fill tensors
- library->fill_tensor_uniform(Accessor(src), 0);
- }
-
- void TearDown(::benchmark::State &state) override
- {
- src.allocator()->free();
- dst.allocator()->free();
-
- profiler.submit(state);
- }
-
- Function act_layer{};
- Profiler profiler{};
-
-private:
- TensorType src{};
- TensorType dst{};
-};
-} // namespace benchmark
-} // namespace test
-} // namespace arm_compute
-#endif //__ARM_COMPUTE_TEST_BENCHMARK_ACTIVATION_LAYER_H__
diff --git a/tests/benchmark/common/ConvolutionLayer.h b/tests/benchmark/common/ConvolutionLayer.h
deleted file mode 100644
index a777a95bde..0000000000
--- a/tests/benchmark/common/ConvolutionLayer.h
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * Copyright (c) 2017 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_BENCHMARK_CONVOLUTION_LAYER_H__
-#define __ARM_COMPUTE_TEST_BENCHMARK_CONVOLUTION_LAYER_H__
-
-#include "TensorLibrary.h"
-#include "Utils.h"
-#include "dataset/ConvolutionLayerDataset.h"
-
-#include <memory>
-
-using namespace arm_compute;
-using namespace arm_compute::test;
-using namespace arm_compute::test::benchmark;
-
-namespace arm_compute
-{
-namespace test
-{
-namespace benchmark
-{
-template <typename DataSet, typename TensorType, typename Accessor, typename Function, DataType dt = DataType::F32>
-class ConvolutionLayer : public ::benchmark::Fixture
-{
-public:
- void SetUp(::benchmark::State &state) override
- {
- profiler.add(std::make_shared<WallClockTimer>());
-
- const ConvolutionLayerDataObject conv_obj = *(DataSet().begin() + state.range(0));
-
- // Set batched in source and destination shapes
- const unsigned int batches = state.range(1);
- const unsigned int fixed_point_position = 4;
- TensorShape src_shape = conv_obj.src_shape;
- TensorShape dst_shape = conv_obj.dst_shape;
- src_shape.set(3 /* batch */, batches);
- dst_shape.set(3 /* batch */, batches);
-
- // Create tensors
- src = create_tensor<TensorType>(src_shape, dt, 1, fixed_point_position);
- weights = create_tensor<TensorType>(conv_obj.weights_shape, dt, 1, fixed_point_position);
- bias = create_tensor<TensorType>(conv_obj.bias_shape, dt, 1, fixed_point_position);
- dst = create_tensor<TensorType>(dst_shape, dt, 1, fixed_point_position);
-
- // Create and configure function
- conv_layer = std::unique_ptr<Function>(new Function());
- conv_layer->configure(&src, &weights, &bias, &dst, conv_obj.info);
-
- // Allocate tensors
- src.allocator()->allocate();
- weights.allocator()->allocate();
- bias.allocator()->allocate();
- dst.allocator()->allocate();
-
- // Fill tensors
- library->fill_tensor_uniform(Accessor(src), 0);
- library->fill_tensor_uniform(Accessor(weights), 1);
- library->fill_tensor_uniform(Accessor(bias), 2);
- }
-
- void TearDown(::benchmark::State &state) override
- {
- conv_layer.reset();
-
- src.allocator()->free();
- weights.allocator()->free();
- bias.allocator()->free();
- dst.allocator()->free();
-
- profiler.submit(state);
- }
-
- std::unique_ptr<Function> conv_layer{ nullptr };
- Profiler profiler{};
-
-private:
- TensorType src{};
- TensorType weights{};
- TensorType bias{};
- TensorType dst{};
-};
-} // namespace benchmark
-} // namespace test
-} // namespace arm_compute
-#endif //__ARM_COMPUTE_TEST_BENCHMARK_CONVOLUTION_LAYER_H__
diff --git a/tests/benchmark/common/FullyConnectedLayer.h b/tests/benchmark/common/FullyConnectedLayer.h
deleted file mode 100644
index eeef1de28a..0000000000
--- a/tests/benchmark/common/FullyConnectedLayer.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * Copyright (c) 2017 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_BENCHMARK_FULLYCONNECTED_LAYER_H__
-#define __ARM_COMPUTE_TEST_BENCHMARK_FULLYCONNECTED_LAYER_H__
-
-#include "TensorLibrary.h"
-#include "Utils.h"
-#include "dataset/ConvolutionLayerDataset.h"
-
-#include <memory>
-#include <string>
-
-using namespace arm_compute;
-using namespace arm_compute::test;
-using namespace arm_compute::test::benchmark;
-
-namespace arm_compute
-{
-namespace test
-{
-namespace benchmark
-{
-template <typename DataSet, typename TensorType, typename Accessor, typename Function, DataType dt = DataType::F32>
-class FullyConnectedLayer : public ::benchmark::Fixture
-{
-public:
- void SetUp(::benchmark::State &state) override
- {
- profiler.add(std::make_shared<WallClockTimer>());
-
- const FullyConnectedLayerDataObject fc_obj = *(DataSet().begin() + state.range(0));
-
- // Set batched in source and destination shapes
- const unsigned int batches = state.range(1);
- const unsigned int fixed_point_position = 4;
- TensorShape src_shape = fc_obj.src_shape;
- TensorShape dst_shape = fc_obj.dst_shape;
- src_shape.set(src_shape.num_dimensions(), batches);
- dst_shape.set(dst_shape.num_dimensions(), batches);
-
- // Create tensors
- src = create_tensor<TensorType>(src_shape, dt, 1, fixed_point_position);
- weights = create_tensor<TensorType>(fc_obj.weights_shape, dt, 1, fixed_point_position);
- bias = create_tensor<TensorType>(fc_obj.bias_shape, dt, 1, fixed_point_position);
- dst = create_tensor<TensorType>(dst_shape, dt, 1, fixed_point_position);
-
- // Create and configure function
- fc_layer = std::unique_ptr<Function>(new Function());
- fc_layer->configure(&src, &weights, &bias, &dst);
-
- // Allocate tensors
- src.allocator()->allocate();
- weights.allocator()->allocate();
- bias.allocator()->allocate();
- dst.allocator()->allocate();
-
- // Fill tensors
- library->fill_tensor_uniform(Accessor(src), 0);
- library->fill_tensor_uniform(Accessor(weights), 1);
- library->fill_tensor_uniform(Accessor(bias), 2);
- }
-
- void TearDown(::benchmark::State &state) override
- {
- fc_layer.reset();
-
- src.allocator()->free();
- weights.allocator()->free();
- bias.allocator()->free();
- dst.allocator()->free();
-
- profiler.submit(state);
- }
-
- std::unique_ptr<Function> fc_layer{ nullptr };
- Profiler profiler{};
-
-private:
- TensorType src{};
- TensorType weights{};
- TensorType bias{};
- TensorType dst{};
-};
-} // namespace benchmark
-} // namespace test
-} // namespace arm_compute
-#endif //__ARM_COMPUTE_TEST_BENCHMARK_FULLYCONNECTED_LAYER_H__
diff --git a/tests/benchmark/common/NormalizationLayer.h b/tests/benchmark/common/NormalizationLayer.h
deleted file mode 100644
index 580dca6c48..0000000000
--- a/tests/benchmark/common/NormalizationLayer.h
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Copyright (c) 2017 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_BENCHMARK_NORMALIZATION_LAYER_H__
-#define __ARM_COMPUTE_TEST_BENCHMARK_NORMALIZATION_LAYER_H__
-
-#include "TensorLibrary.h"
-#include "Utils.h"
-#include "dataset/NormalizationLayerDataset.h"
-
-#include <memory>
-#include <string>
-
-using namespace arm_compute;
-using namespace arm_compute::test;
-using namespace arm_compute::test::benchmark;
-
-namespace arm_compute
-{
-namespace test
-{
-namespace benchmark
-{
-template <typename DataSet, typename TensorType, typename Accessor, typename Function, DataType dt = DataType::F32>
-class NormalizationLayer : public ::benchmark::Fixture
-{
-public:
- void SetUp(::benchmark::State &state) override
- {
- profiler.add(std::make_shared<WallClockTimer>());
-
- const NormalizationLayerDataObject norm_obj = *(DataSet().begin() + state.range(0));
-
- // Set batched in source and destination shapes
- const unsigned int batches = state.range(1);
- const unsigned int fixed_point_position = 4;
- TensorShape shape = norm_obj.shape;
- shape.set(shape.num_dimensions(), batches);
-
- // Create tensors
- src = create_tensor<TensorType>(shape, dt, 1, fixed_point_position);
- dst = create_tensor<TensorType>(shape, dt, 1, fixed_point_position);
-
- // Create and configure function
- norm_layer = std::unique_ptr<Function>(new Function());
- norm_layer->configure(&src, &dst, norm_obj.info);
-
- // Allocate tensors
- src.allocator()->allocate();
- dst.allocator()->allocate();
-
- // Fill tensors
- library->fill_tensor_uniform(Accessor(src), 0);
- }
-
- void TearDown(::benchmark::State &state) override
- {
- norm_layer.reset();
-
- src.allocator()->free();
- dst.allocator()->free();
-
- profiler.submit(state);
- }
-
- std::unique_ptr<Function> norm_layer{ nullptr };
- Profiler profiler{};
-
-private:
- TensorType src{};
- TensorType dst{};
-};
-} // namespace benchmark
-} // namespace test
-} // namespace arm_compute
-#endif //__ARM_COMPUTE_TEST_BENCHMARK_NORMALIZATION_LAYER_H__
diff --git a/tests/benchmark/common/PoolingLayer.h b/tests/benchmark/common/PoolingLayer.h
deleted file mode 100644
index 96ff905568..0000000000
--- a/tests/benchmark/common/PoolingLayer.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Copyright (c) 2017 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_BENCHMARK_POOLING_LAYER_H__
-#define __ARM_COMPUTE_TEST_BENCHMARK_POOLING_LAYER_H__
-
-#include "TensorLibrary.h"
-#include "Utils.h"
-#include "dataset/PoolingLayerDataset.h"
-
-#include <memory>
-
-using namespace arm_compute;
-using namespace arm_compute::test;
-using namespace arm_compute::test::benchmark;
-
-namespace arm_compute
-{
-namespace test
-{
-namespace benchmark
-{
-template <typename DataSet, typename TensorType, typename Accessor, typename Function, DataType dt = DataType::F32>
-class PoolingLayer : public ::benchmark::Fixture
-{
-public:
- void SetUp(::benchmark::State &state) override
- {
- profiler.add(std::make_shared<WallClockTimer>());
-
- const PoolingLayerDataObject pool_obj = *(DataSet().begin() + state.range(0));
-
- // Set batched in source and destination shapes
- const unsigned int batches = state.range(1);
- const unsigned int fixed_point_position = 4;
- TensorShape src_shape = pool_obj.src_shape;
- TensorShape dst_shape = pool_obj.dst_shape;
- src_shape.set(src_shape.num_dimensions(), batches);
- dst_shape.set(dst_shape.num_dimensions(), batches);
-
- // Create tensors
- src = create_tensor<TensorType>(src_shape, dt, 1, fixed_point_position);
- dst = create_tensor<TensorType>(dst_shape, dt, 1, fixed_point_position);
-
- // Create and configure function
- pool_layer.configure(&src, &dst, pool_obj.info);
-
- // Allocate tensors
- src.allocator()->allocate();
- dst.allocator()->allocate();
-
- // Fill tensors
- library->fill_tensor_uniform(Accessor(src), 0);
- }
-
- void TearDown(::benchmark::State &state) override
- {
- // Free allocators
- src.allocator()->free();
- dst.allocator()->free();
-
- profiler.submit(state);
- }
-
- Function pool_layer{};
- Profiler profiler{};
-
-private:
- TensorType src{};
- TensorType dst{};
-};
-} // namespace benchmark
-} // namespace test
-} // namespace arm_compute
-#endif //__ARM_COMPUTE_TEST_BENCHMARK_POOLING_LAYER_H__