aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorGiorgio Arena <giorgio.arena@arm.com>2019-08-14 10:13:50 +0100
committerGiorgio Arena <giorgio.arena@arm.com>2019-08-21 13:22:14 +0000
commit205eed8cf22d221fbee6442df73be9870879c9b5 (patch)
treede1e7836edf25afe6cc6fa19a358f02adf6a780e /tests
parent400abc8291c1b3c5cfe1f151cc1b1f5004615150 (diff)
downloadComputeLibrary-205eed8cf22d221fbee6442df73be9870879c9b5.tar.gz
COMPMID-2080 Create a new kernel for CLPad with CONSTANT mode
Change-Id: Ib67bacd40c13c7784ca9f5699a235f9d106baddb Signed-off-by: Giorgio Arena <giorgio.arena@arm.com> Reviewed-on: https://review.mlplatform.org/c/1739 Tested-by: Arm Jenkins <bsgcomp@arm.com> Reviewed-by: Giuseppe Rossini <giuseppe.rossini@arm.com> Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/validation/CL/PadLayer.cpp12
-rw-r--r--tests/validation/reference/PadLayer.cpp38
2 files changed, 31 insertions, 19 deletions
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<float>, framework::DatasetMode
// Validate output
validate(CLAccessor(_target), _reference);
}
+FIXTURE_DATA_TEST_CASE(RunLarge, CLPaddingFixture<float>, 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<T> pad_layer(const SimpleTensor<T> &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<T> pad_layer(const SimpleTensor<T> &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<T> pad_layer(const SimpleTensor<T> &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<T> pad_layer(const SimpleTensor<T> &src, const PaddingList &padding
template SimpleTensor<float> pad_layer(const SimpleTensor<float> &src, const PaddingList &paddings, const PixelValue const_value = PixelValue(), const PaddingMode mode);
template SimpleTensor<half> pad_layer(const SimpleTensor<half> &src, const PaddingList &paddings, const PixelValue const_value = PixelValue(), const PaddingMode mode);
-template SimpleTensor<uint32_t> pad_layer(const SimpleTensor<uint32_t> &src, const PaddingList &paddings, const PixelValue const_value = PixelValue(), const PaddingMode mode);
template SimpleTensor<uint8_t> pad_layer(const SimpleTensor<uint8_t> &src, const PaddingList &paddings, const PixelValue const_value = PixelValue(), const PaddingMode mode);
template SimpleTensor<int8_t> pad_layer(const SimpleTensor<int8_t> &src, const PaddingList &paddings, const PixelValue const_value = PixelValue(), const PaddingMode mode);
template SimpleTensor<uint16_t> pad_layer(const SimpleTensor<uint16_t> &src, const PaddingList &paddings, const PixelValue const_value = PixelValue(), const PaddingMode mode);
template SimpleTensor<int16_t> pad_layer(const SimpleTensor<int16_t> &src, const PaddingList &paddings, const PixelValue const_value = PixelValue(), const PaddingMode mode);
+template SimpleTensor<uint32_t> pad_layer(const SimpleTensor<uint32_t> &src, const PaddingList &paddings, const PixelValue const_value = PixelValue(), const PaddingMode mode);
+template SimpleTensor<int32_t> pad_layer(const SimpleTensor<int32_t> &src, const PaddingList &paddings, const PixelValue const_value = PixelValue(), const PaddingMode mode);
} // namespace reference
} // namespace validation
} // namespace test