aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/runtime/CL/functions/CLWinogradConvolutionLayer.cpp9
-rw-r--r--tests/validation/CL/Winograd.cpp28
2 files changed, 9 insertions, 28 deletions
diff --git a/src/runtime/CL/functions/CLWinogradConvolutionLayer.cpp b/src/runtime/CL/functions/CLWinogradConvolutionLayer.cpp
index 025a16b4fb..49753ad080 100644
--- a/src/runtime/CL/functions/CLWinogradConvolutionLayer.cpp
+++ b/src/runtime/CL/functions/CLWinogradConvolutionLayer.cpp
@@ -33,13 +33,13 @@ using namespace arm_compute;
namespace
{
-Size2D winograd_output_tile(const Size2D &input_dims, const Size2D &kernel_dims, bool enable_fast_math)
+Size2D winograd_output_tile(const Size2D &input_dims, const Size2D &kernel_dims)
{
Size2D output_tile = Size2D{};
if(kernel_dims == Size2D(3U, 3U))
{
- output_tile = ((input_dims.width <= 4 && input_dims.height <= 4) || !enable_fast_math) ? Size2D(2U, 2U) : Size2D(4U, 4U);
+ output_tile = (input_dims.width <= 4 && input_dims.height <= 4) ? Size2D(2U, 2U) : Size2D(4U, 4U);
}
else if(kernel_dims == Size2D(5U, 5U))
{
@@ -56,7 +56,6 @@ bool check_support_fast_math(const Size2D &output_tile, const Size2D &kernel_siz
std::vector<WinogradConfiguration> fast_math_winograd =
{
- WinogradConfiguration(std::pair<int, int>(4, 4), std::pair<int, int>(3, 3)),
WinogradConfiguration(std::pair<int, int>(4, 4), std::pair<int, int>(5, 5))
};
@@ -83,7 +82,7 @@ void CLWinogradConvolutionLayer::configure(ICLTensor *input, const ICLTensor *we
// Input shape, kernel size and output tile
const Size2D input_dims = Size2D(input->info()->tensor_shape()[idx_width], input->info()->tensor_shape()[idx_height]);
const Size2D kernel_size = Size2D(weights->info()->tensor_shape()[idx_width], weights->info()->tensor_shape()[idx_height]);
- const Size2D output_tile = winograd_output_tile(input_dims, kernel_size, enable_fast_math);
+ const Size2D output_tile = winograd_output_tile(input_dims, kernel_size);
// Check if the Winograd configuration requires fast math
if(!enable_fast_math)
@@ -140,7 +139,7 @@ Status CLWinogradConvolutionLayer::validate(const ITensorInfo *input, const ITen
// Input shape, kernel size and output tile
const Size2D input_dims = Size2D(input->tensor_shape()[idx_width], input->tensor_shape()[idx_height]);
const Size2D kernel_size = Size2D(weights->tensor_shape()[idx_width], weights->tensor_shape()[idx_height]);
- const Size2D output_tile = winograd_output_tile(input_dims, kernel_size, enable_fast_math);
+ const Size2D output_tile = winograd_output_tile(input_dims, kernel_size);
// Check if the Winograd configuration requires fast math
if(!enable_fast_math)
diff --git a/tests/validation/CL/Winograd.cpp b/tests/validation/CL/Winograd.cpp
index 91cb910ba1..a61dd3f8f4 100644
--- a/tests/validation/CL/Winograd.cpp
+++ b/tests/validation/CL/Winograd.cpp
@@ -52,7 +52,7 @@ namespace validation
namespace
{
constexpr AbsoluteTolerance<float> tolerance_f32(0.001f);
-constexpr AbsoluteTolerance<float> tolerance_fast_math_f32(0.1f);
+constexpr AbsoluteTolerance<float> tolerance_convolution_layer_f32(0.1f);
} // namespace
using namespace arm_compute::misc::shape_calculator;
@@ -364,23 +364,6 @@ DATA_TEST_CASE(Validate, framework::DatasetMode::ALL, zip(zip(zip(zip(zip(
// clang-format on
// *INDENT-ON*
-using CLWinogradConvolutionLayerFixture = WinogradConvolutionLayerValidationFixture<CLTensor, CLAccessor, CLWinogradConvolutionLayer, float>;
-FIXTURE_DATA_TEST_CASE(RunSmall, CLWinogradConvolutionLayerFixture, framework::DatasetMode::PRECOMMIT, combine(combine(datasets::SmallWinogradConvolutionLayer3x3Dataset(),
- framework::dataset::make("DataType", { DataType::F32 })),
- framework::dataset::make("ActivationLayerInfo", { ActivationLayerInfo() })))
-{
- // Validate output
- validate(CLAccessor(_target), _reference, tolerance_f32);
-}
-
-FIXTURE_DATA_TEST_CASE(RunLarge, CLWinogradConvolutionLayerFixture, framework::DatasetMode::NIGHTLY, combine(combine(datasets::LargeWinogradConvolutionLayer3x3Dataset(),
- framework::dataset::make("DataType", { DataType::F32 })),
- framework::dataset::make("ActivationLayerInfo", { ActivationLayerInfo() })))
-{
- // Validate output
- validate(CLAccessor(_target), _reference, tolerance_f32);
-}
-TEST_SUITE(EnableFastMath)
using CLWinogradConvolutionLayerFastMathFixture = WinogradConvolutionLayerFastMathValidationFixture<CLTensor, CLAccessor, CLWinogradConvolutionLayer, float>;
TEST_SUITE(Conv3x3)
FIXTURE_DATA_TEST_CASE(RunSmall, CLWinogradConvolutionLayerFastMathFixture, framework::DatasetMode::PRECOMMIT,
@@ -389,7 +372,7 @@ FIXTURE_DATA_TEST_CASE(RunSmall, CLWinogradConvolutionLayerFastMathFixture, fram
framework::dataset::make("ActivationLayerInfo", { ActivationLayerInfo() })))
{
// Validate output
- validate(CLAccessor(_target), _reference, tolerance_fast_math_f32);
+ validate(CLAccessor(_target), _reference, tolerance_convolution_layer_f32);
}
FIXTURE_DATA_TEST_CASE(RunLarge, CLWinogradConvolutionLayerFastMathFixture, framework::DatasetMode::NIGHTLY,
@@ -398,7 +381,7 @@ FIXTURE_DATA_TEST_CASE(RunLarge, CLWinogradConvolutionLayerFastMathFixture, fram
framework::dataset::make("ActivationLayerInfo", { ActivationLayerInfo() })))
{
// Validate output
- validate(CLAccessor(_target), _reference, tolerance_fast_math_f32);
+ validate(CLAccessor(_target), _reference, tolerance_convolution_layer_f32);
}
TEST_SUITE_END() // Conv3x3
@@ -409,7 +392,7 @@ FIXTURE_DATA_TEST_CASE(RunSmall, CLWinogradConvolutionLayerFastMathFixture, fram
framework::dataset::make("ActivationLayerInfo", { ActivationLayerInfo() })))
{
// Validate output
- validate(CLAccessor(_target), _reference, tolerance_fast_math_f32);
+ validate(CLAccessor(_target), _reference, tolerance_convolution_layer_f32);
}
FIXTURE_DATA_TEST_CASE(RunLarge, CLWinogradConvolutionLayerFastMathFixture, framework::DatasetMode::NIGHTLY,
@@ -418,11 +401,10 @@ FIXTURE_DATA_TEST_CASE(RunLarge, CLWinogradConvolutionLayerFastMathFixture, fram
framework::dataset::make("ActivationLayerInfo", { ActivationLayerInfo() })))
{
// Validate output
- validate(CLAccessor(_target), _reference, tolerance_fast_math_f32);
+ validate(CLAccessor(_target), _reference, tolerance_convolution_layer_f32);
}
TEST_SUITE_END() // Conv5x5
-TEST_SUITE_END() // EnableFastMath
TEST_SUITE_END() // ConvolutionLayer
TEST_SUITE_END() // Winograd