From 6aeb2170d18824135acef2d5c16fb93c4488c1fe Mon Sep 17 00:00:00 2001 From: Giorgio Arena Date: Tue, 15 Dec 2020 15:45:43 +0000 Subject: Fix fill() for FP data type in fixtures - Part 1 Resolves: COMPMID-4050 Signed-off-by: Giorgio Arena Change-Id: I182548bf4b944c499a7134ac005b137877e61baf Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4700 Tested-by: Arm Jenkins Reviewed-by: Michele Di Giorgio Comments-Addressed: Arm Jenkins --- tests/validation/fixtures/ArgMinMaxFixture.h | 9 +++++++-- .../fixtures/ConvertFullyConnectedWeightsFixture.h | 11 ++++++++--- tests/validation/fixtures/ConvolutionLayerFixture.h | 7 ++++++- tests/validation/fixtures/DeconvolutionLayerFixture.h | 7 ++++++- .../validation/fixtures/DepthwiseConvolutionLayerFixture.h | 13 +++++++++---- tests/validation/fixtures/DirectConvolutionLayerFixture.h | 7 ++++++- .../fixtures/DirectConvolutionLayerTensorShiftFixture.h | 9 +++++++-- tests/validation/fixtures/ElementWiseUnaryFixture.h | 9 +++++++-- tests/validation/fixtures/FFTFixture.h | 6 ++---- tests/validation/fixtures/GEMMFixture.h | 7 ++++++- tests/validation/fixtures/GEMMInterleave4x4Fixture.h | 9 +++++++-- tests/validation/fixtures/GEMMLowpFixture.h | 8 ++++++-- tests/validation/fixtures/GEMMTranspose1xWFixture.h | 9 +++++++-- tests/validation/fixtures/WinogradConvolutionLayerFixture.h | 11 ++++++++--- 14 files changed, 92 insertions(+), 30 deletions(-) (limited to 'tests/validation') diff --git a/tests/validation/fixtures/ArgMinMaxFixture.h b/tests/validation/fixtures/ArgMinMaxFixture.h index cf34bcc00e..044e253d92 100644 --- a/tests/validation/fixtures/ArgMinMaxFixture.h +++ b/tests/validation/fixtures/ArgMinMaxFixture.h @@ -59,10 +59,15 @@ protected: { switch(tensor.data_type()) { - case DataType::F32: case DataType::F16: { - std::uniform_real_distribution<> distribution(-1.0f, 1.0f); + arm_compute::utils::uniform_real_distribution_fp16 distribution{ half(-1.0f), half(1.0f) }; + library->fill(tensor, distribution, 0); + break; + } + case DataType::F32: + { + std::uniform_real_distribution 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 c90409f3a4..f1eeff7872 100644 --- a/tests/validation/fixtures/ConvertFullyConnectedWeightsFixture.h +++ b/tests/validation/fixtures/ConvertFullyConnectedWeightsFixture.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Arm Limited. + * Copyright (c) 2018-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -65,10 +65,15 @@ protected: library->fill(tensor, distribution, i); break; } - case DataType::F32: case DataType::F16: { - std::uniform_real_distribution<> distribution(-1.0f, 1.0f); + arm_compute::utils::uniform_real_distribution_fp16 distribution{ half(-1.0f), half(1.0f) }; + library->fill(tensor, distribution, i); + break; + } + case DataType::F32: + { + std::uniform_real_distribution 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 e1452f5dfc..94fbc53d65 100644 --- a/tests/validation/fixtures/ConvolutionLayerFixture.h +++ b/tests/validation/fixtures/ConvolutionLayerFixture.h @@ -142,9 +142,14 @@ protected: } case DataType::BFLOAT16: case DataType::F16: + { + arm_compute::utils::uniform_real_distribution_fp16 distribution{ half(-1.0f), half(1.0f) }; + library->fill(tensor, distribution, i); + break; + } case DataType::F32: { - std::uniform_real_distribution<> distribution(-1.0f, 1.0f); + std::uniform_real_distribution 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 7c7f32bffd..d56a9337e9 100644 --- a/tests/validation/fixtures/DeconvolutionLayerFixture.h +++ b/tests/validation/fixtures/DeconvolutionLayerFixture.h @@ -90,9 +90,14 @@ protected: break; } case DataType::F16: + { + arm_compute::utils::uniform_real_distribution_fp16 distribution{ half(-1.0f), half(1.0f) }; + library->fill(tensor, distribution, i); + break; + } case DataType::F32: { - std::uniform_real_distribution<> distribution(-1.0f, 1.0f); + std::uniform_real_distribution 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 af3838f438..9cd60cc1fb 100644 --- a/tests/validation/fixtures/DepthwiseConvolutionLayerFixture.h +++ b/tests/validation/fixtures/DepthwiseConvolutionLayerFixture.h @@ -97,10 +97,15 @@ protected: library->fill(tensor, distribution, i); break; } - case DataType::F32: case DataType::F16: { - std::uniform_real_distribution<> distribution(-1.0f, 1.0f); + arm_compute::utils::uniform_real_distribution_fp16 distribution{ half(-1.0f), half(1.0f) }; + library->fill(tensor, distribution, i); + break; + } + case DataType::F32: + { + std::uniform_real_distribution distribution(-1.0f, 1.0f); library->fill(tensor, distribution, i); break; } @@ -343,13 +348,13 @@ protected: { case DataType::F32: { - std::uniform_real_distribution<> distribution(-1.0f, 1.0f); + std::uniform_real_distribution distribution(-1.0f, 1.0f); library->fill(tensor, distribution, i); break; } case DataType::F16: { - std::uniform_real_distribution<> distribution(-1.0f, 1.0f); + arm_compute::utils::uniform_real_distribution_fp16 distribution{ half(-1.0f), half(1.0f) }; library->fill(tensor, distribution, i); break; } diff --git a/tests/validation/fixtures/DirectConvolutionLayerFixture.h b/tests/validation/fixtures/DirectConvolutionLayerFixture.h index e37063e2e5..7faea5518f 100644 --- a/tests/validation/fixtures/DirectConvolutionLayerFixture.h +++ b/tests/validation/fixtures/DirectConvolutionLayerFixture.h @@ -108,9 +108,14 @@ protected: break; } case DataType::F16: + { + arm_compute::utils::uniform_real_distribution_fp16 distribution{ half(-1.0f), half(1.0f) }; + library->fill(tensor, distribution, i); + break; + } case DataType::F32: { - std::uniform_real_distribution<> distribution(-1.f, 1.f); + std::uniform_real_distribution 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 b313c8490d..be43853e0b 100644 --- a/tests/validation/fixtures/DirectConvolutionLayerTensorShiftFixture.h +++ b/tests/validation/fixtures/DirectConvolutionLayerTensorShiftFixture.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2018 Arm Limited. + * Copyright (c) 2017-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -93,9 +93,14 @@ protected: break; } case DataType::F16: + { + arm_compute::utils::uniform_real_distribution_fp16 distribution{ half(-1.0f), half(1.0f) }; + library->fill(tensor, distribution, i); + break; + } case DataType::F32: { - std::uniform_real_distribution<> distribution(-1.0f, 1.0f); + std::uniform_real_distribution distribution(-1.0f, 1.0f); library->fill(tensor, distribution, i); break; } diff --git a/tests/validation/fixtures/ElementWiseUnaryFixture.h b/tests/validation/fixtures/ElementWiseUnaryFixture.h index f04463d466..b1d54fd940 100644 --- a/tests/validation/fixtures/ElementWiseUnaryFixture.h +++ b/tests/validation/fixtures/ElementWiseUnaryFixture.h @@ -74,10 +74,15 @@ protected: { switch(data_type) { - case DataType::F32: case DataType::F16: { - std::uniform_real_distribution<> distribution(-2.0f, 2.0f); + arm_compute::utils::uniform_real_distribution_fp16 distribution{ half(-2.0f), half(2.0f) }; + library->fill(tensor, distribution, i); + break; + } + case DataType::F32: + { + std::uniform_real_distribution 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 564098497b..ae5b226954 100644 --- a/tests/validation/fixtures/FFTFixture.h +++ b/tests/validation/fixtures/FFTFixture.h @@ -35,8 +35,6 @@ #include "tests/validation/reference/ConvolutionLayer.h" #include "tests/validation/reference/DFT.h" -#include "utils/Utils.h" - #include namespace arm_compute @@ -65,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{ half(-5.0f), half(5.0f) }; library->fill(tensor, distribution, 0); break; } @@ -153,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{ half(-1.0f), half(1.0f) }; library->fill(tensor, distribution, i); break; } diff --git a/tests/validation/fixtures/GEMMFixture.h b/tests/validation/fixtures/GEMMFixture.h index 358056ad65..7e775887b6 100644 --- a/tests/validation/fixtures/GEMMFixture.h +++ b/tests/validation/fixtures/GEMMFixture.h @@ -63,9 +63,14 @@ protected: switch(tensor.data_type()) { case DataType::F16: + { + arm_compute::utils::uniform_real_distribution_fp16 distribution{ half(lo), half(hi) }; + library->fill(tensor, distribution, i); + break; + } case DataType::F32: { - std::uniform_real_distribution<> distribution(lo, hi); + std::uniform_real_distribution distribution(lo, hi); library->fill(tensor, distribution, i); break; } diff --git a/tests/validation/fixtures/GEMMInterleave4x4Fixture.h b/tests/validation/fixtures/GEMMInterleave4x4Fixture.h index fb04a08755..3b153a85dc 100644 --- a/tests/validation/fixtures/GEMMInterleave4x4Fixture.h +++ b/tests/validation/fixtures/GEMMInterleave4x4Fixture.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2018 Arm Limited. + * Copyright (c) 2017-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -63,9 +63,14 @@ protected: switch(tensor.data_type()) { case DataType::F16: + { + arm_compute::utils::uniform_real_distribution_fp16 distribution{ half(-1.0f), half(1.0f) }; + library->fill(tensor, distribution, i); + break; + } case DataType::F32: { - std::uniform_real_distribution<> distribution(-1.f, 1.f); + std::uniform_real_distribution 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 94b25e2243..338cf01138 100644 --- a/tests/validation/fixtures/GEMMLowpFixture.h +++ b/tests/validation/fixtures/GEMMLowpFixture.h @@ -78,10 +78,14 @@ void fill(U &&tensor, int i) break; } case DataType::F16: + { + arm_compute::utils::uniform_real_distribution_fp16 distribution{ half(-1.0f), half(1.0f) }; + library->fill(tensor, distribution, i); + break; + } case DataType::F32: { - // Between 1 and 254 in order to avoid having -128 and 128 for the DOT product path - std::uniform_real_distribution<> distribution(-1.0f, 1.0f); + std::uniform_real_distribution 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 9619a667e9..6edb78fe22 100644 --- a/tests/validation/fixtures/GEMMTranspose1xWFixture.h +++ b/tests/validation/fixtures/GEMMTranspose1xWFixture.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2019 Arm Limited. + * Copyright (c) 2017-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -64,9 +64,14 @@ protected: switch(tensor.data_type()) { case DataType::F16: + { + arm_compute::utils::uniform_real_distribution_fp16 distribution{ half(-1.0f), half(1.0f) }; + library->fill(tensor, distribution, i); + break; + } case DataType::F32: { - std::uniform_real_distribution<> distribution(-1.f, 1.f); + std::uniform_real_distribution 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 410c2a544e..4e26a5ef95 100644 --- a/tests/validation/fixtures/WinogradConvolutionLayerFixture.h +++ b/tests/validation/fixtures/WinogradConvolutionLayerFixture.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018-2019 Arm Limited. + * Copyright (c) 2018-2020 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{ half(min), half(max) }; library->fill(tensor, distribution, i); break; } @@ -499,9 +499,14 @@ protected: switch(tensor.data_type()) { case DataType::F16: + { + arm_compute::utils::uniform_real_distribution_fp16 distribution{ half(min), half(max) }; + library->fill(tensor, distribution, i); + break; + } case DataType::F32: { - std::uniform_real_distribution<> distribution(min, max); + std::uniform_real_distribution distribution(min, max); library->fill(tensor, distribution, i); break; } -- cgit v1.2.1