aboutsummaryrefslogtreecommitdiff
path: root/src/armnn/backends/ClWorkloads
diff options
context:
space:
mode:
authorarovir01 <Aron.Virginas-Tar@arm.com>2018-08-28 17:40:45 +0100
committerMatthew Bentham <matthew.bentham@arm.com>2018-09-17 17:21:21 +0100
commita68241066c3e797dab70f515d2c55aaa74abf564 (patch)
tree9f5b70a02dcd7d5d61d58e2bf235ee473be53ce5 /src/armnn/backends/ClWorkloads
parentc577f2c6a3b4ddb6ba87a882723c53a248afbeba (diff)
downloadarmnn-a68241066c3e797dab70f515d2c55aaa74abf564.tar.gz
IVGCVSW-1324: Make biases truly optional for Conv2d and DepthwiseConvolution
!android-nn-driver:145961 Change-Id: I039ab0adc61725859514246365b5e5b5fa603eaa
Diffstat (limited to 'src/armnn/backends/ClWorkloads')
-rw-r--r--src/armnn/backends/ClWorkloads/ClConvolution2dBaseWorkload.cpp7
-rw-r--r--src/armnn/backends/ClWorkloads/ClConvolution2dBaseWorkload.hpp4
-rw-r--r--src/armnn/backends/ClWorkloads/ClDepthwiseConvolutionBaseWorkload.cpp7
-rw-r--r--src/armnn/backends/ClWorkloads/ClDepthwiseConvolutionBaseWorkload.hpp4
4 files changed, 16 insertions, 6 deletions
diff --git a/src/armnn/backends/ClWorkloads/ClConvolution2dBaseWorkload.cpp b/src/armnn/backends/ClWorkloads/ClConvolution2dBaseWorkload.cpp
index 9851a22dc6..be4c33500e 100644
--- a/src/armnn/backends/ClWorkloads/ClConvolution2dBaseWorkload.cpp
+++ b/src/armnn/backends/ClWorkloads/ClConvolution2dBaseWorkload.cpp
@@ -17,17 +17,20 @@ arm_compute::Status ClConvolution2dWorkloadValidate(const TensorInfo& input,
const TensorInfo& output,
const Convolution2dDescriptor& descriptor,
const TensorInfo& weights,
- const TensorInfo& biases)
+ const boost::optional<TensorInfo>& biases)
{
const arm_compute::TensorInfo aclInputInfo = BuildArmComputeTensorInfo(input);
const arm_compute::TensorInfo aclOutputInfo = BuildArmComputeTensorInfo(output);
const arm_compute::TensorInfo aclWeightsInfo = BuildArmComputeTensorInfo(weights);
+
arm_compute::TensorInfo aclBiasesInfo;
arm_compute::TensorInfo *optionalAclBiasesInfo = nullptr;
if (descriptor.m_BiasEnabled)
{
- aclBiasesInfo = BuildArmComputeTensorInfo(biases);
+ BOOST_ASSERT(biases.is_initialized());
+
+ aclBiasesInfo = BuildArmComputeTensorInfo(biases.get());
optionalAclBiasesInfo = &aclBiasesInfo;
}
diff --git a/src/armnn/backends/ClWorkloads/ClConvolution2dBaseWorkload.hpp b/src/armnn/backends/ClWorkloads/ClConvolution2dBaseWorkload.hpp
index c4ef152361..c79e476dd3 100644
--- a/src/armnn/backends/ClWorkloads/ClConvolution2dBaseWorkload.hpp
+++ b/src/armnn/backends/ClWorkloads/ClConvolution2dBaseWorkload.hpp
@@ -7,6 +7,8 @@
#include "backends/ClWorkloadUtils.hpp"
+#include <boost/optional.hpp>
+
namespace armnn
{
@@ -14,6 +16,6 @@ arm_compute::Status ClConvolution2dWorkloadValidate(const TensorInfo& input,
const TensorInfo& output,
const Convolution2dDescriptor& descriptor,
const TensorInfo& weights,
- const TensorInfo& biases);
+ const boost::optional<TensorInfo>& biases);
} //namespace armnn
diff --git a/src/armnn/backends/ClWorkloads/ClDepthwiseConvolutionBaseWorkload.cpp b/src/armnn/backends/ClWorkloads/ClDepthwiseConvolutionBaseWorkload.cpp
index cfb8485039..5a5775487b 100644
--- a/src/armnn/backends/ClWorkloads/ClDepthwiseConvolutionBaseWorkload.cpp
+++ b/src/armnn/backends/ClWorkloads/ClDepthwiseConvolutionBaseWorkload.cpp
@@ -21,7 +21,7 @@ arm_compute::Status ClDepthwiseConvolutionWorkloadValidate(const TensorInfo& inp
const TensorInfo& output,
const DepthwiseConvolution2dDescriptor& descriptor,
const TensorInfo& weights,
- const TensorInfo& biases)
+ const boost::optional<TensorInfo>& biases)
{
const arm_compute::TensorInfo aclInputInfo = BuildArmComputeTensorInfo(input);
const arm_compute::TensorInfo aclOutputInfo = BuildArmComputeTensorInfo(output);
@@ -29,9 +29,12 @@ arm_compute::Status ClDepthwiseConvolutionWorkloadValidate(const TensorInfo& inp
arm_compute::TensorInfo aclBiasesInfo;
arm_compute::TensorInfo *optionalAclBiasesInfo = nullptr;
+
if (descriptor.m_BiasEnabled)
{
- aclBiasesInfo = BuildArmComputeTensorInfo(biases);
+ BOOST_ASSERT(biases.is_initialized());
+
+ aclBiasesInfo = BuildArmComputeTensorInfo(biases.get());
optionalAclBiasesInfo = &aclBiasesInfo;
}
diff --git a/src/armnn/backends/ClWorkloads/ClDepthwiseConvolutionBaseWorkload.hpp b/src/armnn/backends/ClWorkloads/ClDepthwiseConvolutionBaseWorkload.hpp
index a879efc89e..502d570552 100644
--- a/src/armnn/backends/ClWorkloads/ClDepthwiseConvolutionBaseWorkload.hpp
+++ b/src/armnn/backends/ClWorkloads/ClDepthwiseConvolutionBaseWorkload.hpp
@@ -7,6 +7,8 @@
#include "backends/ClWorkloadUtils.hpp"
+#include <boost/optional.hpp>
+
namespace armnn
{
@@ -14,7 +16,7 @@ arm_compute::Status ClDepthwiseConvolutionWorkloadValidate(const TensorInfo& inp
const TensorInfo& output,
const DepthwiseConvolution2dDescriptor& descriptor,
const TensorInfo& weights,
- const TensorInfo& biases);
+ const boost::optional<TensorInfo>& biases);
template<armnn::DataType... dataTypes>
class ClDepthwiseConvolutionBaseWorkload : public TypedWorkload<DepthwiseConvolution2dQueueDescriptor, dataTypes...>