aboutsummaryrefslogtreecommitdiff
path: root/tests/validation
diff options
context:
space:
mode:
authorGeorgios Pinitas <georgios.pinitas@arm.com>2018-08-30 16:02:11 +0100
committerAnthony Barbier <anthony.barbier@arm.com>2018-11-02 16:54:54 +0000
commit09d3451b4caf8d5e0e7cf2c6097e50a1f815d027 (patch)
tree8e9b8e9882d0120c85ff08473dbf3721b7602677 /tests/validation
parentb57be0da77370e5e71fe82dfa281f528279e8127 (diff)
downloadComputeLibrary-09d3451b4caf8d5e0e7cf2c6097e50a1f815d027.tar.gz
COMPMID-1548: NEON FP16 mismatches on CannyEdge and HarrisCorners.
Removes FP16 from HarrisCorners and CannyEdge. Change-Id: I5e4f9205fdbe4de85f04f55ecf1568c837e56cc0 Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/146247 Tested-by: Jenkins <bsgcomp@arm.com> Reviewed-by: Michele DiGiorgio <michele.digiorgio@arm.com>
Diffstat (limited to 'tests/validation')
-rw-r--r--tests/validation/CL/CannyEdge.cpp9
-rw-r--r--tests/validation/CL/HarrisCorners.cpp10
-rw-r--r--tests/validation/NEON/CannyEdge.cpp14
-rw-r--r--tests/validation/NEON/HarrisCorners.cpp14
-rw-r--r--tests/validation/fixtures/CannyEdgeFixture.h23
-rw-r--r--tests/validation/fixtures/HarrisCornersFixture.h25
-rw-r--r--tests/validation/reference/CannyEdgeDetector.cpp6
-rw-r--r--tests/validation/reference/CannyEdgeDetector.h3
-rw-r--r--tests/validation/reference/HarrisCornerDetector.h7
9 files changed, 29 insertions, 82 deletions
diff --git a/tests/validation/CL/CannyEdge.cpp b/tests/validation/CL/CannyEdge.cpp
index 7aa178adba..d130aa4bd1 100644
--- a/tests/validation/CL/CannyEdge.cpp
+++ b/tests/validation/CL/CannyEdge.cpp
@@ -48,21 +48,16 @@ namespace
/* Allowed ratio of mismatches between target and reference (1.0 = 100%) */
const float allowed_mismatch_ratio = 0.1f;
-const auto use_fp16 = framework::dataset::make("UseFP16", { false });
-
const auto data = combine(framework::dataset::make("GradientSize", { 3, 5, 7 }),
- combine(framework::dataset::make("Normalization", { MagnitudeType::L1NORM, MagnitudeType::L2NORM }), combine(datasets::BorderModes(), use_fp16)));
+ combine(framework::dataset::make("Normalization", { MagnitudeType::L1NORM, MagnitudeType::L2NORM }), datasets::BorderModes()));
} // namespace
TEST_SUITE(CL)
TEST_SUITE(CannyEdge)
DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(combine(concat(datasets::Small2DShapes(), datasets::Large2DShapes()), data), framework::dataset::make("Format", Format::U8)),
- shape, gradient_size, normalization, border_mode, use_fp16, format)
+ shape, gradient_size, normalization, border_mode, format)
{
- ARM_COMPUTE_UNUSED(use_fp16);
- ARM_COMPUTE_ERROR_ON(use_fp16);
-
CannyEdgeParameters params = canny_edge_parameters();
// Convert normalisation type to integer
const auto norm_type = static_cast<int>(normalization) + 1;
diff --git a/tests/validation/CL/HarrisCorners.cpp b/tests/validation/CL/HarrisCorners.cpp
index 890367c166..ccc9293fef 100644
--- a/tests/validation/CL/HarrisCorners.cpp
+++ b/tests/validation/CL/HarrisCorners.cpp
@@ -46,21 +46,15 @@ namespace validation
{
namespace
{
-const auto use_fp16 = framework::dataset::make("UseFP16",
-{ false });
-
-const auto data = combine(framework::dataset::make("GradientSize", { 3, 5, 7 }), combine(framework::dataset::make("BlockSize", { 3, 5, 7 }), combine(datasets::BorderModes(), use_fp16)));
+const auto data = combine(framework::dataset::make("GradientSize", { 3, 5, 7 }), combine(framework::dataset::make("BlockSize", { 3, 5, 7 }), datasets::BorderModes()));
} // namespace
TEST_SUITE(CL)
TEST_SUITE(HarrisCorners)
DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(combine(concat(datasets::Small2DShapes(), datasets::Large2DShapes()), data), framework::dataset::make("Format", Format::U8)), shape,
- gradient_size, block_size, border_mode, use_fp16, format)
+ gradient_size, block_size, border_mode, format)
{
- ARM_COMPUTE_UNUSED(use_fp16);
- ARM_COMPUTE_ERROR_ON(use_fp16);
-
std::mt19937 gen(library->seed());
std::uniform_real_distribution<float> real_dist(0.f, 0.01f);
diff --git a/tests/validation/NEON/CannyEdge.cpp b/tests/validation/NEON/CannyEdge.cpp
index 5697b622f2..7c4cd8090f 100644
--- a/tests/validation/NEON/CannyEdge.cpp
+++ b/tests/validation/NEON/CannyEdge.cpp
@@ -48,23 +48,15 @@ namespace
/* Allowed ratio of mismatches between target and reference (1.0 = 100%) */
const float allowed_mismatch_ratio = 0.1f;
-const auto use_fp16 = framework::dataset::make("UseFP16",
-{
-#ifdef __ARM_FEATURE_FP16_VECTOR_ARITHMETIC
- true,
-#endif /* __ARM_FEATURE_FP16_VECTOR_ARITHMETIC */
- false
-});
-
const auto data = combine(framework::dataset::make("GradientSize", { 3, 5, 7 }),
- combine(framework::dataset::make("Normalization", { MagnitudeType::L1NORM, MagnitudeType::L2NORM }), combine(datasets::BorderModes(), use_fp16)));
+ combine(framework::dataset::make("Normalization", { MagnitudeType::L1NORM, MagnitudeType::L2NORM }), datasets::BorderModes()));
} // namespace
TEST_SUITE(NEON)
TEST_SUITE(CannyEdge)
DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(combine(concat(datasets::Small2DShapes(), datasets::Large2DShapes()), data), framework::dataset::make("Format", Format::U8)),
- shape, gradient_size, normalization, border_mode, use_fp16, format)
+ shape, gradient_size, normalization, border_mode, format)
{
CannyEdgeParameters params = canny_edge_parameters();
// Convert normalisation type to integer
@@ -81,7 +73,7 @@ DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(combine(conca
// Create Canny edge configure function
NECannyEdge canny_edge;
- canny_edge.configure(&src, &dst, params.upper_thresh, params.lower_thresh, gradient_size, norm_type, border_mode, params.constant_border_value, use_fp16);
+ canny_edge.configure(&src, &dst, params.upper_thresh, params.lower_thresh, gradient_size, norm_type, border_mode, params.constant_border_value);
// Validate valid region
validate(src.info()->valid_region(), shape_to_valid_region(shape, (BorderMode::UNDEFINED == border_mode)));
diff --git a/tests/validation/NEON/HarrisCorners.cpp b/tests/validation/NEON/HarrisCorners.cpp
index 3474a96f8f..e0bbd92a2e 100644
--- a/tests/validation/NEON/HarrisCorners.cpp
+++ b/tests/validation/NEON/HarrisCorners.cpp
@@ -50,22 +50,14 @@ const float allowed_missing_percentage = 10.f;
/* Allowed percentage of keypoints mismatching between target and reference */
const float allowed_mismatch_percentage = 10.f;
-const auto use_fp16 = framework::dataset::make("UseFP16",
-{
-#ifdef __ARM_FEATURE_FP16_VECTOR_ARITHMETIC
- true,
-#endif /* __ARM_FEATURE_FP16_VECTOR_ARITHMETIC */
- false
-});
-
-const auto data = combine(framework::dataset::make("GradientSize", { 3, 5, 7 }), combine(framework::dataset::make("BlockSize", { 3, 5, 7 }), combine(datasets::BorderModes(), use_fp16)));
+const auto data = combine(framework::dataset::make("GradientSize", { 3, 5, 7 }), combine(framework::dataset::make("BlockSize", { 3, 5, 7 }), datasets::BorderModes()));
} // namespace
TEST_SUITE(NEON)
TEST_SUITE(HarrisCorners)
DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(combine(concat(datasets::Small2DShapes(), datasets::Large2DShapes()), data), framework::dataset::make("Format", Format::U8)), shape,
- gradient_size, block_size, border_mode, use_fp16, format)
+ gradient_size, block_size, border_mode, format)
{
std::mt19937 gen(library->seed());
std::uniform_real_distribution<float> real_dist(0.f, 0.01f);
@@ -90,7 +82,7 @@ DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(combine(conca
// Create harris corners configure function
NEHarrisCorners harris_corners;
- harris_corners.configure(&src, threshold, min_dist, sensitivity, gradient_size, block_size, &corners, border_mode, constant_border_value, use_fp16);
+ harris_corners.configure(&src, threshold, min_dist, sensitivity, gradient_size, block_size, &corners, border_mode, constant_border_value);
// Validate padding
PaddingCalculator calculator(shape.x(), 8);
diff --git a/tests/validation/fixtures/CannyEdgeFixture.h b/tests/validation/fixtures/CannyEdgeFixture.h
index 0f37c46641..d52b17e550 100644
--- a/tests/validation/fixtures/CannyEdgeFixture.h
+++ b/tests/validation/fixtures/CannyEdgeFixture.h
@@ -47,12 +47,11 @@ class CannyEdgeValidationFixture : public framework::Fixture
{
public:
template <typename...>
- void setup(std::string image, int gradient_size, MagnitudeType norm_type, BorderMode border_mode, bool use_fp16, Format format)
+ void setup(std::string image, int gradient_size, MagnitudeType norm_type, BorderMode border_mode, Format format)
{
CannyEdgeParameters params = canny_edge_parameters();
- _target = compute_target(image, gradient_size, norm_type, border_mode, use_fp16, format, params);
- //TODO(COMPMID-543): Add use_fp16 to reference
+ _target = compute_target(image, gradient_size, norm_type, border_mode, format, params);
_reference = compute_reference(image, gradient_size, norm_type, border_mode, format, params);
}
@@ -63,21 +62,7 @@ protected:
library->fill(tensor, raw);
}
- template <typename F, typename std::enable_if<std::is_same<F, NECannyEdge>::value, int>::type = 0>
- void configure_target(F &func, TensorType &src, TensorType &dst, int gradient_size, int norm_type, BorderMode border_mode, bool use_fp16, const CannyEdgeParameters &params)
- {
- func.configure(&src, &dst, params.upper_thresh, params.lower_thresh, gradient_size, norm_type, border_mode, params.constant_border_value, use_fp16);
- }
-
- template <typename F, typename std::enable_if<std::is_same<F, CLCannyEdge>::value, int>::type = 0>
- void configure_target(F &func, TensorType &src, TensorType &dst, int gradient_size, int norm_type, BorderMode border_mode, bool use_fp16, const CannyEdgeParameters &params)
- {
- ARM_COMPUTE_UNUSED(use_fp16);
- ARM_COMPUTE_ERROR_ON(use_fp16);
- func.configure(&src, &dst, params.upper_thresh, params.lower_thresh, gradient_size, norm_type, border_mode, params.constant_border_value);
- }
-
- TensorType compute_target(const std::string &image, int gradient_size, MagnitudeType norm_type, BorderMode border_mode, bool use_fp16, Format format, const CannyEdgeParameters &params)
+ TensorType compute_target(const std::string &image, int gradient_size, MagnitudeType norm_type, BorderMode border_mode, Format format, const CannyEdgeParameters &params)
{
// Load the image (cached by the library if loaded before)
const RawTensor &raw = library->get(image, format);
@@ -90,7 +75,7 @@ protected:
// Create Canny edge configure function
FunctionType canny_edge;
- configure_target<FunctionType>(canny_edge, src, dst, gradient_size, static_cast<int>(norm_type) + 1, border_mode, use_fp16, params);
+ canny_edge.configure(&src, &dst, params.upper_thresh, params.lower_thresh, gradient_size, static_cast<int>(norm_type) + 1, border_mode, params.constant_border_value);
ARM_COMPUTE_EXPECT(src.info()->is_resizable(), framework::LogLevel::ERRORS);
ARM_COMPUTE_EXPECT(dst.info()->is_resizable(), framework::LogLevel::ERRORS);
diff --git a/tests/validation/fixtures/HarrisCornersFixture.h b/tests/validation/fixtures/HarrisCornersFixture.h
index 1c30157344..f1d1f2d135 100644
--- a/tests/validation/fixtures/HarrisCornersFixture.h
+++ b/tests/validation/fixtures/HarrisCornersFixture.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017, 2018 ARM Limited.
+ * Copyright (c) 2017-2018 ARM Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -47,12 +47,11 @@ class HarrisCornersValidationFixture : public framework::Fixture
{
public:
template <typename...>
- void setup(std::string image, int gradient_size, int block_size, BorderMode border_mode, bool use_fp16, Format format)
+ void setup(std::string image, int gradient_size, int block_size, BorderMode border_mode, Format format)
{
HarrisCornersParameters params = harris_corners_parameters();
- _target = compute_target(image, gradient_size, block_size, border_mode, use_fp16, format, params);
- //TODO(COMPMID-543): Add use_fp16 to reference
+ _target = compute_target(image, gradient_size, block_size, border_mode, format, params);
_reference = compute_reference(image, gradient_size, block_size, border_mode, format, params);
}
@@ -63,21 +62,7 @@ protected:
library->fill(tensor, raw);
}
- template <typename F, typename std::enable_if<std::is_same<F, NEHarrisCorners>::value, int>::type = 0>
- void configure_target(F &func, TensorType &src, ArrayType &corners, int gradient_size, int block_size, BorderMode border_mode, bool use_fp16, const HarrisCornersParameters &params)
- {
- func.configure(&src, params.threshold, params.min_dist, params.sensitivity, gradient_size, block_size, &corners, border_mode, params.constant_border_value, use_fp16);
- }
-
- template <typename F, typename std::enable_if<std::is_same<F, CLHarrisCorners>::value, int>::type = 0>
- void configure_target(F &func, TensorType &src, ArrayType &corners, int gradient_size, int block_size, BorderMode border_mode, bool use_fp16, const HarrisCornersParameters &params)
- {
- ARM_COMPUTE_UNUSED(use_fp16);
- ARM_COMPUTE_ERROR_ON(use_fp16);
- func.configure(&src, params.threshold, params.min_dist, params.sensitivity, gradient_size, block_size, &corners, border_mode, params.constant_border_value);
- }
-
- ArrayType compute_target(std::string image, int gradient_size, int block_size, BorderMode border_mode, bool use_fp16, Format format, const HarrisCornersParameters &params)
+ ArrayType compute_target(std::string image, int gradient_size, int block_size, BorderMode border_mode, Format format, const HarrisCornersParameters &params)
{
// Load the image (cached by the library if loaded before)
const RawTensor &raw = library->get(image, format);
@@ -90,7 +75,7 @@ protected:
// Create harris corners configure function
FunctionType harris_corners;
- configure_target<FunctionType>(harris_corners, src, corners, gradient_size, block_size, border_mode, use_fp16, params);
+ harris_corners.configure(&src, params.threshold, params.min_dist, params.sensitivity, gradient_size, block_size, &corners, border_mode, params.constant_border_value);
ARM_COMPUTE_EXPECT(src.info()->is_resizable(), framework::LogLevel::ERRORS);
diff --git a/tests/validation/reference/CannyEdgeDetector.cpp b/tests/validation/reference/CannyEdgeDetector.cpp
index cfe8ae8100..d50452bfe8 100644
--- a/tests/validation/reference/CannyEdgeDetector.cpp
+++ b/tests/validation/reference/CannyEdgeDetector.cpp
@@ -231,7 +231,8 @@ SimpleTensor<T> canny_edge_detector_impl(const SimpleTensor<T> &src, int32_t upp
} // namespace
template <typename T>
-SimpleTensor<T> canny_edge_detector(const SimpleTensor<T> &src, int32_t upper_thresh, int32_t lower_thresh, int gradient_size, MagnitudeType norm_type,
+SimpleTensor<T> canny_edge_detector(const SimpleTensor<T> &src,
+ int32_t upper_thresh, int32_t lower_thresh, int gradient_size, MagnitudeType norm_type,
BorderMode border_mode, T constant_border_value)
{
if(gradient_size < 7)
@@ -244,7 +245,8 @@ SimpleTensor<T> canny_edge_detector(const SimpleTensor<T> &src, int32_t upper_th
}
}
-template SimpleTensor<uint8_t> canny_edge_detector(const SimpleTensor<uint8_t> &src, int32_t upper_thresh, int32_t lower_thresh, int gradient_size, MagnitudeType norm_type,
+template SimpleTensor<uint8_t> canny_edge_detector(const SimpleTensor<uint8_t> &src,
+ int32_t upper_thresh, int32_t lower_thresh, int gradient_size, MagnitudeType norm_type,
BorderMode border_mode, uint8_t constant_border_value);
} // namespace reference
} // namespace validation
diff --git a/tests/validation/reference/CannyEdgeDetector.h b/tests/validation/reference/CannyEdgeDetector.h
index a46c145153..ee6199d96e 100644
--- a/tests/validation/reference/CannyEdgeDetector.h
+++ b/tests/validation/reference/CannyEdgeDetector.h
@@ -36,7 +36,8 @@ namespace validation
namespace reference
{
template <typename T>
-SimpleTensor<T> canny_edge_detector(const SimpleTensor<T> &src, int32_t upper_thresh, int32_t lower_thresh, int gradient_size, MagnitudeType norm_type,
+SimpleTensor<T> canny_edge_detector(const SimpleTensor<T> &src,
+ int32_t upper_thresh, int32_t lower_thresh, int gradient_size, MagnitudeType norm_type,
BorderMode border_mode, T constant_border_value = 0);
} // namespace reference
} // namespace validation
diff --git a/tests/validation/reference/HarrisCornerDetector.h b/tests/validation/reference/HarrisCornerDetector.h
index 042e8570c2..f208eaa743 100644
--- a/tests/validation/reference/HarrisCornerDetector.h
+++ b/tests/validation/reference/HarrisCornerDetector.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017 ARM Limited.
+ * Copyright (c) 2017-2018 ARM Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -38,8 +38,9 @@ namespace validation
namespace reference
{
template <typename T>
-std::vector<KeyPoint> harris_corner_detector(const SimpleTensor<T> &src, float threshold, float min_dist, float sensitivity, int gradient_size, int block_size, BorderMode border_mode,
- T constant_border_value = 0);
+std::vector<KeyPoint> harris_corner_detector(const SimpleTensor<T> &src,
+ float threshold, float min_dist, float sensitivity, int gradient_size, int block_size,
+ BorderMode border_mode, T constant_border_value = 0);
} // namespace reference
} // namespace validation
} // namespace test