diff options
author | Moritz Pflanzer <moritz.pflanzer@arm.com> | 2017-06-21 15:54:07 +0100 |
---|---|---|
committer | Anthony Barbier <anthony.barbier@arm.com> | 2018-09-17 13:03:43 +0100 |
commit | 5b51229fad2fcf639051abb6eabfffe98eaadd06 (patch) | |
tree | edea3bbc56e91a7a4569d7ab50df1e8414ac136e /tests/validation | |
parent | 9746fd824efe1d1d9933c59376e81dcf9c7a0eca (diff) | |
download | ComputeLibrary-5b51229fad2fcf639051abb6eabfffe98eaadd06.tar.gz |
COMPMID-250: Add PaddingCalculator class
Change-Id: I0e3771f82eaf6a578f19e2602d7dcf1cb6210a2b
Reviewed-on: http://mpd-gerrit.cambridge.arm.com/78426
Reviewed-by: SiCong Li <sicong.li@arm.com>
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
Tested-by: Kaizen <jeremy.johnson+kaizengerrit@arm.com>
Diffstat (limited to 'tests/validation')
21 files changed, 53 insertions, 23 deletions
diff --git a/tests/validation/CL/BitwiseAnd.cpp b/tests/validation/CL/BitwiseAnd.cpp index 4cd64a2a99..99e7b3e353 100644 --- a/tests/validation/CL/BitwiseAnd.cpp +++ b/tests/validation/CL/BitwiseAnd.cpp @@ -24,6 +24,7 @@ #include "CL/CLAccessor.h" #include "CL/Helper.h" #include "Globals.h" +#include "PaddingCalculator.h" #include "TensorLibrary.h" #include "TypePrinter.h" #include "Utils.h" @@ -165,7 +166,7 @@ BOOST_DATA_TEST_CASE(Configuration, SmallShapes() + LargeShapes(), shape) validate(dst.info()->valid_region(), valid_region); // Validate padding - const PaddingSize padding(0, required_padding(shape.x(), 16), 0, 0); + const PaddingSize padding(0, PaddingCalculator(shape.x(), 16).required_padding(), 0, 0); validate(src1.info()->padding(), padding); validate(src2.info()->padding(), padding); validate(dst.info()->padding(), padding); diff --git a/tests/validation/CL/DepthConvert.cpp b/tests/validation/CL/DepthConvert.cpp index 7a421ecf5a..a7dbbc8ab7 100644 --- a/tests/validation/CL/DepthConvert.cpp +++ b/tests/validation/CL/DepthConvert.cpp @@ -24,6 +24,7 @@ #include "CL/CLAccessor.h" #include "CL/Helper.h" #include "Globals.h" +#include "PaddingCalculator.h" #include "TensorLibrary.h" #include "TypePrinter.h" #include "Utils.h" @@ -112,7 +113,7 @@ void compute_configure_validate(const TensorShape &shape, DataType dt_in, DataTy validate(dst.info()->valid_region(), valid_region); // Validate padding - const PaddingSize padding(0, required_padding(shape.x(), 16), 0, 0); + const PaddingSize padding(0, PaddingCalculator(shape.x(), 16).required_padding(), 0, 0); validate(src.info()->padding(), padding); validate(dst.info()->padding(), padding); } diff --git a/tests/validation/CL/Threshold.cpp b/tests/validation/CL/Threshold.cpp index a8c77ec10a..122728d352 100644 --- a/tests/validation/CL/Threshold.cpp +++ b/tests/validation/CL/Threshold.cpp @@ -24,6 +24,7 @@ #include "CL/CLAccessor.h" #include "CL/Helper.h" #include "Globals.h" +#include "PaddingCalculator.h" #include "TensorLibrary.h" #include "TypePrinter.h" #include "Utils.h" @@ -114,7 +115,7 @@ BOOST_DATA_TEST_CASE(Configuration, validate(dst.info()->valid_region(), valid_region); // Validate padding - const PaddingSize padding(0, required_padding(shape.x(), 16), 0, 0); + const PaddingSize padding(0, PaddingCalculator(shape.x(), 16).required_padding(), 0, 0); validate(src.info()->padding(), padding); validate(dst.info()->padding(), padding); } diff --git a/tests/validation/NEON/AbsoluteDifference.cpp b/tests/validation/NEON/AbsoluteDifference.cpp index b7f45d2384..22f9eac7cd 100644 --- a/tests/validation/NEON/AbsoluteDifference.cpp +++ b/tests/validation/NEON/AbsoluteDifference.cpp @@ -24,6 +24,7 @@ #include "Globals.h" #include "NEON/Helper.h" #include "NEON/NEAccessor.h" +#include "PaddingCalculator.h" #include "TensorLibrary.h" #include "TypePrinter.h" #include "Utils.h" @@ -105,7 +106,7 @@ void validate_configuration(const Tensor &src1, const Tensor &src2, Tensor &dst, validate(dst.info()->valid_region(), valid_region); // Validate padding - const PaddingSize padding(0, required_padding(shape.x(), 16), 0, 0); + const PaddingSize padding(0, PaddingCalculator(shape.x(), 16).required_padding(), 0, 0); validate(src1.info()->padding(), padding); validate(src2.info()->padding(), padding); validate(dst.info()->padding(), padding); diff --git a/tests/validation/NEON/Accumulate.cpp b/tests/validation/NEON/Accumulate.cpp index e3ea37cd99..e3b78aa444 100644 --- a/tests/validation/NEON/Accumulate.cpp +++ b/tests/validation/NEON/Accumulate.cpp @@ -24,6 +24,7 @@ #include "Globals.h" #include "NEON/Helper.h" #include "NEON/NEAccessor.h" +#include "PaddingCalculator.h" #include "TensorLibrary.h" #include "TypePrinter.h" #include "Utils.h" @@ -108,7 +109,7 @@ BOOST_DATA_TEST_CASE(Configuration, (SmallShapes() + LargeShapes()), validate(dst.info()->valid_region(), valid_region); // Validate padding - const PaddingSize padding(0, required_padding(shape.x(), 16), 0, 0); + const PaddingSize padding(0, PaddingCalculator(shape.x(), 16).required_padding(), 0, 0); validate(src.info()->padding(), padding); validate(dst.info()->padding(), padding); } diff --git a/tests/validation/NEON/AccumulateSquared.cpp b/tests/validation/NEON/AccumulateSquared.cpp index 10263a02e3..e17b15ada1 100644 --- a/tests/validation/NEON/AccumulateSquared.cpp +++ b/tests/validation/NEON/AccumulateSquared.cpp @@ -24,6 +24,7 @@ #include "Globals.h" #include "NEON/Helper.h" #include "NEON/NEAccessor.h" +#include "PaddingCalculator.h" #include "TensorLibrary.h" #include "TypePrinter.h" #include "Utils.h" @@ -109,7 +110,7 @@ BOOST_DATA_TEST_CASE(Configuration, (SmallShapes() + LargeShapes()) * boost::uni validate(dst.info()->valid_region(), valid_region); // Validate padding - const PaddingSize padding(0, required_padding(shape.x(), 16), 0, 0); + const PaddingSize padding(0, PaddingCalculator(shape.x(), 16).required_padding(), 0, 0); validate(src.info()->padding(), padding); validate(dst.info()->padding(), padding); } diff --git a/tests/validation/NEON/AccumulateWeighted.cpp b/tests/validation/NEON/AccumulateWeighted.cpp index 6d45848647..f2a4794f6c 100644 --- a/tests/validation/NEON/AccumulateWeighted.cpp +++ b/tests/validation/NEON/AccumulateWeighted.cpp @@ -24,6 +24,7 @@ #include "Globals.h" #include "NEON/Helper.h" #include "NEON/NEAccessor.h" +#include "PaddingCalculator.h" #include "TensorLibrary.h" #include "TypePrinter.h" #include "Utils.h" @@ -108,7 +109,7 @@ BOOST_DATA_TEST_CASE(Configuration, (SmallShapes() + LargeShapes()) * boost::uni validate(dst.info()->valid_region(), valid_region); // Validate padding - const PaddingSize padding(0, required_padding(shape.x(), 16), 0, 0); + const PaddingSize padding(0, PaddingCalculator(shape.x(), 16).required_padding(), 0, 0); validate(src.info()->padding(), padding); validate(dst.info()->padding(), padding); } diff --git a/tests/validation/NEON/ActivationLayer.cpp b/tests/validation/NEON/ActivationLayer.cpp index da304d8087..bf00173611 100644 --- a/tests/validation/NEON/ActivationLayer.cpp +++ b/tests/validation/NEON/ActivationLayer.cpp @@ -24,6 +24,7 @@ #include "Globals.h" #include "NEON/Helper.h" #include "NEON/NEAccessor.h" +#include "PaddingCalculator.h" #include "TensorLibrary.h" #include "TypePrinter.h" #include "Utils.h" @@ -151,7 +152,7 @@ BOOST_DATA_TEST_CASE(Configuration, (SmallShapes() + LargeShapes()) * CNNDataTyp validate(dst.info()->valid_region(), valid_region); // Validate padding - const PaddingSize padding(0, required_padding(shape.x(), 16), 0, 0); + const PaddingSize padding(0, PaddingCalculator(shape.x(), 16).required_padding(), 0, 0); validate(src.info()->padding(), padding); validate(dst.info()->padding(), padding); } diff --git a/tests/validation/NEON/ArithmeticAddition.cpp b/tests/validation/NEON/ArithmeticAddition.cpp index 5654a426fd..cf37a58b44 100644 --- a/tests/validation/NEON/ArithmeticAddition.cpp +++ b/tests/validation/NEON/ArithmeticAddition.cpp @@ -24,6 +24,7 @@ #include "Globals.h" #include "NEON/Helper.h" #include "NEON/NEAccessor.h" +#include "PaddingCalculator.h" #include "TensorLibrary.h" #include "TypePrinter.h" #include "Utils.h" @@ -106,7 +107,7 @@ void validate_configuration(const Tensor &src1, const Tensor &src2, Tensor &dst, validate(dst.info()->valid_region(), valid_region); // Validate padding - const PaddingSize padding(0, required_padding(shape.x(), 16), 0, 0); + const PaddingSize padding(0, PaddingCalculator(shape.x(), 16).required_padding(), 0, 0); validate(src1.info()->padding(), padding); validate(src2.info()->padding(), padding); validate(dst.info()->padding(), padding); diff --git a/tests/validation/NEON/ArithmeticSubtraction.cpp b/tests/validation/NEON/ArithmeticSubtraction.cpp index 9c0e9131e0..50659a1cd0 100644 --- a/tests/validation/NEON/ArithmeticSubtraction.cpp +++ b/tests/validation/NEON/ArithmeticSubtraction.cpp @@ -24,6 +24,7 @@ #include "Globals.h" #include "NEON/Helper.h" #include "NEON/NEAccessor.h" +#include "PaddingCalculator.h" #include "TensorLibrary.h" #include "TypePrinter.h" #include "Utils.h" @@ -106,7 +107,7 @@ void validate_configuration(const Tensor &src1, const Tensor &src2, Tensor &dst, validate(dst.info()->valid_region(), valid_region); // Validate padding - const PaddingSize padding(0, required_padding(shape.x(), 16), 0, 0); + const PaddingSize padding(0, PaddingCalculator(shape.x(), 16).required_padding(), 0, 0); validate(src1.info()->padding(), padding); validate(src2.info()->padding(), padding); validate(dst.info()->padding(), padding); diff --git a/tests/validation/NEON/BitwiseAnd.cpp b/tests/validation/NEON/BitwiseAnd.cpp index 8c0eda992f..eb4090fa31 100644 --- a/tests/validation/NEON/BitwiseAnd.cpp +++ b/tests/validation/NEON/BitwiseAnd.cpp @@ -24,6 +24,7 @@ #include "Globals.h" #include "NEON/Helper.h" #include "NEON/NEAccessor.h" +#include "PaddingCalculator.h" #include "TensorLibrary.h" #include "TypePrinter.h" #include "Utils.h" @@ -165,7 +166,7 @@ BOOST_DATA_TEST_CASE(Configuration, SmallShapes() + LargeShapes(), shape) validate(dst.info()->valid_region(), valid_region); // Validate padding - const PaddingSize padding(0, required_padding(shape.x(), 16), 0, 0); + const PaddingSize padding(0, PaddingCalculator(shape.x(), 16).required_padding(), 0, 0); validate(src1.info()->padding(), padding); validate(src2.info()->padding(), padding); validate(dst.info()->padding(), padding); diff --git a/tests/validation/NEON/BitwiseNot.cpp b/tests/validation/NEON/BitwiseNot.cpp index cb0a1fd0b5..590d806bd0 100644 --- a/tests/validation/NEON/BitwiseNot.cpp +++ b/tests/validation/NEON/BitwiseNot.cpp @@ -24,6 +24,7 @@ #include "Globals.h" #include "NEON/Helper.h" #include "NEON/NEAccessor.h" +#include "PaddingCalculator.h" #include "TensorLibrary.h" #include "TypePrinter.h" #include "Utils.h" @@ -106,7 +107,7 @@ BOOST_DATA_TEST_CASE(Configuration, SmallShapes() + LargeShapes(), shape) validate(dst.info()->valid_region(), valid_region); // Validate padding - const PaddingSize padding(0, required_padding(shape.x(), 16), 0, 0); + const PaddingSize padding(0, PaddingCalculator(shape.x(), 16).required_padding(), 0, 0); validate(src.info()->padding(), padding); validate(dst.info()->padding(), padding); } diff --git a/tests/validation/NEON/BitwiseOr.cpp b/tests/validation/NEON/BitwiseOr.cpp index cb853d3fd4..164b2fe299 100644 --- a/tests/validation/NEON/BitwiseOr.cpp +++ b/tests/validation/NEON/BitwiseOr.cpp @@ -24,6 +24,7 @@ #include "Globals.h" #include "NEON/Helper.h" #include "NEON/NEAccessor.h" +#include "PaddingCalculator.h" #include "TensorLibrary.h" #include "TypePrinter.h" #include "Utils.h" @@ -113,7 +114,7 @@ BOOST_DATA_TEST_CASE(Configuration, SmallShapes() + LargeShapes(), shape) validate(dst.info()->valid_region(), valid_region); // Validate padding - const PaddingSize padding(0, required_padding(shape.x(), 16), 0, 0); + const PaddingSize padding(0, PaddingCalculator(shape.x(), 16).required_padding(), 0, 0); validate(src1.info()->padding(), padding); validate(src2.info()->padding(), padding); validate(dst.info()->padding(), padding); diff --git a/tests/validation/NEON/BitwiseXor.cpp b/tests/validation/NEON/BitwiseXor.cpp index 1715b04609..eea03268d7 100644 --- a/tests/validation/NEON/BitwiseXor.cpp +++ b/tests/validation/NEON/BitwiseXor.cpp @@ -24,6 +24,7 @@ #include "Globals.h" #include "NEON/Helper.h" #include "NEON/NEAccessor.h" +#include "PaddingCalculator.h" #include "TensorLibrary.h" #include "TypePrinter.h" #include "Utils.h" @@ -113,7 +114,7 @@ BOOST_DATA_TEST_CASE(Configuration, SmallShapes() + LargeShapes(), shape) validate(dst.info()->valid_region(), valid_region); // Validate padding - const PaddingSize padding(0, required_padding(shape.x(), 16), 0, 0); + const PaddingSize padding(0, PaddingCalculator(shape.x(), 16).required_padding(), 0, 0); validate(src1.info()->padding(), padding); validate(src2.info()->padding(), padding); validate(dst.info()->padding(), padding); diff --git a/tests/validation/NEON/Box3x3.cpp b/tests/validation/NEON/Box3x3.cpp index 5da015c73a..6c9c3b29d8 100644 --- a/tests/validation/NEON/Box3x3.cpp +++ b/tests/validation/NEON/Box3x3.cpp @@ -24,6 +24,7 @@ #include "Globals.h" #include "NEON/Helper.h" #include "NEON/NEAccessor.h" +#include "PaddingCalculator.h" #include "TensorLibrary.h" #include "TypePrinter.h" #include "Utils.h" @@ -108,8 +109,16 @@ BOOST_DATA_TEST_CASE(Configuration, SmallShapes() + LargeShapes(), shape) validate(dst.info()->valid_region(), dst_valid_region); // Validate padding - const PaddingSize read_padding(0, required_padding_undefined_border_read(shape.x(), 16, 8), 0, 0); - const PaddingSize write_padding(0, required_padding_undefined_border_write(shape.x(), 8, 1), 0, 0); + PaddingCalculator calculator(shape.x(), 8); + calculator.set_border_size(1); + + const PaddingSize write_padding(0, calculator.required_padding(), 0, 0); + + calculator.set_accessed_elements(16); + calculator.set_access_offset(-1); + + const PaddingSize read_padding(0, calculator.required_padding(), 0, 0); + validate(src.info()->padding(), read_padding); validate(dst.info()->padding(), write_padding); } diff --git a/tests/validation/NEON/DepthConvert.cpp b/tests/validation/NEON/DepthConvert.cpp index ec0bb7ccc5..cabbf0e32d 100644 --- a/tests/validation/NEON/DepthConvert.cpp +++ b/tests/validation/NEON/DepthConvert.cpp @@ -24,6 +24,7 @@ #include "Globals.h" #include "NEON/Helper.h" #include "NEON/NEAccessor.h" +#include "PaddingCalculator.h" #include "TensorLibrary.h" #include "TypePrinter.h" #include "Utils.h" @@ -115,7 +116,7 @@ void compute_configure_validate(const TensorShape &shape, DataType dt_in, DataTy validate(dst.info()->valid_region(), valid_region); // Validate padding - const PaddingSize padding(0, required_padding(shape.x(), 16), 0, 0); + const PaddingSize padding(0, PaddingCalculator(shape.x(), 16).required_padding(), 0, 0); validate(src.info()->padding(), padding); validate(dst.info()->padding(), padding); } diff --git a/tests/validation/NEON/IntegralImage.cpp b/tests/validation/NEON/IntegralImage.cpp index f94af430d1..59acbff56b 100644 --- a/tests/validation/NEON/IntegralImage.cpp +++ b/tests/validation/NEON/IntegralImage.cpp @@ -25,6 +25,7 @@ #include "Globals.h" #include "NEON/Helper.h" #include "NEON/NEAccessor.h" +#include "PaddingCalculator.h" #include "TensorLibrary.h" #include "TypePrinter.h" #include "Utils.h" @@ -107,8 +108,9 @@ BOOST_DATA_TEST_CASE(Configuration, SmallShapes() + LargeShapes(), shape) validate(dst.info()->valid_region(), valid_region); // Validate padding - const PaddingSize src_padding(0, required_padding(shape.x(), 16), 0, 0); - const PaddingSize dst_padding(1, required_padding(shape.x(), 16), 0, 1); + PaddingCalculator calculator(shape.x(), 16); + const PaddingSize src_padding(0, calculator.required_padding(), 0, 0); + const PaddingSize dst_padding(1, calculator.required_padding(), 0, 1); validate(src.info()->padding(), src_padding); validate(dst.info()->padding(), dst_padding); diff --git a/tests/validation/NEON/MeanStdDev.cpp b/tests/validation/NEON/MeanStdDev.cpp index 79a30f62b2..4cb04455ec 100644 --- a/tests/validation/NEON/MeanStdDev.cpp +++ b/tests/validation/NEON/MeanStdDev.cpp @@ -24,6 +24,7 @@ #include "Globals.h" #include "NEON/Helper.h" #include "NEON/NEAccessor.h" +#include "PaddingCalculator.h" #include "TensorLibrary.h" #include "TypePrinter.h" #include "Utils.h" @@ -108,7 +109,7 @@ BOOST_DATA_TEST_CASE(Configuration, Small2DShapes() + Large2DShapes(), shape) validate(src.info()->valid_region(), valid_region); // Validate padding - const PaddingSize padding(0, required_padding(shape.x(), 16), 0, 0); + const PaddingSize padding(0, PaddingCalculator(shape.x(), 16).required_padding(), 0, 0); validate(src.info()->padding(), padding); } diff --git a/tests/validation/NEON/PixelWiseMultiplication.cpp b/tests/validation/NEON/PixelWiseMultiplication.cpp index c6c2792126..b16e7fe020 100644 --- a/tests/validation/NEON/PixelWiseMultiplication.cpp +++ b/tests/validation/NEON/PixelWiseMultiplication.cpp @@ -24,6 +24,7 @@ #include "Globals.h" #include "NEON/Helper.h" #include "NEON/NEAccessor.h" +#include "PaddingCalculator.h" #include "TensorLibrary.h" #include "TypePrinter.h" #include "Utils.h" @@ -110,7 +111,7 @@ void validate_configuration(const Tensor &src1, const Tensor &src2, Tensor &dst, validate(dst.info()->valid_region(), valid_region); // Validate padding - const PaddingSize padding(0, required_padding(shape.x(), 16), 0, 0); + const PaddingSize padding(0, PaddingCalculator(shape.x(), 16).required_padding(), 0, 0); validate(src1.info()->padding(), padding); validate(src2.info()->padding(), padding); validate(dst.info()->padding(), padding); diff --git a/tests/validation/NEON/SoftmaxLayer.cpp b/tests/validation/NEON/SoftmaxLayer.cpp index f5c7a21abd..b04b0fe86a 100644 --- a/tests/validation/NEON/SoftmaxLayer.cpp +++ b/tests/validation/NEON/SoftmaxLayer.cpp @@ -24,6 +24,7 @@ #include "Globals.h" #include "NEON/Helper.h" #include "NEON/NEAccessor.h" +#include "PaddingCalculator.h" #include "TensorLibrary.h" #include "TypePrinter.h" #include "Utils.h" @@ -127,7 +128,7 @@ BOOST_DATA_TEST_CASE(Configuration, (SmallShapes() + LargeShapes()) * CNNDataTyp // Validate padding int step = 16 / arm_compute::data_size_from_type(dt); - const PaddingSize padding(0, required_padding(shape.x(), step), 0, 0); + const PaddingSize padding(0, PaddingCalculator(shape.x(), step).required_padding(), 0, 0); validate(src.info()->padding(), padding); validate(dst.info()->padding(), padding); } diff --git a/tests/validation/NEON/Threshold.cpp b/tests/validation/NEON/Threshold.cpp index 6ac6f3d26b..b2a289f3b6 100644 --- a/tests/validation/NEON/Threshold.cpp +++ b/tests/validation/NEON/Threshold.cpp @@ -24,6 +24,7 @@ #include "Globals.h" #include "NEON/Helper.h" #include "NEON/NEAccessor.h" +#include "PaddingCalculator.h" #include "TensorLibrary.h" #include "TypePrinter.h" #include "Utils.h" @@ -114,7 +115,7 @@ BOOST_DATA_TEST_CASE(Configuration, validate(dst.info()->valid_region(), valid_region); // Validate padding - const PaddingSize padding(0, required_padding(shape.x(), 16), 0, 0); + const PaddingSize padding(0, PaddingCalculator(shape.x(), 16).required_padding(), 0, 0); validate(src1.info()->padding(), padding); validate(dst.info()->padding(), padding); } |