From 9edde5db299858b9f852688e2d30385790a7c88e Mon Sep 17 00:00:00 2001 From: Teresa Charlin Date: Thu, 20 Jul 2023 16:00:30 +0100 Subject: 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 --- src/backends/cl/workloads/ClConvolution2dWorkload.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) 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(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(&bias); } -- cgit v1.2.1