From 027ce5b7234f694cb9047ac970aa1457d683c471 Mon Sep 17 00:00:00 2001 From: Georgios Pinitas Date: Thu, 8 Nov 2018 18:55:36 +0000 Subject: COMPMID-1451: Perform two steps in calculating sqrt in NEPoolingLayer Increases the steps for calculating invsqrt used in L2 pool by 1 to increase accuracy. Change-Id: Ib938a963809b07c30d47ec0675abae75bc086986 --- src/core/NEON/kernels/NEPoolingLayerKernel.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'src/core/NEON/kernels/NEPoolingLayerKernel.cpp') diff --git a/src/core/NEON/kernels/NEPoolingLayerKernel.cpp b/src/core/NEON/kernels/NEPoolingLayerKernel.cpp index fdd3410b40..f5d5281884 100644 --- a/src/core/NEON/kernels/NEPoolingLayerKernel.cpp +++ b/src/core/NEON/kernels/NEPoolingLayerKernel.cpp @@ -1828,8 +1828,7 @@ void NEPoolingLayerKernel::poolingMxN_f32_nhwc(const Window &window_input, const // Calculate square-root in case of l2 pooling if(pooling_type == PoolingType::L2) { - float32x4_t sqrt_reciprocal = vrsqrteq_f32(vres); - vres = vmulq_f32(vres, vmulq_f32(vrsqrtsq_f32(vmulq_f32(vres, sqrt_reciprocal), sqrt_reciprocal), sqrt_reciprocal)); + vres = vmulq_f32(vres, vinvsqrtq_f32(vres)); } // Store result -- cgit v1.2.1