diff options
Diffstat (limited to 'src/armnn/backends/NeonWorkloads')
4 files changed, 20 insertions, 11 deletions
diff --git a/src/armnn/backends/NeonWorkloads/NeonConvolution2dBaseWorkload.cpp b/src/armnn/backends/NeonWorkloads/NeonConvolution2dBaseWorkload.cpp index e76afb6cf7..e1556c292c 100644 --- a/src/armnn/backends/NeonWorkloads/NeonConvolution2dBaseWorkload.cpp +++ b/src/armnn/backends/NeonWorkloads/NeonConvolution2dBaseWorkload.cpp @@ -21,17 +21,20 @@ arm_compute::Status NeonConvolution2dWorkloadValidate(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/NeonWorkloads/NeonConvolution2dBaseWorkload.hpp b/src/armnn/backends/NeonWorkloads/NeonConvolution2dBaseWorkload.hpp index 524d2c90b6..de559395c2 100644 --- a/src/armnn/backends/NeonWorkloads/NeonConvolution2dBaseWorkload.hpp +++ b/src/armnn/backends/NeonWorkloads/NeonConvolution2dBaseWorkload.hpp @@ -5,15 +5,16 @@ #pragma once -#include <backends/Workload.hpp> -#include <backends/NeonWorkloadUtils.hpp> - -#include "backends/CpuTensorHandle.hpp" #include "backends/ArmComputeTensorUtils.hpp" +#include "backends/CpuTensorHandle.hpp" #include "backends/NeonLayerSupport.hpp" +#include "backends/NeonWorkloadUtils.hpp" +#include "backends/Workload.hpp" #include "arm_compute/runtime/MemoryManagerOnDemand.h" +#include <boost/optional.hpp> + #include <memory> namespace armnn @@ -23,7 +24,7 @@ arm_compute::Status NeonConvolution2dWorkloadValidate(const TensorInfo& input, const TensorInfo& output, const Convolution2dDescriptor& descriptor, const TensorInfo& weights, - const TensorInfo& biases); + const boost::optional<TensorInfo>& biases); template<armnn::DataType... dataTypes> class NeonConvolution2dBaseWorkload : public TypedWorkload<Convolution2dQueueDescriptor, dataTypes...> diff --git a/src/armnn/backends/NeonWorkloads/NeonDepthwiseConvolutionBaseWorkload.cpp b/src/armnn/backends/NeonWorkloads/NeonDepthwiseConvolutionBaseWorkload.cpp index 58d6061537..26705c01a2 100644 --- a/src/armnn/backends/NeonWorkloads/NeonDepthwiseConvolutionBaseWorkload.cpp +++ b/src/armnn/backends/NeonWorkloads/NeonDepthwiseConvolutionBaseWorkload.cpp @@ -14,7 +14,7 @@ arm_compute::Status NeonDepthwiseConvolutionWorkloadValidate(const TensorInfo& i const TensorInfo& output, const DepthwiseConvolution2dDescriptor& descriptor, const TensorInfo& weights, - const TensorInfo& biases) + const boost::optional<TensorInfo>& biases) { const arm_compute::TensorInfo aclInputInfo = armcomputetensorutils::BuildArmComputeTensorInfo(input); @@ -25,9 +25,12 @@ arm_compute::Status NeonDepthwiseConvolutionWorkloadValidate(const TensorInfo& i arm_compute::TensorInfo aclBiasesInfo; arm_compute::TensorInfo *optionalAclBiasesInfo = nullptr; + if (descriptor.m_BiasEnabled) { - aclBiasesInfo = armcomputetensorutils::BuildArmComputeTensorInfo(biases); + BOOST_ASSERT(biases.is_initialized()); + + aclBiasesInfo = armcomputetensorutils::BuildArmComputeTensorInfo(biases.get()); optionalAclBiasesInfo = &aclBiasesInfo; } @@ -43,4 +46,4 @@ arm_compute::Status NeonDepthwiseConvolutionWorkloadValidate(const TensorInfo& i aclDepthMultiplier); } -} +}
\ No newline at end of file diff --git a/src/armnn/backends/NeonWorkloads/NeonDepthwiseConvolutionBaseWorkload.hpp b/src/armnn/backends/NeonWorkloads/NeonDepthwiseConvolutionBaseWorkload.hpp index 0cead354f8..b19e77ef95 100644 --- a/src/armnn/backends/NeonWorkloads/NeonDepthwiseConvolutionBaseWorkload.hpp +++ b/src/armnn/backends/NeonWorkloads/NeonDepthwiseConvolutionBaseWorkload.hpp @@ -7,6 +7,8 @@ #include "backends/NeonWorkloadUtils.hpp" +#include <boost/optional.hpp> + namespace armnn { @@ -14,6 +16,6 @@ arm_compute::Status NeonDepthwiseConvolutionWorkloadValidate(const TensorInfo& i const TensorInfo& output, const DepthwiseConvolution2dDescriptor& descriptor, const TensorInfo& weights, - const TensorInfo& biases); + const boost::optional<TensorInfo>& biases); } // namespace armnn |