From 5eec11db435a94ba5046ba74edc5c9c412a64e9d Mon Sep 17 00:00:00 2001 From: David Beck Date: Thu, 4 Oct 2018 15:43:17 +0100 Subject: IVGCVSW-1964 : replace optional biases with home-grown Optional !android-nn-driver:151788 Change-Id: Ibdc41d09b8df05e7a0360dcb8a060860dfb1bd99 --- src/backends/ILayerSupport.cpp | 4 ++-- src/backends/WorkloadFactory.cpp | 12 ++++++------ src/backends/cl/ClLayerSupport.cpp | 4 ++-- src/backends/cl/ClLayerSupport.hpp | 6 ++---- src/backends/cl/workloads/ClConvolution2dWorkload.cpp | 6 +++--- src/backends/cl/workloads/ClConvolution2dWorkload.hpp | 4 +--- .../cl/workloads/ClDepthwiseConvolutionBaseWorkload.cpp | 6 +++--- .../cl/workloads/ClDepthwiseConvolutionBaseWorkload.hpp | 3 +-- src/backends/neon/NeonLayerSupport.cpp | 4 ++-- src/backends/neon/NeonLayerSupport.hpp | 6 ++---- .../neon/workloads/NeonConvolution2dBaseWorkload.cpp | 6 +++--- .../neon/workloads/NeonConvolution2dBaseWorkload.hpp | 4 +--- .../neon/workloads/NeonDepthwiseConvolutionBaseWorkload.cpp | 6 +++--- .../neon/workloads/NeonDepthwiseConvolutionBaseWorkload.hpp | 4 +--- src/backends/reference/RefLayerSupport.cpp | 4 ++-- src/backends/reference/RefLayerSupport.hpp | 7 ++----- 16 files changed, 36 insertions(+), 50 deletions(-) (limited to 'src/backends') diff --git a/src/backends/ILayerSupport.cpp b/src/backends/ILayerSupport.cpp index c0446e93ba..ff4b80d22b 100644 --- a/src/backends/ILayerSupport.cpp +++ b/src/backends/ILayerSupport.cpp @@ -89,7 +89,7 @@ bool ILayerSupport::IsConvolution2dSupported(const TensorInfo& input, const TensorInfo& output, const Convolution2dDescriptor& descriptor, const TensorInfo& weights, - const boost::optional& biases, + const Optional& biases, char* reasonIfUnsupported, size_t reasonIfUnsupportedMaxLength) const { @@ -100,7 +100,7 @@ bool ILayerSupport::IsDepthwiseConvolutionSupported(const TensorInfo& input, const TensorInfo& output, const DepthwiseConvolution2dDescriptor& descriptor, const TensorInfo& weights, - const boost::optional& biases, + const Optional& biases, char* reasonIfUnsupported, size_t reasonIfUnsupportedMaxLength) const { diff --git a/src/backends/WorkloadFactory.cpp b/src/backends/WorkloadFactory.cpp index dc9c1bc624..05919d6d95 100644 --- a/src/backends/WorkloadFactory.cpp +++ b/src/backends/WorkloadFactory.cpp @@ -144,11 +144,11 @@ bool IWorkloadFactory::IsLayerSupported(Compute compute, const Convolution2dDescriptor& descriptor = cLayer->GetParameters(); // Construct optional biases object based on the value of m_BiasEnabled - boost::optional biases(boost::none); + Optional biases; if (descriptor.m_BiasEnabled) { - biases = boost::make_optional( - OverrideDataType(cLayer->m_Bias->GetTensorInfo(), GetBiasTypeFromWeightsType(dataType))); + biases = + OverrideDataType(cLayer->m_Bias->GetTensorInfo(), GetBiasTypeFromWeightsType(dataType)); } result = IsConvolution2dSupported(compute, @@ -181,11 +181,11 @@ bool IWorkloadFactory::IsLayerSupported(Compute compute, const DepthwiseConvolution2dDescriptor& descriptor = cLayer->GetParameters(); // Construct optional biases object based on the value of m_BiasEnabled - boost::optional biases(boost::none); + Optional biases; if (descriptor.m_BiasEnabled) { - biases = boost::make_optional( - OverrideDataType(cLayer->m_Bias->GetTensorInfo(), GetBiasTypeFromWeightsType(dataType))); + biases = + OverrideDataType(cLayer->m_Bias->GetTensorInfo(), GetBiasTypeFromWeightsType(dataType)); } result = IsDepthwiseConvolutionSupported(compute, diff --git a/src/backends/cl/ClLayerSupport.cpp b/src/backends/cl/ClLayerSupport.cpp index e23c70ec30..09dfab9924 100644 --- a/src/backends/cl/ClLayerSupport.cpp +++ b/src/backends/cl/ClLayerSupport.cpp @@ -212,7 +212,7 @@ bool IsConvolution2dSupportedCl(const TensorInfo& input, const TensorInfo& output, const Convolution2dDescriptor& descriptor, const TensorInfo& weights, - const boost::optional& biases, + const Optional& biases, std::string* reasonIfUnsupported) { FORWARD_WORKLOAD_VALIDATE_FUNC(ClConvolution2dWorkloadValidate, @@ -228,7 +228,7 @@ bool IsDepthwiseConvolutionSupportedCl(const TensorInfo& input, const TensorInfo& output, const DepthwiseConvolution2dDescriptor& descriptor, const TensorInfo& weights, - const boost::optional& biases, + const Optional& biases, std::string* reasonIfUnsupported) { FORWARD_WORKLOAD_VALIDATE_FUNC(ClDepthwiseConvolutionWorkloadValidate, diff --git a/src/backends/cl/ClLayerSupport.hpp b/src/backends/cl/ClLayerSupport.hpp index 80e8488b3b..314ac4c73f 100644 --- a/src/backends/cl/ClLayerSupport.hpp +++ b/src/backends/cl/ClLayerSupport.hpp @@ -9,8 +9,6 @@ #include #include -#include - namespace armnn { @@ -50,14 +48,14 @@ bool IsConvolution2dSupportedCl(const TensorInfo& input, const TensorInfo& output, const Convolution2dDescriptor& descriptor, const TensorInfo& weights, - const boost::optional& biases, + const Optional& biases, std::string* reasonIfUnsupported = nullptr); bool IsDepthwiseConvolutionSupportedCl(const TensorInfo& input, const TensorInfo& output, const DepthwiseConvolution2dDescriptor& descriptor, const TensorInfo& weights, - const boost::optional& biases, + const Optional& biases, std::string* reasonIfUnsupported = nullptr); bool IsDivisionSupportedCl(const TensorInfo& input0, diff --git a/src/backends/cl/workloads/ClConvolution2dWorkload.cpp b/src/backends/cl/workloads/ClConvolution2dWorkload.cpp index 521711becc..301859ee1b 100644 --- a/src/backends/cl/workloads/ClConvolution2dWorkload.cpp +++ b/src/backends/cl/workloads/ClConvolution2dWorkload.cpp @@ -24,7 +24,7 @@ arm_compute::Status ClConvolution2dWorkloadValidate(const TensorInfo& input, const TensorInfo& output, const Convolution2dDescriptor& descriptor, const TensorInfo& weights, - const boost::optional& biases) + const Optional& biases) { const arm_compute::TensorInfo aclInputInfo = BuildArmComputeTensorInfo(input, descriptor.m_DataLayout); const arm_compute::TensorInfo aclOutputInfo = BuildArmComputeTensorInfo(output, descriptor.m_DataLayout); @@ -35,9 +35,9 @@ arm_compute::Status ClConvolution2dWorkloadValidate(const TensorInfo& input, if (descriptor.m_BiasEnabled) { - BOOST_ASSERT(biases.is_initialized()); + BOOST_ASSERT(biases.has_value()); - aclBiasesInfo = BuildArmComputeTensorInfo(biases.get(), descriptor.m_DataLayout); + aclBiasesInfo = BuildArmComputeTensorInfo(biases.value(), descriptor.m_DataLayout); optionalAclBiasesInfo = &aclBiasesInfo; } diff --git a/src/backends/cl/workloads/ClConvolution2dWorkload.hpp b/src/backends/cl/workloads/ClConvolution2dWorkload.hpp index 14a39f3b25..a5de87639b 100644 --- a/src/backends/cl/workloads/ClConvolution2dWorkload.hpp +++ b/src/backends/cl/workloads/ClConvolution2dWorkload.hpp @@ -13,8 +13,6 @@ #include #include -#include - #include namespace armnn @@ -24,7 +22,7 @@ arm_compute::Status ClConvolution2dWorkloadValidate(const TensorInfo& input, const TensorInfo& output, const Convolution2dDescriptor& descriptor, const TensorInfo& weights, - const boost::optional& biases); + const Optional& biases); class ClConvolution2dWorkload : public BaseWorkload { diff --git a/src/backends/cl/workloads/ClDepthwiseConvolutionBaseWorkload.cpp b/src/backends/cl/workloads/ClDepthwiseConvolutionBaseWorkload.cpp index 5a036db922..53ac3bae99 100644 --- a/src/backends/cl/workloads/ClDepthwiseConvolutionBaseWorkload.cpp +++ b/src/backends/cl/workloads/ClDepthwiseConvolutionBaseWorkload.cpp @@ -21,7 +21,7 @@ arm_compute::Status ClDepthwiseConvolutionWorkloadValidate(const TensorInfo& inp const TensorInfo& output, const DepthwiseConvolution2dDescriptor& descriptor, const TensorInfo& weights, - const boost::optional& biases) + const Optional& biases) { const arm_compute::TensorInfo aclInputInfo = BuildArmComputeTensorInfo(input, descriptor.m_DataLayout); const arm_compute::TensorInfo aclOutputInfo = BuildArmComputeTensorInfo(output, descriptor.m_DataLayout); @@ -32,9 +32,9 @@ arm_compute::Status ClDepthwiseConvolutionWorkloadValidate(const TensorInfo& inp if (descriptor.m_BiasEnabled) { - BOOST_ASSERT(biases.is_initialized()); + BOOST_ASSERT(biases.has_value()); - aclBiasesInfo = BuildArmComputeTensorInfo(biases.get(), descriptor.m_DataLayout); + aclBiasesInfo = BuildArmComputeTensorInfo(biases.value(), descriptor.m_DataLayout); optionalAclBiasesInfo = &aclBiasesInfo; } diff --git a/src/backends/cl/workloads/ClDepthwiseConvolutionBaseWorkload.hpp b/src/backends/cl/workloads/ClDepthwiseConvolutionBaseWorkload.hpp index 9d5cde30b6..27aec8ecdd 100644 --- a/src/backends/cl/workloads/ClDepthwiseConvolutionBaseWorkload.hpp +++ b/src/backends/cl/workloads/ClDepthwiseConvolutionBaseWorkload.hpp @@ -6,7 +6,6 @@ #pragma once #include -#include #include @@ -17,7 +16,7 @@ arm_compute::Status ClDepthwiseConvolutionWorkloadValidate(const TensorInfo& inp const TensorInfo& output, const DepthwiseConvolution2dDescriptor& descriptor, const TensorInfo& weights, - const boost::optional& biases); + const Optional& biases); template class ClDepthwiseConvolutionBaseWorkload : public TypedWorkload diff --git a/src/backends/neon/NeonLayerSupport.cpp b/src/backends/neon/NeonLayerSupport.cpp index bc1f96be3f..ef70fbd370 100644 --- a/src/backends/neon/NeonLayerSupport.cpp +++ b/src/backends/neon/NeonLayerSupport.cpp @@ -198,7 +198,7 @@ bool IsConvolution2dSupportedNeon(const TensorInfo& input, const TensorInfo& output, const Convolution2dDescriptor& descriptor, const TensorInfo& weights, - const boost::optional& biases, + const Optional& biases, std::string* reasonIfUnsupported) { FORWARD_WORKLOAD_VALIDATE_FUNC(NeonConvolution2dWorkloadValidate, @@ -214,7 +214,7 @@ bool IsDepthwiseConvolutionSupportedNeon(const TensorInfo& input, const TensorInfo& output, const DepthwiseConvolution2dDescriptor& descriptor, const TensorInfo& weights, - const boost::optional& biases, + const Optional& biases, std::string* reasonIfUnsupported) { FORWARD_WORKLOAD_VALIDATE_FUNC(NeonDepthwiseConvolutionWorkloadValidate, diff --git a/src/backends/neon/NeonLayerSupport.hpp b/src/backends/neon/NeonLayerSupport.hpp index 439c45f59e..8b674c6460 100644 --- a/src/backends/neon/NeonLayerSupport.hpp +++ b/src/backends/neon/NeonLayerSupport.hpp @@ -8,8 +8,6 @@ #include #include -#include - namespace armnn { @@ -53,7 +51,7 @@ bool IsConvolution2dSupportedNeon(const TensorInfo& input, const TensorInfo& output, const Convolution2dDescriptor& descriptor, const TensorInfo& weights, - const boost::optional& biases, + const Optional& biases, std::string* reasonIfUnsupported = nullptr); @@ -61,7 +59,7 @@ bool IsDepthwiseConvolutionSupportedNeon(const TensorInfo& input, const TensorInfo& output, const DepthwiseConvolution2dDescriptor& descriptor, const TensorInfo& weights, - const boost::optional& biases, + const Optional& biases, std::string* reasonIfUnsupported = nullptr); bool IsDivisionSupportedNeon(const TensorInfo& input0, diff --git a/src/backends/neon/workloads/NeonConvolution2dBaseWorkload.cpp b/src/backends/neon/workloads/NeonConvolution2dBaseWorkload.cpp index 02edabfd9c..8da3e47249 100644 --- a/src/backends/neon/workloads/NeonConvolution2dBaseWorkload.cpp +++ b/src/backends/neon/workloads/NeonConvolution2dBaseWorkload.cpp @@ -21,7 +21,7 @@ arm_compute::Status NeonConvolution2dWorkloadValidate(const TensorInfo& input, const TensorInfo& output, const Convolution2dDescriptor& descriptor, const TensorInfo& weights, - const boost::optional& biases) + const Optional& biases) { const arm_compute::TensorInfo aclInputInfo = BuildArmComputeTensorInfo(input, descriptor.m_DataLayout); const arm_compute::TensorInfo aclOutputInfo = BuildArmComputeTensorInfo(output, descriptor.m_DataLayout); @@ -32,9 +32,9 @@ arm_compute::Status NeonConvolution2dWorkloadValidate(const TensorInfo& input, if (descriptor.m_BiasEnabled) { - BOOST_ASSERT(biases.is_initialized()); + BOOST_ASSERT(biases.has_value()); - aclBiasesInfo = BuildArmComputeTensorInfo(biases.get(), descriptor.m_DataLayout); + aclBiasesInfo = BuildArmComputeTensorInfo(biases.value(), descriptor.m_DataLayout); optionalAclBiasesInfo = &aclBiasesInfo; } diff --git a/src/backends/neon/workloads/NeonConvolution2dBaseWorkload.hpp b/src/backends/neon/workloads/NeonConvolution2dBaseWorkload.hpp index 6af89c1f01..1cd30c70f9 100644 --- a/src/backends/neon/workloads/NeonConvolution2dBaseWorkload.hpp +++ b/src/backends/neon/workloads/NeonConvolution2dBaseWorkload.hpp @@ -13,8 +13,6 @@ #include -#include - #include namespace armnn @@ -24,7 +22,7 @@ arm_compute::Status NeonConvolution2dWorkloadValidate(const TensorInfo& input, const TensorInfo& output, const Convolution2dDescriptor& descriptor, const TensorInfo& weights, - const boost::optional& biases); + const Optional& biases); template class NeonConvolution2dBaseWorkload : public TypedWorkload diff --git a/src/backends/neon/workloads/NeonDepthwiseConvolutionBaseWorkload.cpp b/src/backends/neon/workloads/NeonDepthwiseConvolutionBaseWorkload.cpp index ef60b3238d..aa535adec9 100644 --- a/src/backends/neon/workloads/NeonDepthwiseConvolutionBaseWorkload.cpp +++ b/src/backends/neon/workloads/NeonDepthwiseConvolutionBaseWorkload.cpp @@ -14,7 +14,7 @@ arm_compute::Status NeonDepthwiseConvolutionWorkloadValidate(const TensorInfo& i const TensorInfo& output, const DepthwiseConvolution2dDescriptor& descriptor, const TensorInfo& weights, - const boost::optional& biases) + const Optional& biases) { const arm_compute::TensorInfo aclInputInfo = armcomputetensorutils::BuildArmComputeTensorInfo(input, descriptor.m_DataLayout); @@ -28,9 +28,9 @@ arm_compute::Status NeonDepthwiseConvolutionWorkloadValidate(const TensorInfo& i if (descriptor.m_BiasEnabled) { - BOOST_ASSERT(biases.is_initialized()); + BOOST_ASSERT(biases.has_value()); - aclBiasesInfo = armcomputetensorutils::BuildArmComputeTensorInfo(biases.get(), descriptor.m_DataLayout); + aclBiasesInfo = armcomputetensorutils::BuildArmComputeTensorInfo(biases.value(), descriptor.m_DataLayout); optionalAclBiasesInfo = &aclBiasesInfo; } diff --git a/src/backends/neon/workloads/NeonDepthwiseConvolutionBaseWorkload.hpp b/src/backends/neon/workloads/NeonDepthwiseConvolutionBaseWorkload.hpp index 982992a363..ffee50861a 100644 --- a/src/backends/neon/workloads/NeonDepthwiseConvolutionBaseWorkload.hpp +++ b/src/backends/neon/workloads/NeonDepthwiseConvolutionBaseWorkload.hpp @@ -7,8 +7,6 @@ #include -#include - namespace armnn { @@ -16,6 +14,6 @@ arm_compute::Status NeonDepthwiseConvolutionWorkloadValidate(const TensorInfo& i const TensorInfo& output, const DepthwiseConvolution2dDescriptor& descriptor, const TensorInfo& weights, - const boost::optional& biases); + const Optional& biases); } // namespace armnn diff --git a/src/backends/reference/RefLayerSupport.cpp b/src/backends/reference/RefLayerSupport.cpp index 1ca3d5b6d6..a42efb748f 100644 --- a/src/backends/reference/RefLayerSupport.cpp +++ b/src/backends/reference/RefLayerSupport.cpp @@ -87,7 +87,7 @@ bool IsConvolution2dSupportedRef(const TensorInfo& input, const TensorInfo& output, const Convolution2dDescriptor& descriptor, const TensorInfo& weights, - const boost::optional& biases, + const Optional& biases, std::string* reasonIfUnsupported) { ignore_unused(descriptor); @@ -104,7 +104,7 @@ bool IsDepthwiseConvolutionSupportedRef(const TensorInfo& input, const TensorInfo& output, const DepthwiseConvolution2dDescriptor& descriptor, const TensorInfo& weights, - const boost::optional& biases, + const Optional& biases, std::string* reasonIfUnsupported) { ignore_unused(output); diff --git a/src/backends/reference/RefLayerSupport.hpp b/src/backends/reference/RefLayerSupport.hpp index 0fac886234..dcc5dd3ddf 100644 --- a/src/backends/reference/RefLayerSupport.hpp +++ b/src/backends/reference/RefLayerSupport.hpp @@ -8,9 +8,6 @@ #include #include #include -#include - -#include namespace armnn { @@ -46,14 +43,14 @@ bool IsConvolution2dSupportedRef(const TensorInfo& input, const TensorInfo& output, const Convolution2dDescriptor& descriptor, const TensorInfo& weights, - const boost::optional& biases, + const Optional& biases, std::string* reasonIfUnsupported = nullptr); bool IsDepthwiseConvolutionSupportedRef(const TensorInfo& input, const TensorInfo& output, const DepthwiseConvolution2dDescriptor& descriptor, const TensorInfo& weights, - const boost::optional& biases, + const Optional& biases, std::string* reasonIfUnsupported = nullptr); bool IsDivisionSupportedRef(const TensorInfo& input0, -- cgit v1.2.1