From 46a49a0a8206f0efa7afd514940e180a88ffd732 Mon Sep 17 00:00:00 2001 From: giuros01 Date: Mon, 1 Apr 2019 13:50:22 +0100 Subject: COMPMID-1635: Optimize CLDeconvolutionLayer - Part III Change-Id: Id2661e093a669ef3eaf2a5116cd278a80c1d5a89 Signed-off-by: giuros01 Reviewed-on: https://review.mlplatform.org/c/935 Reviewed-by: Gian Marco Iodice Comments-Addressed: Gian Marco Iodice Reviewed-by: Isabella Gottardi Comments-Addressed: Isabella Gottardi Tested-by: Isabella Gottardi Tested-by: Arm Jenkins --- tests/validation/CL/DeconvolutionLayer.cpp | 40 +++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) (limited to 'tests') diff --git a/tests/validation/CL/DeconvolutionLayer.cpp b/tests/validation/CL/DeconvolutionLayer.cpp index 958a0e438a..60be0b68c3 100644 --- a/tests/validation/CL/DeconvolutionLayer.cpp +++ b/tests/validation/CL/DeconvolutionLayer.cpp @@ -58,10 +58,13 @@ const auto data3x3 = datasets::SmallDeconvolutionShapes() * framework::dataset:: const auto data3x3_precommit = datasets::SmallDeconvolutionShapes() * framework::dataset::make("StrideX", 1, 2) * framework::dataset::make("StrideY", 1, 2) * framework::dataset::make("PadX", 0, 2) * framework::dataset::make("PadY", 0, 2) * framework::dataset::make("NumKernels", { 3 }); +const auto data2x2_precommit = datasets::SmallDeconvolutionShapes() * framework::dataset::make("StrideX", 2) * framework::dataset::make("StrideY", 2) * framework::dataset::make("PadX", 1) + * framework::dataset::make("PadY", 1) * framework::dataset::make("NumKernels", { 3 }); + const auto data1x1 = datasets::SmallDeconvolutionShapes() * framework::dataset::make("StrideX", 1, 4) * framework::dataset::make("StrideY", 1, 4) * framework::dataset::make("PadX", 0, 1) * framework::dataset::make("PadY", 0, 1) * framework::dataset::make("NumKernels", { 3 }); -const auto data_layouts_dataset = framework::dataset::make("DataLayout", { DataLayout::NCHW }); +const auto data_layouts_dataset = framework::dataset::make("DataLayout", { DataLayout::NCHW, DataLayout::NHWC }); } // namespace TEST_SUITE(CL) @@ -134,6 +137,9 @@ using CLDeconvolutionLayerFixture4x4 = DeconvolutionValidationFixture using CLDeconvolutionLayerFixture3x3 = DeconvolutionValidationFixture; +template +using CLDeconvolutionLayerFixture2x2 = DeconvolutionValidationFixture; + template using CLDeconvolutionLayerFixture1x1 = DeconvolutionValidationFixture; @@ -164,6 +170,15 @@ FIXTURE_DATA_TEST_CASE(RunLarge, CLDeconvolutionLayerFixture3x3, framewor } TEST_SUITE_END() // W3x3 +TEST_SUITE(W2x2) +FIXTURE_DATA_TEST_CASE(RunSmall, CLDeconvolutionLayerFixture2x2, framework::DatasetMode::PRECOMMIT, combine(combine(data2x2_precommit, framework::dataset::make("DataType", DataType::F32)), + data_layouts_dataset)) +{ + // Validate output + validate(CLAccessor(_target), _reference, tolerance_fp32); +} +TEST_SUITE_END() // W2x2 + TEST_SUITE(W1x1) FIXTURE_DATA_TEST_CASE(Run, CLDeconvolutionLayerFixture1x1, framework::DatasetMode::NIGHTLY, combine(combine(data1x1, framework::dataset::make("DataType", DataType::F32)), data_layouts_dataset)) @@ -200,6 +215,15 @@ FIXTURE_DATA_TEST_CASE(RunLarge, CLDeconvolutionLayerFixture3x3, framework } TEST_SUITE_END() // W3x3 +TEST_SUITE(W2x2) +FIXTURE_DATA_TEST_CASE(RunSmall, CLDeconvolutionLayerFixture2x2, framework::DatasetMode::PRECOMMIT, combine(combine(data2x2_precommit, framework::dataset::make("DataType", DataType::F16)), + data_layouts_dataset)) +{ + // Validate output + validate(CLAccessor(_target), _reference, tolerance_fp32); +} +TEST_SUITE_END() // W2x2 + TEST_SUITE(W1x1) FIXTURE_DATA_TEST_CASE(Run, CLDeconvolutionLayerFixture1x1, framework::DatasetMode::NIGHTLY, combine(combine(data1x1, framework::dataset::make("DataType", DataType::F16)), data_layouts_dataset)) { @@ -217,6 +241,9 @@ using CLDeconvolutionLayerQuantizedFixture4x4 = DeconvolutionValidationQuantized template using CLDeconvolutionLayerQuantizedFixture3x3 = DeconvolutionValidationQuantizedFixture; +template +using CLDeconvolutionLayerQuantizedFixture2x2 = DeconvolutionValidationQuantizedFixture; + template using CLDeconvolutionLayerQuantizedFixture1x1 = DeconvolutionValidationQuantizedFixture; @@ -253,6 +280,17 @@ FIXTURE_DATA_TEST_CASE(RunLarge, CLDeconvolutionLayerQuantizedFixture3x3, framework::DatasetMode::PRECOMMIT, combine(combine(combine(data2x2_precommit, framework::dataset::make("DataType", + DataType::QASYMM8)), + data_layouts_dataset), + framework::dataset::make("QuantizationInfo", QuantizationInfo(2.f / 255.f, 0)))) +{ + // Validate output + validate(CLAccessor(_target), _reference, tolerance_fp32); +} +TEST_SUITE_END() // W2x2 + TEST_SUITE(W1x1) FIXTURE_DATA_TEST_CASE(Run, CLDeconvolutionLayerQuantizedFixture1x1, framework::DatasetMode::NIGHTLY, combine(combine(combine(data1x1, framework::dataset::make("DataType", DataType::QASYMM8)), -- cgit v1.2.1