aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTeresa Charlin <teresa.charlinreyes@arm.com>2023-05-11 15:31:00 +0100
committerNarumol Prangnawarat <narumol.prangnawarat@arm.com>2023-05-23 13:27:10 +0000
commitf663d48716c3adb179d61055f56f25d11d9640e4 (patch)
tree23cc725c2c48caaa2a664ad75bf7e209e8521446
parentda341f789d57d5d6e308bddb2eb91465265276fa (diff)
downloadarmnn-f663d48716c3adb179d61055f56f25d11d9640e4.tar.gz
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 <teresa.charlinreyes@arm.com> Change-Id: I428bd42a97e0c26c72f9925e3cb209c2fc9a650d
-rw-r--r--src/backends/cl/workloads/ClFullyConnectedWorkload.cpp9
-rw-r--r--src/backends/neon/workloads/NeonFullyConnectedWorkload.cpp9
2 files changed, 0 insertions, 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<IClTensorHandle*>(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);