From f663d48716c3adb179d61055f56f25d11d9640e4 Mon Sep 17 00:00:00 2001 From: Teresa Charlin Date: Thu, 11 May 2023 15:31:00 +0100 Subject: IVGCVSW-7732 Enable dynamic bias in FullyConnected in CpuAcc and GpuAcc * Dynamic bias are supported by ACL for this layer. Signed-off-by: Teresa Charlin Change-Id: I428bd42a97e0c26c72f9925e3cb209c2fc9a650d --- src/backends/cl/workloads/ClFullyConnectedWorkload.cpp | 9 --------- src/backends/neon/workloads/NeonFullyConnectedWorkload.cpp | 9 --------- 2 files changed, 18 deletions(-) diff --git a/src/backends/cl/workloads/ClFullyConnectedWorkload.cpp b/src/backends/cl/workloads/ClFullyConnectedWorkload.cpp index 1f26b09964..727ae5634a 100644 --- a/src/backends/cl/workloads/ClFullyConnectedWorkload.cpp +++ b/src/backends/cl/workloads/ClFullyConnectedWorkload.cpp @@ -33,12 +33,6 @@ arm_compute::Status ClFullyConnectedWorkloadValidate(const TensorInfo& input, if (descriptor.m_BiasEnabled) { ARMNN_ASSERT(biases.has_value()); - // Same for bias as weights. We don't currently support non const. - if (!biases.value().IsConstant()) - { - return arm_compute::Status{arm_compute::ErrorCode::RUNTIME_ERROR, - "Arm NN ClFullyConnectedWorkload does not support non constant bias."}; - } aclBiases = BuildArmComputeTensorInfo(biases.value()); aclBiases.set_are_values_constant(biases.value().IsConstant()); optionalAclBiases = &aclBiases; @@ -74,9 +68,6 @@ ClFullyConnectedWorkload::ClFullyConnectedWorkload( { bias = &PolymorphicDowncast(m_Data.m_Inputs[2])->GetTensor(); bias->info()->set_are_values_constant(info.m_InputTensorInfos[2].IsConstant()); - - // We do not support dynamic bias - ARMNN_ASSERT(info.m_InputTensorInfos[2].IsConstant() == true); } const arm_compute::ActivationLayerInfo activationInfo = ConvertAdditionalInfoToAclActivationLayerInfo(descriptor); diff --git a/src/backends/neon/workloads/NeonFullyConnectedWorkload.cpp b/src/backends/neon/workloads/NeonFullyConnectedWorkload.cpp index ee3de807e6..12eff36cb7 100644 --- a/src/backends/neon/workloads/NeonFullyConnectedWorkload.cpp +++ b/src/backends/neon/workloads/NeonFullyConnectedWorkload.cpp @@ -38,12 +38,6 @@ arm_compute::Status NeonFullyConnectedWorkloadValidate(const TensorInfo& input, if (descriptor.m_BiasEnabled) { ARMNN_ASSERT(biases.has_value()); - // Same for bias as weights. We don't currently support non const. - if (!biases.value().IsConstant()) - { - return arm_compute::Status{arm_compute::ErrorCode::RUNTIME_ERROR, - "Arm NN NeonFullyConnectedWorkload does not support non constant bias."}; - } aclBiases = BuildArmComputeTensorInfo(biases.value()); aclBiases.set_are_values_constant(biases.value().IsConstant()); optionalAclBiases = &aclBiases; @@ -85,9 +79,6 @@ NeonFullyConnectedWorkload::NeonFullyConnectedWorkload(const FullyConnectedQueue m_BiasesTensorInfo = info.m_InputTensorInfos[2]; BuildArmComputeTensor(*m_BiasesTensor, m_BiasesTensorInfo); m_BiasesTensor->info()->set_are_values_constant(m_BiasesTensorInfo.IsConstant()); - - // We do not support dynamic bias - ARMNN_ASSERT(m_BiasesTensorInfo.IsConstant() == true); } const arm_compute::ActivationLayerInfo activationInfo = ConvertAdditionalInfoToAclActivationLayerInfo(descriptor); -- cgit v1.2.1