From eb5696d99d85e1d402188151e021bc4b14f93969 Mon Sep 17 00:00:00 2001 From: Anitha Raj Date: Fri, 14 Jul 2023 11:19:34 +0100 Subject: Optimize CpuReshapeKernel Resolves COMPMID-5279 Change-Id: Id9b007eed62c200702bbfcc83b94dab7b5de1714 Signed-off-by: Anitha Raj Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/9962 Comments-Addressed: Arm Jenkins Tested-by: Arm Jenkins Reviewed-by: SiCong Li Reviewed-by: Viet-Hoa Do Benchmark: Arm Jenkins --- tests/validation/fixtures/ReshapeLayerFixture.h | 34 ++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 4 deletions(-) (limited to 'tests/validation/fixtures/ReshapeLayerFixture.h') diff --git a/tests/validation/fixtures/ReshapeLayerFixture.h b/tests/validation/fixtures/ReshapeLayerFixture.h index b4c3a9fa1b..8182350f5a 100644 --- a/tests/validation/fixtures/ReshapeLayerFixture.h +++ b/tests/validation/fixtures/ReshapeLayerFixture.h @@ -31,6 +31,7 @@ #include "tests/IAccessor.h" #include "tests/framework/Asserts.h" #include "tests/framework/Fixture.h" +#include "tests/validation/Helpers.h" #include "tests/validation/reference/ReshapeLayer.h" namespace arm_compute @@ -41,12 +42,12 @@ namespace validation { /** [ReshapeLayer fixture] **/ template -class ReshapeLayerValidationFixture : public framework::Fixture +class ReshapeLayerGenericValidationFixture : public framework::Fixture { public: - void setup(TensorShape input_shape, TensorShape output_shape, DataType data_type) + void setup(TensorShape input_shape, TensorShape output_shape, DataType data_type, bool add_x_padding = false) { - _target = compute_target(input_shape, output_shape, data_type); + _target = compute_target(input_shape, output_shape, data_type, add_x_padding); _reference = compute_reference(input_shape, output_shape, data_type); } @@ -57,7 +58,7 @@ protected: library->fill_tensor_uniform(tensor, i); } - TensorType compute_target(const TensorShape &input_shape, const TensorShape &output_shape, DataType data_type) + TensorType compute_target(const TensorShape &input_shape, const TensorShape &output_shape, DataType data_type, bool add_x_padding = false) { // Check if indeed the input shape can be reshape to the output one ARM_COMPUTE_ASSERT(input_shape.total_size() == output_shape.total_size()); @@ -74,6 +75,12 @@ protected: ARM_COMPUTE_ASSERT(src.info()->is_resizable()); ARM_COMPUTE_ASSERT(dst.info()->is_resizable()); + if(add_x_padding) + { + // Add random padding in x dimension + add_padding_x({ &src, &dst }); + } + // Allocate tensors src.allocator()->allocate(); dst.allocator()->allocate(); @@ -104,6 +111,25 @@ protected: TensorType _target{}; SimpleTensor _reference{}; }; + +template +class ReshapeLayerValidationFixture : public ReshapeLayerGenericValidationFixture +{ +public: + void setup(TensorShape input_shape, TensorShape output_shape, DataType data_type) + { + ReshapeLayerGenericValidationFixture::setup(input_shape, output_shape, data_type); + } +}; +template +class ReshapeLayerPaddedValidationFixture : public ReshapeLayerGenericValidationFixture +{ +public: + void setup(TensorShape input_shape, TensorShape output_shape, DataType data_type) + { + ReshapeLayerGenericValidationFixture::setup(input_shape, output_shape, data_type, true /* add_x_padding */); + } +}; /** [ReshapeLayer fixture] **/ } // namespace validation } // namespace test -- cgit v1.2.1