diff options
author | Georgios Pinitas <georgios.pinitas@arm.com> | 2019-12-16 19:23:02 +0000 |
---|---|---|
committer | Georgios Pinitas <georgios.pinitas@arm.com> | 2019-12-17 16:25:48 +0000 |
commit | 27f223db96c6f5389b3e11a64d815edbd85dfd4c (patch) | |
tree | 85d7d7369b571e1c1fbd1a1ff469489e2330fbca | |
parent | 92ad0caed615cac9ed343d44d3c1253ba2b6fc70 (diff) | |
download | ComputeLibrary-27f223db96c6f5389b3e11a64d815edbd85dfd4c.tar.gz |
COMPMID-2819: Perform sqrt in double domain for L2 pooling.
Signed-off-by: Georgios Pinitas <georgios.pinitas@arm.com>
Change-Id: I51d50ceda903c4322b659cd872d041d7db73c335
Reviewed-on: https://review.mlplatform.org/c/2481
-rw-r--r-- | src/core/NEON/kernels/NEPoolingLayerKernel.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/core/NEON/kernels/NEPoolingLayerKernel.cpp b/src/core/NEON/kernels/NEPoolingLayerKernel.cpp index aaeb33f120..4af5424a77 100644 --- a/src/core/NEON/kernels/NEPoolingLayerKernel.cpp +++ b/src/core/NEON/kernels/NEPoolingLayerKernel.cpp @@ -1578,7 +1578,12 @@ void NEPoolingLayerKernel::poolingMxN_f32_nhwc(const Window &window_input, const // Calculate square-root in case of l2 pooling if(pooling_type == PoolingType::L2) { - vres = vmulq_f32(vres, vinvsqrtq_f32(vres)); + float32x4_t l2_res = { static_cast<float>(sqrt(vgetq_lane_f32(vres, 0))), + static_cast<float>(sqrt(vgetq_lane_f32(vres, 1))), + static_cast<float>(sqrt(vgetq_lane_f32(vres, 2))), + static_cast<float>(sqrt(vgetq_lane_f32(vres, 3))) + }; + vres = l2_res; } // Store result |