aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTeresa Charlin <teresa.charlinreyes@arm.com>2023-07-20 16:00:30 +0100
committerNikhil Raj Arm <nikhil.raj@arm.com>2023-07-21 08:15:11 +0000
commit9edde5db299858b9f852688e2d30385790a7c88e (patch)
treedc07329cf4e2e37b85a49880ad032133b755778f
parent47016c0c74fc97cf51f90555a11238332fe9406c (diff)
downloadarmnn-9edde5db299858b9f852688e2d30385790a7c88e.tar.gz
IVGCVSW-7825 block non const bias on CL CONV2D.
* There's currently a problem with using a non const bias value in CLConvolution2d. We will block it for the moment. Change-Id: Iedccea44931a8826e2c1b295bbc46592d8ac3ef8 Signed-off-by: Teresa Charlin <teresa.charlinreyes@arm.com>
-rw-r--r--src/backends/cl/workloads/ClConvolution2dWorkload.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/backends/cl/workloads/ClConvolution2dWorkload.cpp b/src/backends/cl/workloads/ClConvolution2dWorkload.cpp
index 32152b5834..00e39bdedf 100644
--- a/src/backends/cl/workloads/ClConvolution2dWorkload.cpp
+++ b/src/backends/cl/workloads/ClConvolution2dWorkload.cpp
@@ -46,6 +46,12 @@ arm_compute::Status ClConvolution2dWorkloadValidate(const TensorInfo& input,
return arm_compute::Status{arm_compute::ErrorCode::RUNTIME_ERROR,
"ArmNN ClConvolution2dWorkload has empty bias value."};
}
+ // There's currently a problem with non const bias, so we'll explicitly block it here.
+ if (!biases.value().IsConstant())
+ {
+ return arm_compute::Status{arm_compute::ErrorCode::RUNTIME_ERROR,
+ "ArmNN ClDepthwiseConv2dWorkload does not support non constant bias."};
+ }
aclBiasesInfo = BuildArmComputeTensorInfo(biases.value(), descriptor.m_DataLayout);
aclBiasesInfo.set_are_values_constant(biases.value().IsConstant());
optionalAclBiasesInfo = &aclBiasesInfo;
@@ -92,7 +98,8 @@ ClConvolution2dWorkload::ClConvolution2dWorkload(const Convolution2dQueueDescrip
{
arm_compute::ICLTensor& bias = static_cast<IClTensorHandle*>(m_Data.m_Inputs[2])->GetTensor();
bias.info()->set_are_values_constant(info.m_InputTensorInfos[2].IsConstant());
-
+ // We assume here that NeonConvolution2dWorkloadValidate has been called before the constructor.
+ ARMNN_ASSERT(info.m_InputTensorInfos[2].IsConstant() == true);
m_BiasProxy = std::make_unique<ICLTensorProxy>(&bias);
}