From e131a0b179babb03bf9e372a145fa464f916ff81 Mon Sep 17 00:00:00 2001 From: Sadik Armagan Date: Fri, 22 Nov 2019 12:52:28 +0000 Subject: IVGCVSW-4158 FP16 Mobilenet V1 and V2 30% regression on ArmNN on Mate20 * Enable FP16 mixed precision for Android Q Signed-off-by: Sadik Armagan Change-Id: I5ddb94b13385e1fec39e4407dffc8e4bc6b8d64a --- Android.mk | 1 + src/backends/cl/workloads/ClPooling2dWorkload.cpp | 7 +++---- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Android.mk b/Android.mk index f8dcb60fe5..d755d20201 100644 --- a/Android.mk +++ b/Android.mk @@ -235,6 +235,7 @@ endif # ARMNN_REF_ENABLED == 1 ifeq ($(Q_OR_LATER),1) LOCAL_CFLAGS += \ + -DARMNN_MIXED_PRECISION_FP16_POOLING \ -DBOOST_NO_AUTO_PTR endif # PLATFORM_VERSION == Q or later diff --git a/src/backends/cl/workloads/ClPooling2dWorkload.cpp b/src/backends/cl/workloads/ClPooling2dWorkload.cpp index bf899977d6..8400977b51 100644 --- a/src/backends/cl/workloads/ClPooling2dWorkload.cpp +++ b/src/backends/cl/workloads/ClPooling2dWorkload.cpp @@ -44,14 +44,13 @@ ClPooling2dWorkload::ClPooling2dWorkload( // enable fp_mixed_precision for the the FP16 cases that // accumulation reaches a limit beyond which there is no more increment of the value bool fpMixedPrecision = false; +#ifdef ARMNN_MIXED_PRECISION_FP16_POOLING if (input.info()->data_type() == arm_compute::DataType::F16 - && m_Data.m_Parameters.m_PoolType == PoolingAlgorithm::Average - && m_Data.m_Parameters.m_PoolWidth >= 100 - && input.info()->dimension(3) >= 5 - && input.info()->dimension(2) * input.info()->dimension(1) >= 3000) + && m_Data.m_Parameters.m_PoolType == PoolingAlgorithm::Average) { fpMixedPrecision = true; } +#endif arm_compute::PoolingLayerInfo layerInfo = BuildArmComputePoolingLayerInfo(m_Data.m_Parameters, fpMixedPrecision); -- cgit v1.2.1