From 205eed8cf22d221fbee6442df73be9870879c9b5 Mon Sep 17 00:00:00 2001 From: Giorgio Arena Date: Wed, 14 Aug 2019 10:13:50 +0100 Subject: COMPMID-2080 Create a new kernel for CLPad with CONSTANT mode Change-Id: Ib67bacd40c13c7784ca9f5699a235f9d106baddb Signed-off-by: Giorgio Arena Reviewed-on: https://review.mlplatform.org/c/1739 Tested-by: Arm Jenkins Reviewed-by: Giuseppe Rossini Comments-Addressed: Arm Jenkins --- tests/validation/CL/PadLayer.cpp | 12 +++++++++-- tests/validation/reference/PadLayer.cpp | 38 ++++++++++++++++++--------------- 2 files changed, 31 insertions(+), 19 deletions(-) (limited to 'tests') diff --git a/tests/validation/CL/PadLayer.cpp b/tests/validation/CL/PadLayer.cpp index 2ad29fc0e5..518f541b8b 100644 --- a/tests/validation/CL/PadLayer.cpp +++ b/tests/validation/CL/PadLayer.cpp @@ -42,8 +42,9 @@ namespace { const auto PaddingSizesDataset = framework::dataset::make("PaddingSize", { PaddingList{ { 0, 0 } }, PaddingList{ { 1, 1 } }, - PaddingList{ { 1, 1 }, { 2, 2 } }, - PaddingList{ { 1, 1 }, { 1, 1 }, { 1, 1 } }, + PaddingList{ { 33, 33 } }, + PaddingList{ { 1, 1 }, { 5, 5 } }, + PaddingList{ { 1, 1 }, { 1, 1 }, { 5, 5 } }, PaddingList{ { 0, 0 }, { 1, 0 }, { 0, 1 } }, PaddingList{ { 0, 0 }, { 0, 0 }, { 0, 0 } } }); @@ -111,6 +112,13 @@ FIXTURE_DATA_TEST_CASE(RunSmall, CLPaddingFixture, framework::DatasetMode // Validate output validate(CLAccessor(_target), _reference); } +FIXTURE_DATA_TEST_CASE(RunLarge, CLPaddingFixture, framework::DatasetMode::NIGHTLY, + combine(combine(combine(datasets::Large3DShapes(), framework::dataset::make("DataType", { DataType::F32 })), PaddingSizesDataset), + framework::dataset::make("PaddingMode", { PaddingMode::CONSTANT, PaddingMode::REFLECT, PaddingMode::SYMMETRIC }))) +{ + // Validate output + validate(CLAccessor(_target), _reference); +} TEST_SUITE_END() // FP32 TEST_SUITE(FP16) diff --git a/tests/validation/reference/PadLayer.cpp b/tests/validation/reference/PadLayer.cpp index d072bc529b..700e8f8ccf 100644 --- a/tests/validation/reference/PadLayer.cpp +++ b/tests/validation/reference/PadLayer.cpp @@ -115,11 +115,11 @@ SimpleTensor pad_layer(const SimpleTensor &src, const PaddingList &padding case PaddingMode::REFLECT: { const Coordinates orig_coords{ orig_coord_reflect(0), - orig_coord_reflect(1), - orig_coord_reflect(2), - orig_coord_reflect(3), - orig_coord_reflect(4), - orig_coord_reflect(5) }; + orig_coord_reflect(1), + orig_coord_reflect(2), + orig_coord_reflect(3), + orig_coord_reflect(4), + orig_coord_reflect(5) }; const size_t idx_src = coord2index(orig_shape, orig_coords); dst[idx] = src[idx_src]; @@ -128,11 +128,11 @@ SimpleTensor pad_layer(const SimpleTensor &src, const PaddingList &padding case PaddingMode::SYMMETRIC: { const Coordinates orig_coords{ orig_coord_symm(0), - orig_coord_symm(1), - orig_coord_symm(2), - orig_coord_symm(3), - orig_coord_symm(4), - orig_coord_symm(5) }; + orig_coord_symm(1), + orig_coord_symm(2), + orig_coord_symm(3), + orig_coord_symm(4), + orig_coord_symm(5) }; const size_t idx_src = coord2index(orig_shape, orig_coords); dst[idx] = src[idx_src]; @@ -147,12 +147,15 @@ SimpleTensor pad_layer(const SimpleTensor &src, const PaddingList &padding { // If the tuple[i,j,k,l,m] is not in the padding area, then copy the input into the output - const Coordinates orig_coords{ i - paddings_extended[0].first, - j - paddings_extended[1].first, - k - paddings_extended[2].first, - l - paddings_extended[3].first, - m - paddings_extended[4].first, - n - paddings_extended[5].first }; + const Coordinates orig_coords + { + i - paddings_extended[0].first, + j - paddings_extended[1].first, + k - paddings_extended[2].first, + l - paddings_extended[3].first, + m - paddings_extended[4].first, + n - paddings_extended[5].first + }; const size_t idx_src = coord2index(orig_shape, orig_coords); dst[idx] = src[idx_src]; @@ -164,11 +167,12 @@ SimpleTensor pad_layer(const SimpleTensor &src, const PaddingList &padding template SimpleTensor pad_layer(const SimpleTensor &src, const PaddingList &paddings, const PixelValue const_value = PixelValue(), const PaddingMode mode); template SimpleTensor pad_layer(const SimpleTensor &src, const PaddingList &paddings, const PixelValue const_value = PixelValue(), const PaddingMode mode); -template SimpleTensor pad_layer(const SimpleTensor &src, const PaddingList &paddings, const PixelValue const_value = PixelValue(), const PaddingMode mode); template SimpleTensor pad_layer(const SimpleTensor &src, const PaddingList &paddings, const PixelValue const_value = PixelValue(), const PaddingMode mode); template SimpleTensor pad_layer(const SimpleTensor &src, const PaddingList &paddings, const PixelValue const_value = PixelValue(), const PaddingMode mode); template SimpleTensor pad_layer(const SimpleTensor &src, const PaddingList &paddings, const PixelValue const_value = PixelValue(), const PaddingMode mode); template SimpleTensor pad_layer(const SimpleTensor &src, const PaddingList &paddings, const PixelValue const_value = PixelValue(), const PaddingMode mode); +template SimpleTensor pad_layer(const SimpleTensor &src, const PaddingList &paddings, const PixelValue const_value = PixelValue(), const PaddingMode mode); +template SimpleTensor pad_layer(const SimpleTensor &src, const PaddingList &paddings, const PixelValue const_value = PixelValue(), const PaddingMode mode); } // namespace reference } // namespace validation } // namespace test -- cgit v1.2.1