diff options
author | Georgios Pinitas <georgios.pinitas@arm.com> | 2017-08-04 14:58:27 +0100 |
---|---|---|
committer | Anthony Barbier <anthony.barbier@arm.com> | 2018-09-17 14:16:42 +0100 |
commit | 89010962f2174c4cbc0784038ddf77358fa59480 (patch) | |
tree | 26219731752ac8c1fdd4c18d128999bc94876cb2 | |
parent | 6f4933028e2ce1b002d10f91b63d523d05f31683 (diff) | |
download | ComputeLibrary-89010962f2174c4cbc0784038ddf77358fa59480.tar.gz |
COMPMID-417: Fix CLNormalization error issue.
Change-Id: Ie538245ee0451e4cdb28120e80b9a65f56a07e7d
Reviewed-on: http://mpd-gerrit.cambridge.arm.com/82933
Tested-by: Kaizen <jeremy.johnson+kaizengerrit@arm.com>
Reviewed-by: Michele DiGiorgio <michele.digiorgio@arm.com>
Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
-rw-r--r-- | arm_compute/core/Utils.h | 14 | ||||
-rw-r--r-- | src/core/CL/kernels/CLNormalizationLayerKernel.cpp | 6 |
2 files changed, 17 insertions, 3 deletions
diff --git a/arm_compute/core/Utils.h b/arm_compute/core/Utils.h index af788beeb7..39ec6587de 100644 --- a/arm_compute/core/Utils.h +++ b/arm_compute/core/Utils.h @@ -654,6 +654,20 @@ inline bool is_data_type_fixed_point(DataType dt) } } +/** Create a string with the float in full precision. + * + * @param val Floating point value + * + * @return String with the floating point value. + */ +inline std::string float_to_string_with_full_precision(float val) +{ + std::stringstream ss; + ss.precision(std::numeric_limits<float>::digits10 + 1); + ss << val; + return ss.str(); +} + /** Print consecutive elements to an output stream. * * @param[out] s Output stream to print the elements to. diff --git a/src/core/CL/kernels/CLNormalizationLayerKernel.cpp b/src/core/CL/kernels/CLNormalizationLayerKernel.cpp index a0607c2ba0..b382e9d510 100644 --- a/src/core/CL/kernels/CLNormalizationLayerKernel.cpp +++ b/src/core/CL/kernels/CLNormalizationLayerKernel.cpp @@ -83,9 +83,9 @@ void CLNormalizationLayerKernel::configure(const ICLTensor *input, const ICLTens { build_opts.emplace(("-DFIXED_POINT_POSITION=" + support::cpp11::to_string(input->info()->fixed_point_position()))); } - build_opts.emplace(("-DCOEFF=" + support::cpp11::to_string(norm_info.scale_coeff()))); - build_opts.emplace(("-DBETA=" + support::cpp11::to_string(norm_info.beta()))); - build_opts.emplace(("-DKAPPA=" + support::cpp11::to_string(norm_info.kappa()))); + build_opts.emplace(("-DCOEFF=" + float_to_string_with_full_precision(norm_info.scale_coeff()))); + build_opts.emplace(("-DBETA=" + float_to_string_with_full_precision(norm_info.beta()))); + build_opts.emplace(("-DKAPPA=" + float_to_string_with_full_precision(norm_info.kappa()))); build_opts.emplace(("-DVEC_SIZE=" + support::cpp11::to_string(num_elems_processed_per_iteration))); // Create kernel |