diff options
author | Gian Marco Iodice <gianmarco.iodice@arm.com> | 2020-10-19 12:49:44 +0100 |
---|---|---|
committer | Gian Marco Iodice <gianmarco.iodice@arm.com> | 2020-10-19 15:36:57 +0000 |
commit | bc6c374f5bc6c17c3e9b5462f5f8c3c5a5e8a13e (patch) | |
tree | 054f99e6d8e6c266e2bfd8786b8d07ee2ef60587 /tests/validation/CL/Winograd.cpp | |
parent | 7333e1f10f5da9dc67b511d326121a843771a107 (diff) | |
download | ComputeLibrary-bc6c374f5bc6c17c3e9b5462f5f8c3c5a5e8a13e.tar.gz |
COMPMID-3740: Remove OpenCL padding: CLWinogradInputTransformKernel
- Remove padding requirement from the OpenCL kernels
- Extend test to validate zero padding requirement
Change-Id: I1ddf04eba783721858792efb08a2c97f11f7297e
Signed-off-by: Gian Marco Iodice <gianmarco.iodice@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4206
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'tests/validation/CL/Winograd.cpp')
-rw-r--r-- | tests/validation/CL/Winograd.cpp | 39 |
1 files changed, 38 insertions, 1 deletions
diff --git a/tests/validation/CL/Winograd.cpp b/tests/validation/CL/Winograd.cpp index 771acf9461..d1522f3e7f 100644 --- a/tests/validation/CL/Winograd.cpp +++ b/tests/validation/CL/Winograd.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018-2019 Arm Limited. + * Copyright (c) 2018-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -182,6 +182,29 @@ const auto ActivationFunctionsSmallDataset = framework::dataset::make("Activatio ActivationLayerInfo(ActivationLayerInfo::ActivationFunction::LEAKY_RELU), ActivationLayerInfo(ActivationLayerInfo::ActivationFunction::SOFT_RELU) }); + +/** Zero padding test */ +bool validate_zero_padding(unsigned int width, unsigned height) +{ + TensorShape shape(width, height, 11, 1); + + WinogradInfo winograd_info = WinogradInfo(Size2D(4U, 4U), Size2D(5U, 5U), Size2D(width, height), PadStrideInfo(), DataLayout::NHWC); + + // Create tensors + CLTensor src = create_tensor<CLTensor>(shape, DataType::F32, 1, QuantizationInfo(), DataLayout::NHWC); + CLTensor dst; + + src.info()->set_quantization_info(QuantizationInfo(1.f / 256.f, 0)); + dst.info()->set_quantization_info(QuantizationInfo(1.f / 256.f, 0)); + + CLWinogradInputTransform input_transform; + + input_transform.configure(&src, &dst, winograd_info); + + // Padding can be added along rhs and bias's X dimension + return src.info()->padding().empty() && dst.info()->padding().empty(); +} + } // namespace using namespace arm_compute::misc::shape_calculator; @@ -190,6 +213,20 @@ TEST_SUITE(CL) TEST_SUITE(Winograd) TEST_SUITE(InputTransform) + +/** Validate zero padding tests + * + * A series of validation tests to check that no padding is added + */ +DATA_TEST_CASE(ValidateZeroPadding, framework::DatasetMode::ALL, zip( +framework::dataset::make("Width", { 32U, 37U, 12U, 1U }), +framework::dataset::make("Height", { 13U, 27U, 19U, 1U })), +width, height) +{ + bool status = validate_zero_padding(width, height); + ARM_COMPUTE_EXPECT(status, framework::LogLevel::ERRORS); +} + DATA_TEST_CASE(Validate, framework::DatasetMode::ALL, zip(zip(zip( framework::dataset::make("InputInfo",{ TensorInfo(TensorShape(53U, 21U, 5U, 3U), 1, DataType::F16), // F16 not supported |