From 571b18a1fca4a5ed4dd24a38cb619f4de43ba3ed Mon Sep 17 00:00:00 2001 From: Sanghoon Lee Date: Fri, 22 Dec 2017 16:20:11 +0000 Subject: COMPMID-565 - Implement reference and CL/NEON validation for CustomConvolutionSeparable Change-Id: I81fae268d158aec882dbeadb5597dc9f7274d865 Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/115347 Reviewed-by: Pablo Tello Tested-by: Jenkins Reviewed-by: Anthony Barbier --- tests/validation/CL/Convolution.cpp | 74 ++++++++++++++++++++++++++++++++++++- 1 file changed, 73 insertions(+), 1 deletion(-) (limited to 'tests/validation/CL/Convolution.cpp') diff --git a/tests/validation/CL/Convolution.cpp b/tests/validation/CL/Convolution.cpp index d6405474e3..ccb0abcbd1 100644 --- a/tests/validation/CL/Convolution.cpp +++ b/tests/validation/CL/Convolution.cpp @@ -368,7 +368,79 @@ FIXTURE_DATA_TEST_CASE(RunLarge, CLConvolutionFixture, framework::Datas validate(CLAccessor(_target), _reference, shape_to_valid_region(_reference.shape(), (_border_mode == BorderMode::UNDEFINED), BorderSize(_height / 2, _width / 2))); } TEST_SUITE_END() /* Custom Convolution Rectangle */ -TEST_SUITE_END() + +TEST_SUITE(CustomConvolutionSeparable) +TEST_SUITE(CustomConvolutionSeparable5x5) +template +using CLConvolutionFixture = ConvolutionSeparableValidationFixture; + +FIXTURE_DATA_TEST_CASE(RunSmall, CLConvolutionFixture, framework::DatasetMode::PRECOMMIT, combine(combine(combine(datasets::SmallShapes(), framework::dataset::make("DataType", + DataType::U8)), + datasets::BorderModes()), + framework::dataset::make("filter_size", { 5 }))) +{ + // Validate output + validate(CLAccessor(_target), _reference, shape_to_valid_region(_reference.shape(), (_border_mode == BorderMode::UNDEFINED), BorderSize(_height / 2, _width / 2))); +} + +FIXTURE_DATA_TEST_CASE(RunLarge, CLConvolutionFixture, framework::DatasetMode::NIGHTLY, combine(combine(combine(datasets::LargeShapes(), framework::dataset::make("DataType", + DataType::U8)), + datasets::BorderModes()), + framework::dataset::make("filter_size", { 5 }))) +{ + // Validate output + validate(CLAccessor(_target), _reference, shape_to_valid_region(_reference.shape(), (_border_mode == BorderMode::UNDEFINED), BorderSize(_height / 2, _width / 2))); +} +TEST_SUITE_END() /* Custom Convolution Separable 5x5 */ + +TEST_SUITE(CustomConvolutionSeparablex7x7) +template +using CLConvolutionFixture = ConvolutionSeparableValidationFixture; + +FIXTURE_DATA_TEST_CASE(RunSmall, CLConvolutionFixture, framework::DatasetMode::PRECOMMIT, combine(combine(combine(datasets::SmallShapes(), framework::dataset::make("DataType", + DataType::U8)), + datasets::BorderModes()), + framework::dataset::make("filter_size", { 7 }))) +{ + // Validate output + validate(CLAccessor(_target), _reference, shape_to_valid_region(_reference.shape(), (_border_mode == BorderMode::UNDEFINED), BorderSize(_height / 2, _width / 2))); +} + +FIXTURE_DATA_TEST_CASE(RunLarge, CLConvolutionFixture, framework::DatasetMode::NIGHTLY, combine(combine(combine(datasets::LargeShapes(), framework::dataset::make("DataType", + DataType::U8)), + datasets::BorderModes()), + framework::dataset::make("filter_size", { 7 }))) +{ + // Validate output + validate(CLAccessor(_target), _reference, shape_to_valid_region(_reference.shape(), (_border_mode == BorderMode::UNDEFINED), BorderSize(_height / 2, _width / 2))); +} +TEST_SUITE_END() /* Custom Convolution Separable 7x7 */ + +TEST_SUITE(CustomConvolutionSeparable9x9) +template +using CLConvolutionFixture = ConvolutionSeparableValidationFixture; + +FIXTURE_DATA_TEST_CASE(RunSmall, CLConvolutionFixture, framework::DatasetMode::PRECOMMIT, combine(combine(combine(datasets::SmallShapes(), framework::dataset::make("DataType", + DataType::U8)), + datasets::BorderModes()), + framework::dataset::make("filter_size", { 9 }))) +{ + // Validate output + validate(CLAccessor(_target), _reference, shape_to_valid_region(_reference.shape(), (_border_mode == BorderMode::UNDEFINED), BorderSize(_height / 2, _width / 2))); +} + +FIXTURE_DATA_TEST_CASE(RunLarge, CLConvolutionFixture, framework::DatasetMode::NIGHTLY, combine(combine(combine(datasets::LargeShapes(), framework::dataset::make("DataType", + DataType::U8)), + datasets::BorderModes()), + framework::dataset::make("filter_size", { 9 }))) +{ + // Validate output + validate(CLAccessor(_target), _reference, shape_to_valid_region(_reference.shape(), (_border_mode == BorderMode::UNDEFINED), BorderSize(_height / 2, _width / 2))); +} +TEST_SUITE_END() /* Custom Convolution Separable 9x9 */ + +TEST_SUITE_END() /* Custom Convolution Separable */ +TEST_SUITE_END() /* Custom Convolution */ TEST_SUITE_END() } // namespace validation } // namespace test -- cgit v1.2.1