aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGiorgio Arena <giorgio.arena@arm.com>2021-01-05 09:46:16 +0000
committerGiorgio Arena <giorgio.arena@arm.com>2021-01-05 13:55:06 +0000
commitb309fc249e4383b4d40ae03e377c3cbad3f9f5f7 (patch)
treec409dc7e0ce3080efc030d1082c60e451def97f1
parent97b3f11a1655c05bedaf378f85f94cdccb1536ba (diff)
downloadComputeLibrary-b309fc249e4383b4d40ae03e377c3cbad3f9f5f7.tar.gz
Fix uniform_real_distribution_fp16 warning and single Dimension increment
- Change uniform_real_distribution_fp16's arguments to float to avoid maybe-uninitialized warnings in half data type's copy constructor and converter - Add increment method to Dimensions in order to avoid possible overflows when incrementing single dimensions - Remove internal_only flag documentation Resolves: COMPMID-4061 Change-Id: I7c50487193bd7b47b03d52fc595840c7df4e7104 Signed-off-by: Giorgio Arena <giorgio.arena@arm.com> Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4760 Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com> Tested-by: Arm Jenkins <bsgcomp@arm.com> Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
-rw-r--r--arm_compute/core/Dimensions.h17
-rw-r--r--docs/00_introduction.dox4
-rw-r--r--tests/AssetsLibrary.h6
-rw-r--r--tests/validation/fixtures/ArgMinMaxFixture.h4
-rw-r--r--tests/validation/fixtures/ConvertFullyConnectedWeightsFixture.h4
-rw-r--r--tests/validation/fixtures/ConvolutionLayerFixture.h4
-rw-r--r--tests/validation/fixtures/DeconvolutionLayerFixture.h4
-rw-r--r--tests/validation/fixtures/DepthwiseConvolutionLayerFixture.h6
-rw-r--r--tests/validation/fixtures/DirectConvolutionLayerFixture.h4
-rw-r--r--tests/validation/fixtures/DirectConvolutionLayerTensorShiftFixture.h4
-rw-r--r--tests/validation/fixtures/ElementWiseUnaryFixture.h4
-rw-r--r--tests/validation/fixtures/FFTFixture.h6
-rw-r--r--tests/validation/fixtures/GEMMFixture.h4
-rw-r--r--tests/validation/fixtures/GEMMInterleave4x4Fixture.h4
-rw-r--r--tests/validation/fixtures/GEMMLowpFixture.h4
-rw-r--r--tests/validation/fixtures/GEMMTranspose1xWFixture.h4
-rw-r--r--tests/validation/fixtures/WinogradConvolutionLayerFixture.h6
-rw-r--r--tests/validation/reference/ColorConvertHelper.h8
-rw-r--r--utils/Utils.h4
19 files changed, 55 insertions, 46 deletions
diff --git a/arm_compute/core/Dimensions.h b/arm_compute/core/Dimensions.h
index d487b997a3..175d1e8098 100644
--- a/arm_compute/core/Dimensions.h
+++ b/arm_compute/core/Dimensions.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017-2020 Arm Limited.
+ * Copyright (c) 2017-2021 Arm Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -97,6 +97,21 @@ public:
{
return _id[2];
}
+ /** Increments the given dimension by a step size, avoiding overflows
+ *
+ * @note Precondition: dim < _num_dimensions
+ *
+ * @param[in] dim Dimension to increment.
+ * @param[in] step Step to increment @p dim by.
+ */
+ void increment(size_t dim, T step = 1)
+ {
+ ARM_COMPUTE_ERROR_ON(dim < _num_dimensions);
+ if((std::numeric_limits<T>::max() - _id[dim]) <= step)
+ {
+ _id[dim] += step;
+ }
+ }
/** Generic accessor to get the size of any dimension
*
* @note Precondition: dimension < Dimensions::num_max_dimensions
diff --git a/docs/00_introduction.dox b/docs/00_introduction.dox
index 189067c81f..db87540f37 100644
--- a/docs/00_introduction.dox
+++ b/docs/00_introduction.dox
@@ -1409,10 +1409,6 @@ To see the build options available simply run ```scons -h```:
default:
actual:
- internal_only: Enable ARM internal only tests (yes|no)
- default: False
- actual: False
-
custom_options: Custom options that can be used to turn on/off features
(all|none|comma-separated list of names)
allowed names: disable_mmla_fp
diff --git a/tests/AssetsLibrary.h b/tests/AssetsLibrary.h
index fdb05691ea..f44c554635 100644
--- a/tests/AssetsLibrary.h
+++ b/tests/AssetsLibrary.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017-2020 Arm Limited.
+ * Copyright (c) 2017-2021 Arm Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -783,7 +783,7 @@ void AssetsLibrary::fill_tensor_uniform(T &&tensor, std::random_device::result_t
case DataType::F16:
{
// It doesn't make sense to check [-inf, inf], so hard code it to a big number
- arm_compute::utils::uniform_real_distribution_fp16 distribution_f16{ half(-100.f), half(100.f) };
+ arm_compute::utils::uniform_real_distribution_fp16 distribution_f16{ -100.f, 100.f };
fill(tensor, distribution_f16, seed_offset);
break;
}
@@ -980,7 +980,7 @@ void AssetsLibrary::fill_tensor_uniform(T &&tensor, std::random_device::result_t
}
case DataType::F16:
{
- arm_compute::utils::uniform_real_distribution_fp16 distribution_f16{ half(low), half(high) };
+ arm_compute::utils::uniform_real_distribution_fp16 distribution_f16{ float(low), float(high) };
fill(tensor, distribution_f16, seed_offset);
break;
}
diff --git a/tests/validation/fixtures/ArgMinMaxFixture.h b/tests/validation/fixtures/ArgMinMaxFixture.h
index 044e253d92..fdf9ac4e5b 100644
--- a/tests/validation/fixtures/ArgMinMaxFixture.h
+++ b/tests/validation/fixtures/ArgMinMaxFixture.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018-2020 Arm Limited.
+ * Copyright (c) 2018-2021 Arm Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -61,7 +61,7 @@ protected:
{
case DataType::F16:
{
- arm_compute::utils::uniform_real_distribution_fp16 distribution{ half(-1.0f), half(1.0f) };
+ arm_compute::utils::uniform_real_distribution_fp16 distribution{ -1.0f, 1.0f };
library->fill(tensor, distribution, 0);
break;
}
diff --git a/tests/validation/fixtures/ConvertFullyConnectedWeightsFixture.h b/tests/validation/fixtures/ConvertFullyConnectedWeightsFixture.h
index f1eeff7872..a4705b1250 100644
--- a/tests/validation/fixtures/ConvertFullyConnectedWeightsFixture.h
+++ b/tests/validation/fixtures/ConvertFullyConnectedWeightsFixture.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018-2020 Arm Limited.
+ * Copyright (c) 2018-2021 Arm Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -67,7 +67,7 @@ protected:
}
case DataType::F16:
{
- arm_compute::utils::uniform_real_distribution_fp16 distribution{ half(-1.0f), half(1.0f) };
+ arm_compute::utils::uniform_real_distribution_fp16 distribution{ -1.0f, 1.0f };
library->fill(tensor, distribution, i);
break;
}
diff --git a/tests/validation/fixtures/ConvolutionLayerFixture.h b/tests/validation/fixtures/ConvolutionLayerFixture.h
index 94fbc53d65..210afbef5b 100644
--- a/tests/validation/fixtures/ConvolutionLayerFixture.h
+++ b/tests/validation/fixtures/ConvolutionLayerFixture.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017-2020 Arm Limited.
+ * Copyright (c) 2017-2021 Arm Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -143,7 +143,7 @@ protected:
case DataType::BFLOAT16:
case DataType::F16:
{
- arm_compute::utils::uniform_real_distribution_fp16 distribution{ half(-1.0f), half(1.0f) };
+ arm_compute::utils::uniform_real_distribution_fp16 distribution{ -1.0f, 1.0f };
library->fill(tensor, distribution, i);
break;
}
diff --git a/tests/validation/fixtures/DeconvolutionLayerFixture.h b/tests/validation/fixtures/DeconvolutionLayerFixture.h
index d56a9337e9..6394caf457 100644
--- a/tests/validation/fixtures/DeconvolutionLayerFixture.h
+++ b/tests/validation/fixtures/DeconvolutionLayerFixture.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017-2020 Arm Limited.
+ * Copyright (c) 2017-2021 Arm Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -91,7 +91,7 @@ protected:
}
case DataType::F16:
{
- arm_compute::utils::uniform_real_distribution_fp16 distribution{ half(-1.0f), half(1.0f) };
+ arm_compute::utils::uniform_real_distribution_fp16 distribution{ -1.0f, 1.0f };
library->fill(tensor, distribution, i);
break;
}
diff --git a/tests/validation/fixtures/DepthwiseConvolutionLayerFixture.h b/tests/validation/fixtures/DepthwiseConvolutionLayerFixture.h
index 9cd60cc1fb..09f8cb4c06 100644
--- a/tests/validation/fixtures/DepthwiseConvolutionLayerFixture.h
+++ b/tests/validation/fixtures/DepthwiseConvolutionLayerFixture.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017-2020 Arm Limited.
+ * Copyright (c) 2017-2021 Arm Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -99,7 +99,7 @@ protected:
}
case DataType::F16:
{
- arm_compute::utils::uniform_real_distribution_fp16 distribution{ half(-1.0f), half(1.0f) };
+ arm_compute::utils::uniform_real_distribution_fp16 distribution{ -1.0f, 1.0f };
library->fill(tensor, distribution, i);
break;
}
@@ -354,7 +354,7 @@ protected:
}
case DataType::F16:
{
- arm_compute::utils::uniform_real_distribution_fp16 distribution{ half(-1.0f), half(1.0f) };
+ arm_compute::utils::uniform_real_distribution_fp16 distribution{ -1.0f, 1.0f };
library->fill(tensor, distribution, i);
break;
}
diff --git a/tests/validation/fixtures/DirectConvolutionLayerFixture.h b/tests/validation/fixtures/DirectConvolutionLayerFixture.h
index 7faea5518f..1967e8dc4d 100644
--- a/tests/validation/fixtures/DirectConvolutionLayerFixture.h
+++ b/tests/validation/fixtures/DirectConvolutionLayerFixture.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017-2020 Arm Limited.
+ * Copyright (c) 2017-2021 Arm Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -109,7 +109,7 @@ protected:
}
case DataType::F16:
{
- arm_compute::utils::uniform_real_distribution_fp16 distribution{ half(-1.0f), half(1.0f) };
+ arm_compute::utils::uniform_real_distribution_fp16 distribution{ -1.0f, 1.0f };
library->fill(tensor, distribution, i);
break;
}
diff --git a/tests/validation/fixtures/DirectConvolutionLayerTensorShiftFixture.h b/tests/validation/fixtures/DirectConvolutionLayerTensorShiftFixture.h
index be43853e0b..7e891fe682 100644
--- a/tests/validation/fixtures/DirectConvolutionLayerTensorShiftFixture.h
+++ b/tests/validation/fixtures/DirectConvolutionLayerTensorShiftFixture.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017-2020 Arm Limited.
+ * Copyright (c) 2017-2021 Arm Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -94,7 +94,7 @@ protected:
}
case DataType::F16:
{
- arm_compute::utils::uniform_real_distribution_fp16 distribution{ half(-1.0f), half(1.0f) };
+ arm_compute::utils::uniform_real_distribution_fp16 distribution{ float(-1.0f), float(1.0f) };
library->fill(tensor, distribution, i);
break;
}
diff --git a/tests/validation/fixtures/ElementWiseUnaryFixture.h b/tests/validation/fixtures/ElementWiseUnaryFixture.h
index b1d54fd940..26484be2fa 100644
--- a/tests/validation/fixtures/ElementWiseUnaryFixture.h
+++ b/tests/validation/fixtures/ElementWiseUnaryFixture.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018-2020 Arm Limited.
+ * Copyright (c) 2018-2021 Arm Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -76,7 +76,7 @@ protected:
{
case DataType::F16:
{
- arm_compute::utils::uniform_real_distribution_fp16 distribution{ half(-2.0f), half(2.0f) };
+ arm_compute::utils::uniform_real_distribution_fp16 distribution{ -2.0f, 2.0f };
library->fill(tensor, distribution, i);
break;
}
diff --git a/tests/validation/fixtures/FFTFixture.h b/tests/validation/fixtures/FFTFixture.h
index ae5b226954..37c2f2faec 100644
--- a/tests/validation/fixtures/FFTFixture.h
+++ b/tests/validation/fixtures/FFTFixture.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2019-2020 Arm Limited.
+ * Copyright (c) 2019-2021 Arm Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -63,7 +63,7 @@ protected:
{
case DataType::F16:
{
- arm_compute::utils::uniform_real_distribution_fp16 distribution{ half(-5.0f), half(5.0f) };
+ arm_compute::utils::uniform_real_distribution_fp16 distribution{ -5.0f, 5.0f };
library->fill(tensor, distribution, 0);
break;
}
@@ -151,7 +151,7 @@ protected:
{
case DataType::F16:
{
- arm_compute::utils::uniform_real_distribution_fp16 distribution{ half(-1.0f), half(1.0f) };
+ arm_compute::utils::uniform_real_distribution_fp16 distribution{ -1.0f, 1.0f };
library->fill(tensor, distribution, i);
break;
}
diff --git a/tests/validation/fixtures/GEMMFixture.h b/tests/validation/fixtures/GEMMFixture.h
index 7e775887b6..0c2f0a410e 100644
--- a/tests/validation/fixtures/GEMMFixture.h
+++ b/tests/validation/fixtures/GEMMFixture.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017-2020 Arm Limited.
+ * Copyright (c) 2017-2021 Arm Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -64,7 +64,7 @@ protected:
{
case DataType::F16:
{
- arm_compute::utils::uniform_real_distribution_fp16 distribution{ half(lo), half(hi) };
+ arm_compute::utils::uniform_real_distribution_fp16 distribution{ float(lo), float(hi) };
library->fill(tensor, distribution, i);
break;
}
diff --git a/tests/validation/fixtures/GEMMInterleave4x4Fixture.h b/tests/validation/fixtures/GEMMInterleave4x4Fixture.h
index 3b153a85dc..30708e4e7d 100644
--- a/tests/validation/fixtures/GEMMInterleave4x4Fixture.h
+++ b/tests/validation/fixtures/GEMMInterleave4x4Fixture.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017-2020 Arm Limited.
+ * Copyright (c) 2017-2021 Arm Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -64,7 +64,7 @@ protected:
{
case DataType::F16:
{
- arm_compute::utils::uniform_real_distribution_fp16 distribution{ half(-1.0f), half(1.0f) };
+ arm_compute::utils::uniform_real_distribution_fp16 distribution{ -1.0f, 1.0f };
library->fill(tensor, distribution, i);
break;
}
diff --git a/tests/validation/fixtures/GEMMLowpFixture.h b/tests/validation/fixtures/GEMMLowpFixture.h
index 338cf01138..b9140ebd3e 100644
--- a/tests/validation/fixtures/GEMMLowpFixture.h
+++ b/tests/validation/fixtures/GEMMLowpFixture.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017-2020 Arm Limited.
+ * Copyright (c) 2017-2021 Arm Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -79,7 +79,7 @@ void fill(U &&tensor, int i)
}
case DataType::F16:
{
- arm_compute::utils::uniform_real_distribution_fp16 distribution{ half(-1.0f), half(1.0f) };
+ arm_compute::utils::uniform_real_distribution_fp16 distribution{ -1.0f, 1.0f };
library->fill(tensor, distribution, i);
break;
}
diff --git a/tests/validation/fixtures/GEMMTranspose1xWFixture.h b/tests/validation/fixtures/GEMMTranspose1xWFixture.h
index 6edb78fe22..3d6ac76681 100644
--- a/tests/validation/fixtures/GEMMTranspose1xWFixture.h
+++ b/tests/validation/fixtures/GEMMTranspose1xWFixture.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017-2020 Arm Limited.
+ * Copyright (c) 2017-2021 Arm Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -65,7 +65,7 @@ protected:
{
case DataType::F16:
{
- arm_compute::utils::uniform_real_distribution_fp16 distribution{ half(-1.0f), half(1.0f) };
+ arm_compute::utils::uniform_real_distribution_fp16 distribution{ -1.0f, 1.0f };
library->fill(tensor, distribution, i);
break;
}
diff --git a/tests/validation/fixtures/WinogradConvolutionLayerFixture.h b/tests/validation/fixtures/WinogradConvolutionLayerFixture.h
index 4e26a5ef95..5a40815a67 100644
--- a/tests/validation/fixtures/WinogradConvolutionLayerFixture.h
+++ b/tests/validation/fixtures/WinogradConvolutionLayerFixture.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018-2020 Arm Limited.
+ * Copyright (c) 2018-2021 Arm Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -177,7 +177,7 @@ protected:
{
case DataType::F16:
{
- arm_compute::utils::uniform_real_distribution_fp16 distribution{ half(min), half(max) };
+ arm_compute::utils::uniform_real_distribution_fp16 distribution{ float(min), float(max) };
library->fill(tensor, distribution, i);
break;
}
@@ -500,7 +500,7 @@ protected:
{
case DataType::F16:
{
- arm_compute::utils::uniform_real_distribution_fp16 distribution{ half(min), half(max) };
+ arm_compute::utils::uniform_real_distribution_fp16 distribution{ float(min), float(max) };
library->fill(tensor, distribution, i);
break;
}
diff --git a/tests/validation/reference/ColorConvertHelper.h b/tests/validation/reference/ColorConvertHelper.h
index 100b4dcd7f..0656b368d7 100644
--- a/tests/validation/reference/ColorConvertHelper.h
+++ b/tests/validation/reference/ColorConvertHelper.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017-2019 Arm Limited.
+ * Copyright (c) 2017-2021 Arm Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -614,9 +614,7 @@ inline void colorconvert_rgb_to_yuv4(const SimpleTensor<T> src, std::vector<Simp
rgb_to_yuv_calculation(rvec, gvec, bvec, dst[0], uvec_top, uvec_bottom, vvec_top, vvec_bottom);
- int uvec_coord_x = 0;
- int uvec_coord_y = 0;
- Coordinates uvec_coord{ uvec_coord_x, uvec_coord_y };
+ Coordinates uvec_coord{};
for(int y = 0; y < height; y++)
{
for(int x = 0; x < width; x += 2)
@@ -638,7 +636,7 @@ inline void colorconvert_rgb_to_yuv4(const SimpleTensor<T> src, std::vector<Simp
plane_2_pixel[0] = vvec_top_val;
plane_2_pixel[1] = vvec_bottom_val;
- uvec_coord.set(0, ++uvec_coord_x);
+ uvec_coord.increment(0);
}
}
}
diff --git a/utils/Utils.h b/utils/Utils.h
index ca4509778b..9862514a9e 100644
--- a/utils/Utils.h
+++ b/utils/Utils.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2016-2020 Arm Limited.
+ * Copyright (c) 2016-2021 Arm Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -303,7 +303,7 @@ public:
* @param[in] min Minimum value of the distribution
* @param[in] max Maximum value of the distribution
*/
- explicit uniform_real_distribution_fp16(half min = half(0.0), half max = half(1.0))
+ explicit uniform_real_distribution_fp16(float min = 0.f, float max = 1.0)
: dist(min, max)
{
}