From d844c08861706803ea7bebe64450e5feaa9b8179 Mon Sep 17 00:00:00 2001 From: Manuel Bottini Date: Wed, 14 Jul 2021 12:58:54 +0100 Subject: Port CLIm2ColKernel to ClIm2ColKernel Resolves: COMPMID-4516 Change-Id: I6a6db66797fa801dfe1238fceca413277241d2ec Signed-off-by: Manuel Bottini Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/5946 Comments-Addressed: Arm Jenkins Reviewed-by: Michele Di Giorgio Tested-by: Arm Jenkins --- tests/validation/fixtures/Im2ColFixture.h | 86 ------------------------------- 1 file changed, 86 deletions(-) (limited to 'tests/validation/fixtures') diff --git a/tests/validation/fixtures/Im2ColFixture.h b/tests/validation/fixtures/Im2ColFixture.h index 38970116f6..a0732c3eb3 100644 --- a/tests/validation/fixtures/Im2ColFixture.h +++ b/tests/validation/fixtures/Im2ColFixture.h @@ -134,92 +134,6 @@ protected: bool _has_bias{}; unsigned int _num_groups{}; }; - -template -class Im2ColValidationFixture : public framework::Fixture -{ -public: - template - void setup(TensorShape input_shape, DataType data_type, const Size2D &kernel_dims, const PadStrideInfo &conv_info, const QuantizationInfo &quant_info, const DataLayout &data_layout, - unsigned int num_groups) - { - _kernel_dims = kernel_dims; - _conv_info = conv_info; - _quant_info = quant_info; - _data_layout = data_layout; - _has_bias = data_type != DataType::QASYMM8; - _num_groups = num_groups; - - if(_data_layout == DataLayout::NHWC) - { - permute(input_shape, PermutationVector(2U, 0U, 1U)); - } - - TensorInfo input_info(input_shape, 1, data_type); - input_info.set_data_layout(_data_layout); - - const TensorShape output_shape = compute_im2col_conv_shape(&input_info, _kernel_dims, _conv_info, _has_bias, Size2D(1U, 1U), batch_size_on_z && _num_groups == 1, _num_groups); - _target = compute_target(input_shape, output_shape, data_type); - - compute_reference(input_shape, output_shape, data_type); - } - -protected: - template - void fill(U &&tensor) - { - library->fill_tensor_uniform(tensor, 0); - } - - TensorType compute_target(const TensorShape &input_shape, const TensorShape &output_shape, DataType data_type) - { - // Create tensors - TensorType src = create_tensor(input_shape, data_type, 1, _quant_info, _data_layout); - TensorType dst = create_tensor(output_shape, data_type, 1, _quant_info); - - // Create and configure function - FunctionType im2col_func; - im2col_func.configure(&src, &dst, _kernel_dims, _conv_info, _has_bias, Size2D(1U, 1U), _num_groups); - - ARM_COMPUTE_ASSERT(src.info()->is_resizable()); - ARM_COMPUTE_ASSERT(dst.info()->is_resizable()); - - // Allocate tensors - src.allocator()->allocate(); - dst.allocator()->allocate(); - - ARM_COMPUTE_ASSERT(!src.info()->is_resizable()); - ARM_COMPUTE_ASSERT(!dst.info()->is_resizable()); - - // Fill tensors - fill(AccessorType(src)); - - // Compute function - im2col_func.run(); - - return dst; - } - - void compute_reference(const TensorShape &input_shape, const TensorShape &output_shape, DataType data_type) - { - // Create reference - SimpleTensor src{ input_shape, data_type, 1, _quant_info, _data_layout }; - _reference = SimpleTensor(output_shape, data_type, 1, _quant_info, DataLayout::NCHW); - - // Fill reference - fill(src); - - reference::im2col(src, _reference, _kernel_dims, _conv_info, _has_bias, _num_groups); - } - TensorType _target{}; - SimpleTensor _reference{}; - Size2D _kernel_dims{}; - PadStrideInfo _conv_info{}; - DataLayout _data_layout{}; - QuantizationInfo _quant_info{}; - bool _has_bias{}; - unsigned int _num_groups{}; -}; } // namespace validation } // namespace test } // namespace arm_compute -- cgit v1.2.1