From 171214c8ff275c90cd4f7fc23a34ec2c83b5ea39 Mon Sep 17 00:00:00 2001 From: Matthew Sloyan Date: Wed, 9 Sep 2020 09:07:37 +0100 Subject: IVGCVSW-5300 Remove some boost::numeric_cast from armnn/backends * Replaced with armnn/utility/NumericCast.hpp * Some exclusions in reference backend * Excluded as requires float implementation in NumericCast.hpp Signed-off-by: Matthew Sloyan Change-Id: I9e4e9cd502c865452128fa04415fd6f250baa855 --- src/backends/neon/workloads/NeonArgMinMaxWorkload.cpp | 5 +++-- src/backends/neon/workloads/NeonBatchToSpaceNdWorkload.cpp | 10 ++++++---- src/backends/neon/workloads/NeonDepthToSpaceWorkload.cpp | 7 +++---- src/backends/neon/workloads/NeonLstmFloatWorkload.cpp | 6 ++++-- src/backends/neon/workloads/NeonSpaceToBatchNdWorkload.cpp | 10 ++++++---- src/backends/neon/workloads/NeonSpaceToDepthWorkload.cpp | 6 ++++-- src/backends/neon/workloads/NeonStackWorkload.cpp | 7 +++---- src/backends/neon/workloads/NeonStridedSliceWorkload.cpp | 5 +++-- 8 files changed, 32 insertions(+), 24 deletions(-) (limited to 'src/backends/neon/workloads') diff --git a/src/backends/neon/workloads/NeonArgMinMaxWorkload.cpp b/src/backends/neon/workloads/NeonArgMinMaxWorkload.cpp index 0fb819db0b..6290ecce17 100644 --- a/src/backends/neon/workloads/NeonArgMinMaxWorkload.cpp +++ b/src/backends/neon/workloads/NeonArgMinMaxWorkload.cpp @@ -10,6 +10,7 @@ #include +#include #include #include @@ -36,7 +37,7 @@ arm_compute::Status NeonArgMinMaxWorkloadValidate(const TensorInfo& input, auto numDims = input.GetNumDimensions(); auto unsignedAxis = armnnUtils::GetUnsignedAxis(numDims, descriptor.m_Axis); - int aclAxis = boost::numeric_cast(CalcAclAxis(numDims, unsignedAxis)); + int aclAxis = armnn::numeric_cast(CalcAclAxis(numDims, unsignedAxis)); if (descriptor.m_Function == ArgMinMaxFunction::Max) { @@ -60,7 +61,7 @@ NeonArgMinMaxWorkload::NeonArgMinMaxWorkload(const ArgMinMaxQueueDescriptor& des auto numDims = info.m_InputTensorInfos[0].GetNumDimensions(); auto unsignedAxis = armnnUtils::GetUnsignedAxis(numDims, m_Data.m_Parameters.m_Axis); - int aclAxis = boost::numeric_cast(CalcAclAxis(numDims, unsignedAxis)); + int aclAxis = armnn::numeric_cast(CalcAclAxis(numDims, unsignedAxis)); auto layer = std::make_unique(); diff --git a/src/backends/neon/workloads/NeonBatchToSpaceNdWorkload.cpp b/src/backends/neon/workloads/NeonBatchToSpaceNdWorkload.cpp index d2f538745c..3d479ff80d 100644 --- a/src/backends/neon/workloads/NeonBatchToSpaceNdWorkload.cpp +++ b/src/backends/neon/workloads/NeonBatchToSpaceNdWorkload.cpp @@ -7,7 +7,9 @@ #include "NeonWorkloadUtils.hpp" +#include #include + #include namespace armnn @@ -23,8 +25,8 @@ arm_compute::Status NeonBatchToSpaceNdWorkloadValidate(const TensorInfo& input, const arm_compute::TensorInfo aclOutputInfo = BuildArmComputeTensorInfo(output, desc.m_DataLayout); // ArmNN blockShape is [H, W] Cl asks for W, H - int32_t blockHeight = boost::numeric_cast(desc.m_BlockShape[0]); - int32_t blockWidth = boost::numeric_cast(desc.m_BlockShape[1]); + int32_t blockHeight = armnn::numeric_cast(desc.m_BlockShape[0]); + int32_t blockWidth = armnn::numeric_cast(desc.m_BlockShape[1]); const arm_compute::Status aclStatus = arm_compute::NEBatchToSpaceLayer::validate(&aclInputInfo, blockWidth, @@ -49,8 +51,8 @@ NeonBatchToSpaceNdWorkload::NeonBatchToSpaceNdWorkload(const BatchToSpaceNdQueue output.info()->set_data_layout(aclDataLayout); // ArmNN blockShape is [H, W] Cl asks for W, H - int32_t blockHeight = boost::numeric_cast(desc.m_Parameters.m_BlockShape[0]); - int32_t blockWidth = boost::numeric_cast(desc.m_Parameters.m_BlockShape[1]); + int32_t blockHeight = armnn::numeric_cast(desc.m_Parameters.m_BlockShape[0]); + int32_t blockWidth = armnn::numeric_cast(desc.m_Parameters.m_BlockShape[1]); m_Layer.reset(new arm_compute::NEBatchToSpaceLayer()); m_Layer->configure(&input, blockWidth, blockHeight, &output); diff --git a/src/backends/neon/workloads/NeonDepthToSpaceWorkload.cpp b/src/backends/neon/workloads/NeonDepthToSpaceWorkload.cpp index 12e7d206bf..2c4a6517e7 100644 --- a/src/backends/neon/workloads/NeonDepthToSpaceWorkload.cpp +++ b/src/backends/neon/workloads/NeonDepthToSpaceWorkload.cpp @@ -8,10 +8,9 @@ #include "NeonWorkloadUtils.hpp" #include +#include #include -#include - namespace armnn { @@ -25,7 +24,7 @@ arm_compute::Status NeonDepthToSpaceWorkloadValidate(const TensorInfo& input, const arm_compute::TensorInfo aclInput = BuildArmComputeTensorInfo(input, dataLayout); const arm_compute::TensorInfo aclOutput = BuildArmComputeTensorInfo(output, dataLayout); - int32_t blockSize = boost::numeric_cast(descriptor.m_BlockSize); + int32_t blockSize = armnn::numeric_cast(descriptor.m_BlockSize); return arm_compute::NEDepthToSpaceLayer::validate(&aclInput, &aclOutput, blockSize); } @@ -42,7 +41,7 @@ NeonDepthToSpaceWorkload::NeonDepthToSpaceWorkload(const DepthToSpaceQueueDescri PolymorphicPointerDowncast(m_Data.m_Inputs[0])->GetTensor(); input.info()->set_data_layout(aclDataLayout); - int32_t blockSize = boost::numeric_cast(desc.m_Parameters.m_BlockSize); + int32_t blockSize = armnn::numeric_cast(desc.m_Parameters.m_BlockSize); arm_compute::ITensor& output = PolymorphicPointerDowncast(m_Data.m_Outputs[0])->GetTensor(); diff --git a/src/backends/neon/workloads/NeonLstmFloatWorkload.cpp b/src/backends/neon/workloads/NeonLstmFloatWorkload.cpp index d5f3c5de34..175e908817 100644 --- a/src/backends/neon/workloads/NeonLstmFloatWorkload.cpp +++ b/src/backends/neon/workloads/NeonLstmFloatWorkload.cpp @@ -8,6 +8,8 @@ #include "aclCommon/ArmComputeTensorUtils.hpp" +#include + #include "neon/NeonTensorHandle.hpp" namespace armnn @@ -131,8 +133,8 @@ NeonLstmFloatWorkload::NeonLstmFloatWorkload(const LstmQueueDescriptor &descript // Get the batch_size and the num_units from the cellStateIn dimensions const TensorInfo& inputTensorInfo = info.m_InputTensorInfos[2]; - const unsigned int batch_size = boost::numeric_cast(inputTensorInfo.GetShape()[0]); - const unsigned int num_units = boost::numeric_cast(inputTensorInfo.GetShape()[1]); + const unsigned int batch_size = armnn::numeric_cast(inputTensorInfo.GetShape()[0]); + const unsigned int num_units = armnn::numeric_cast(inputTensorInfo.GetShape()[1]); m_ScratchBuffer = std::make_unique(); if (m_Data.m_Parameters.m_CifgEnabled) diff --git a/src/backends/neon/workloads/NeonSpaceToBatchNdWorkload.cpp b/src/backends/neon/workloads/NeonSpaceToBatchNdWorkload.cpp index d68ab4c4ac..42dd49cdc1 100644 --- a/src/backends/neon/workloads/NeonSpaceToBatchNdWorkload.cpp +++ b/src/backends/neon/workloads/NeonSpaceToBatchNdWorkload.cpp @@ -7,7 +7,9 @@ #include "NeonWorkloadUtils.hpp" +#include #include + #include namespace armnn @@ -23,8 +25,8 @@ arm_compute::Status NeonSpaceToBatchNdWorkloadValidate(const TensorInfo& input, const arm_compute::TensorInfo aclOutputInfo = BuildArmComputeTensorInfo(output, descriptor.m_DataLayout); // ArmNN blockShape is [H, W] Cl asks for W, H - int32_t blockHeight = boost::numeric_cast(descriptor.m_BlockShape[0]); - int32_t blockWidth = boost::numeric_cast(descriptor.m_BlockShape[1]); + int32_t blockHeight = armnn::numeric_cast(descriptor.m_BlockShape[0]); + int32_t blockWidth = armnn::numeric_cast(descriptor.m_BlockShape[1]); arm_compute::Size2D paddingLeftTop = BuildArmComputeSize2D( descriptor.m_PadList[1].first, descriptor.m_PadList[0].first); @@ -51,8 +53,8 @@ NeonSpaceToBatchNdWorkload::NeonSpaceToBatchNdWorkload(const SpaceToBatchNdQueue PolymorphicPointerDowncast(m_Data.m_Outputs[0])->GetTensor(); // ArmNN blockShape is [H, W] Cl asks for W, H - int32_t blockHeight = boost::numeric_cast(m_Data.m_Parameters.m_BlockShape[0]); - int32_t blockWidth = boost::numeric_cast(m_Data.m_Parameters.m_BlockShape[1]); + int32_t blockHeight = armnn::numeric_cast(m_Data.m_Parameters.m_BlockShape[0]); + int32_t blockWidth = armnn::numeric_cast(m_Data.m_Parameters.m_BlockShape[1]); arm_compute::Size2D paddingLeftTop = BuildArmComputeSize2D( m_Data.m_Parameters.m_PadList[1].first, m_Data.m_Parameters.m_PadList[0].first); diff --git a/src/backends/neon/workloads/NeonSpaceToDepthWorkload.cpp b/src/backends/neon/workloads/NeonSpaceToDepthWorkload.cpp index 2982cd181d..43c991cfb2 100644 --- a/src/backends/neon/workloads/NeonSpaceToDepthWorkload.cpp +++ b/src/backends/neon/workloads/NeonSpaceToDepthWorkload.cpp @@ -6,7 +6,9 @@ #include "NeonSpaceToDepthWorkload.hpp" #include "NeonWorkloadUtils.hpp" +#include #include + #include namespace armnn @@ -22,7 +24,7 @@ arm_compute::Status NeonSpaceToDepthWorkloadValidate(const TensorInfo& input, const arm_compute::TensorInfo aclInput = BuildArmComputeTensorInfo(input, dataLayout); const arm_compute::TensorInfo aclOutput = BuildArmComputeTensorInfo(output, dataLayout); - int32_t blockSize = boost::numeric_cast(descriptor.m_BlockSize); + int32_t blockSize = armnn::numeric_cast(descriptor.m_BlockSize); return arm_compute::NESpaceToDepthLayer::validate(&aclInput, &aclOutput, blockSize); } @@ -38,7 +40,7 @@ NeonSpaceToDepthWorkload::NeonSpaceToDepthWorkload(const SpaceToDepthQueueDescri arm_compute::ITensor& input = PolymorphicDowncast(m_Data.m_Inputs[0])->GetTensor(); input.info()->set_data_layout(aclDataLayout); - int32_t blockSize = boost::numeric_cast(desc.m_Parameters.m_BlockSize); + int32_t blockSize = armnn::numeric_cast(desc.m_Parameters.m_BlockSize); arm_compute::ITensor& output = PolymorphicDowncast(m_Data.m_Outputs[0])->GetTensor(); output.info()->set_data_layout(aclDataLayout); diff --git a/src/backends/neon/workloads/NeonStackWorkload.cpp b/src/backends/neon/workloads/NeonStackWorkload.cpp index a3ba8d888d..696de65620 100644 --- a/src/backends/neon/workloads/NeonStackWorkload.cpp +++ b/src/backends/neon/workloads/NeonStackWorkload.cpp @@ -6,12 +6,11 @@ #include "NeonWorkloadUtils.hpp" #include +#include #include #include #include -#include - namespace armnn { using namespace armcomputetensorutils; @@ -20,8 +19,8 @@ namespace { int CalcAxis(const unsigned int axis, const unsigned int inputDimensions) { - const int intAxis = boost::numeric_cast(axis); - return boost::numeric_cast(inputDimensions) - intAxis; + const int intAxis = armnn::numeric_cast(axis); + return armnn::numeric_cast(inputDimensions) - intAxis; } } //namespace diff --git a/src/backends/neon/workloads/NeonStridedSliceWorkload.cpp b/src/backends/neon/workloads/NeonStridedSliceWorkload.cpp index 282005c7cc..d0aee07f9b 100644 --- a/src/backends/neon/workloads/NeonStridedSliceWorkload.cpp +++ b/src/backends/neon/workloads/NeonStridedSliceWorkload.cpp @@ -9,6 +9,7 @@ #include #include #include +#include #include #include @@ -30,7 +31,7 @@ arm_compute::Status NeonStridedSliceWorkloadValidate(const TensorInfo& input, descriptor.m_End, descriptor.m_Stride); - auto numDimensions = boost::numeric_cast(input.GetNumDimensions()); + auto numDimensions = armnn::numeric_cast(input.GetNumDimensions()); int32_t begin_mask = ConvertMaskToACLFormat(descriptor.m_BeginMask, numDimensions); int32_t end_mask = ConvertMaskToACLFormat(descriptor.m_EndMask, numDimensions); int32_t shrink_axis_mask = ConvertMaskToACLFormat(descriptor.m_ShrinkAxisMask, numDimensions); @@ -62,7 +63,7 @@ NeonStridedSliceWorkload::NeonStridedSliceWorkload(const StridedSliceQueueDescri m_Data.m_Parameters.m_End, m_Data.m_Parameters.m_Stride); - auto numDimensions = boost::numeric_cast(info.m_InputTensorInfos[0].GetNumDimensions()); + auto numDimensions = armnn::numeric_cast(info.m_InputTensorInfos[0].GetNumDimensions()); int32_t begin_mask = ConvertMaskToACLFormat(m_Data.m_Parameters.m_BeginMask, numDimensions); int32_t end_mask = ConvertMaskToACLFormat(m_Data.m_Parameters.m_EndMask, numDimensions); int32_t shrink_axis_mask = ConvertMaskToACLFormat(m_Data.m_Parameters.m_ShrinkAxisMask, numDimensions); -- cgit v1.2.1