From 0663d66c64d8f1cb2b6158f9018c9ba19e2c504b Mon Sep 17 00:00:00 2001 From: Matthew Sloyan Date: Mon, 14 Sep 2020 11:47:26 +0100 Subject: IVGCVSW-5303 Remove some boost::numeric_cast from rest of ArmNN * Replaced with armnn/utility/NumericCast.hpp * Exclusions in TypeUtils.cpp and QuantizerVisitor.cpp * Excluded as requires float implementation in NumericCast.hpp Signed-off-by: Matthew Sloyan Change-Id: I5c4c60e7028e1a51bf9379457278d253fd37bc70 --- src/armnn/Descriptors.cpp | 8 ++++---- src/armnn/Graph.cpp | 7 ++++--- src/armnn/Layer.cpp | 8 ++++---- src/armnn/Layer.hpp | 5 ++--- src/armnn/Network.cpp | 1 - src/armnn/QuantizerVisitor.cpp | 2 ++ src/armnn/SubgraphView.cpp | 6 +++--- src/armnn/Tensor.cpp | 5 ++--- src/armnn/TypesUtils.cpp | 3 +-- src/armnn/layers/MeanLayer.cpp | 6 ++++-- src/armnn/layers/PreluLayer.cpp | 14 ++++++++------ src/armnn/layers/SliceLayer.cpp | 5 ++--- src/armnn/layers/StridedSliceLayer.cpp | 8 ++++---- src/armnn/test/CreateWorkload.hpp | 1 - src/armnn/test/GraphTests.cpp | 4 ++-- src/armnn/test/SubgraphViewTests.cpp | 15 ++++++++------- src/armnn/test/TensorHelpers.hpp | 1 - src/armnn/test/UnitTests.cpp | 3 ++- 18 files changed, 52 insertions(+), 50 deletions(-) (limited to 'src/armnn') diff --git a/src/armnn/Descriptors.cpp b/src/armnn/Descriptors.cpp index 6388d4a725..c6fbfff9f4 100644 --- a/src/armnn/Descriptors.cpp +++ b/src/armnn/Descriptors.cpp @@ -6,13 +6,13 @@ #include "armnn/Logging.hpp" #include +#include #include #include #include #include -#include namespace armnn { @@ -69,7 +69,7 @@ PermutationVector::PermutationVector(const ValueType *dimMappings, const SizeTyp } PermutationVector::PermutationVector(std::initializer_list dimMappings) - : PermutationVector(dimMappings.begin(), boost::numeric_cast(dimMappings.size())) + : PermutationVector(dimMappings.begin(), armnn::numeric_cast(dimMappings.size())) { } @@ -374,7 +374,7 @@ int StridedSliceDescriptor::GetStartForAxis(const TensorShape& inputShape, } } - const int axisSize = boost::numeric_cast(inputShape[axis]); + const int axisSize = armnn::numeric_cast(inputShape[axis]); if (start < 0) { start += (axisSize); @@ -408,7 +408,7 @@ int StridedSliceDescriptor::GetStopForAxis(const TensorShape& inputShape, } } - const int axisSize = boost::numeric_cast(inputShape[axis]); + const int axisSize = armnn::numeric_cast(inputShape[axis]); if (stop < 0) { stop += axisSize; diff --git a/src/armnn/Graph.cpp b/src/armnn/Graph.cpp index 2a60072597..a497a45da9 100644 --- a/src/armnn/Graph.cpp +++ b/src/armnn/Graph.cpp @@ -14,6 +14,7 @@ #include #include #include +#include #include @@ -384,7 +385,7 @@ void Graph::AddCompatibilityLayers(std::mapGetInputSlot(0))); // The input strategy of a compatibility layer is always DirectCompatibilty. - srcOutputSlot.SetEdgeStrategy(boost::numeric_cast(newSrcConnectionIndex), + srcOutputSlot.SetEdgeStrategy(armnn::numeric_cast(newSrcConnectionIndex), EdgeStrategy::DirectCompatibility); } } @@ -442,8 +443,8 @@ void Graph::ReplaceSubgraphConnections(const SubgraphView& subgraph, const Subgr const SubgraphView::InputSlots& subgraphInputSlots = subgraph.GetInputSlots(); const SubgraphView::OutputSlots& subgraphOutputSlots = subgraph.GetOutputSlots(); - unsigned int subgraphNumInputSlots = boost::numeric_cast(subgraphInputSlots.size()); - unsigned int subgraphNumOutputSlots = boost::numeric_cast(subgraphOutputSlots.size()); + unsigned int subgraphNumInputSlots = armnn::numeric_cast(subgraphInputSlots.size()); + unsigned int subgraphNumOutputSlots = armnn::numeric_cast(subgraphOutputSlots.size()); const SubgraphView::InputSlots& substituteSubgraphInputSlots = substituteSubgraph.GetInputSlots(); const SubgraphView::OutputSlots& substituteSubgraphOutputSlots = substituteSubgraph.GetOutputSlots(); diff --git a/src/armnn/Layer.cpp b/src/armnn/Layer.cpp index dc211b7f2f..2256e48c91 100644 --- a/src/armnn/Layer.cpp +++ b/src/armnn/Layer.cpp @@ -6,10 +6,10 @@ #include "Graph.hpp" #include +#include #include #include -#include #include #include @@ -31,7 +31,7 @@ void InputSlot::Insert(Layer& layer) // Connects inserted layer to parent. ARMNN_ASSERT(layer.GetNumInputSlots() == 1); int idx = prevSlot->Connect(layer.GetInputSlot(0)); - prevSlot->SetEdgeStrategy(boost::numeric_cast(idx), EdgeStrategy::Undefined); + prevSlot->SetEdgeStrategy(armnn::numeric_cast(idx), EdgeStrategy::Undefined); // Sets tensor info for inserted layer. const TensorInfo& tensorInfo = prevSlot->GetTensorInfo(); @@ -85,7 +85,7 @@ int OutputSlot::Connect(InputSlot& destination) destination.SetConnection(this); m_Connections.push_back(&destination); m_EdgeStrategies.push_back(EdgeStrategy::Undefined); - return boost::numeric_cast(m_Connections.size() - 1); + return armnn::numeric_cast(m_Connections.size() - 1); } void OutputSlot::Disconnect(InputSlot& slot) @@ -157,7 +157,7 @@ bool OutputSlot::operator==(const OutputSlot& other) const void OutputSlot::ValidateConnectionIndex(unsigned int index) const { - if (boost::numeric_cast(index) >= m_Connections.size()) + if (armnn::numeric_cast(index) >= m_Connections.size()) { throw InvalidArgumentException( boost::str(boost::format("GetConnection: Invalid index %1% provided") % index)); diff --git a/src/armnn/Layer.hpp b/src/armnn/Layer.hpp index d4a24e4925..fff57732aa 100644 --- a/src/armnn/Layer.hpp +++ b/src/armnn/Layer.hpp @@ -18,6 +18,7 @@ #include #include #include +#include #include #include @@ -28,8 +29,6 @@ #include #include -#include - namespace armnn { @@ -135,7 +134,7 @@ public: // IOutputSlot - unsigned int GetNumConnections() const override { return boost::numeric_cast(m_Connections.size()); } + unsigned int GetNumConnections() const override { return armnn::numeric_cast(m_Connections.size()); } const InputSlot* GetConnection(unsigned int index) const override; InputSlot* GetConnection(unsigned int index) override; diff --git a/src/armnn/Network.cpp b/src/armnn/Network.cpp index cd5f369271..1f59ed51a2 100644 --- a/src/armnn/Network.cpp +++ b/src/armnn/Network.cpp @@ -37,7 +37,6 @@ #include #include -#include namespace armnn { diff --git a/src/armnn/QuantizerVisitor.cpp b/src/armnn/QuantizerVisitor.cpp index a30a29db75..9fbdd9fc41 100644 --- a/src/armnn/QuantizerVisitor.cpp +++ b/src/armnn/QuantizerVisitor.cpp @@ -10,6 +10,8 @@ #include +#include + namespace armnn { diff --git a/src/armnn/SubgraphView.cpp b/src/armnn/SubgraphView.cpp index d65c677e38..92ba5dfe1f 100644 --- a/src/armnn/SubgraphView.cpp +++ b/src/armnn/SubgraphView.cpp @@ -7,9 +7,9 @@ #include "Graph.hpp" #include +#include #include -#include #include namespace armnn @@ -149,12 +149,12 @@ OutputSlot* SubgraphView::GetOutputSlot(unsigned int index) unsigned int SubgraphView::GetNumInputSlots() const { - return boost::numeric_cast(m_InputSlots.size()); + return armnn::numeric_cast(m_InputSlots.size()); } unsigned int SubgraphView::GetNumOutputSlots() const { - return boost::numeric_cast(m_OutputSlots.size()); + return armnn::numeric_cast(m_OutputSlots.size()); } const SubgraphView::Layers& SubgraphView::GetLayers() const diff --git a/src/armnn/Tensor.cpp b/src/armnn/Tensor.cpp index c2dd1d3ac0..449fdf1f04 100644 --- a/src/armnn/Tensor.cpp +++ b/src/armnn/Tensor.cpp @@ -9,8 +9,7 @@ #include "armnn/TypesUtils.hpp" #include - -#include +#include #include @@ -53,7 +52,7 @@ TensorShape::TensorShape(const unsigned int numDimensions, const unsigned int* c } TensorShape::TensorShape(std::initializer_list dimensionSizeList) - : TensorShape(boost::numeric_cast(dimensionSizeList.size()), dimensionSizeList.begin()) + : TensorShape(armnn::numeric_cast(dimensionSizeList.size()), dimensionSizeList.begin()) { } diff --git a/src/armnn/TypesUtils.cpp b/src/armnn/TypesUtils.cpp index 9e58dc8f29..dd27df9c0a 100644 --- a/src/armnn/TypesUtils.cpp +++ b/src/armnn/TypesUtils.cpp @@ -49,8 +49,7 @@ float armnn::Dequantize(QuantizedType value, float scale, int32_t offset) static_assert(IsQuantizedType(), "Not an integer type."); ARMNN_ASSERT(scale != 0.f); ARMNN_ASSERT(!IsNan(value)); - float dequantized = boost::numeric_cast(value - offset) * scale; - return dequantized; + return (boost::numeric_cast(value - offset)) * scale; } /// Explicit specialization of Quantize for int8_t diff --git a/src/armnn/layers/MeanLayer.cpp b/src/armnn/layers/MeanLayer.cpp index a1a3a40d95..0c5959ca0d 100644 --- a/src/armnn/layers/MeanLayer.cpp +++ b/src/armnn/layers/MeanLayer.cpp @@ -6,6 +6,8 @@ #include "MeanLayer.hpp" #include "LayerCloneBase.hpp" +#include + #include #include #include @@ -69,7 +71,7 @@ void MeanLayer::ValidateTensorShapesFromInputs() } else { - outputRank = input.GetNumDimensions() - boost::numeric_cast(m_Param.m_Axis.size()); + outputRank = input.GetNumDimensions() - armnn::numeric_cast(m_Param.m_Axis.size()); if (outputRank == 0) { outputRank = 1; @@ -85,7 +87,7 @@ void MeanLayer::ValidateTensorShapesFromInputs() { if (std::find(m_Param.m_Axis.begin(), m_Param.m_Axis.end(), i) == m_Param.m_Axis.end()) { - dimSizes[outputIndex] = boost::numeric_cast(input.GetShape()[i]); + dimSizes[outputIndex] = armnn::numeric_cast(input.GetShape()[i]); ++outputIndex; } else if (m_Param.m_KeepDims) diff --git a/src/armnn/layers/PreluLayer.cpp b/src/armnn/layers/PreluLayer.cpp index a57aa85147..365dd4fadc 100644 --- a/src/armnn/layers/PreluLayer.cpp +++ b/src/armnn/layers/PreluLayer.cpp @@ -7,6 +7,8 @@ #include "LayerCloneBase.hpp" +#include + #include #include #include @@ -52,15 +54,15 @@ std::vector PreluLayer::InferOutputShapes(const std::vector(inputShapeDimensions) - 1; - int alphaShapeIndex = boost::numeric_cast(alphaShapeDimensions) - 1; + int inputShapeIndex = armnn::numeric_cast(inputShapeDimensions) - 1; + int alphaShapeIndex = armnn::numeric_cast(alphaShapeDimensions) - 1; unsigned int outputShapeIndex = outputDimensions - 1; // Loop backwards through the common part of the shapes while (inputShapeIndex >= 0 && alphaShapeIndex >= 0) { - unsigned int inputDimension = inputShape[boost::numeric_cast(inputShapeIndex)]; - unsigned int alphaDimension = alphaShape[boost::numeric_cast(alphaShapeIndex)]; + unsigned int inputDimension = inputShape[armnn::numeric_cast(inputShapeIndex)]; + unsigned int alphaDimension = alphaShape[armnn::numeric_cast(alphaShapeIndex)]; // Check that the inputs are broadcast compatible ARMNN_ASSERT_MSG(inputDimension == alphaDimension || inputDimension == 1 || alphaDimension == 1, @@ -76,7 +78,7 @@ std::vector PreluLayer::InferOutputShapes(const std::vector= 0) { - outputShape[outputShapeIndex] = inputShape[boost::numeric_cast(inputShapeIndex)]; + outputShape[outputShapeIndex] = inputShape[armnn::numeric_cast(inputShapeIndex)]; inputShapeIndex--; outputShapeIndex--; @@ -85,7 +87,7 @@ std::vector PreluLayer::InferOutputShapes(const std::vector= 0) { - outputShape[outputShapeIndex] = alphaShape[boost::numeric_cast(alphaShapeIndex)]; + outputShape[outputShapeIndex] = alphaShape[armnn::numeric_cast(alphaShapeIndex)]; alphaShapeIndex--; outputShapeIndex--; diff --git a/src/armnn/layers/SliceLayer.cpp b/src/armnn/layers/SliceLayer.cpp index 0f1d4386d7..bfa16e5f9e 100644 --- a/src/armnn/layers/SliceLayer.cpp +++ b/src/armnn/layers/SliceLayer.cpp @@ -8,12 +8,11 @@ #include "LayerCloneBase.hpp" #include +#include #include #include -#include - namespace armnn { @@ -53,7 +52,7 @@ std::vector SliceLayer::InferOutputShapes(const std::vector(m_Param.m_Size.size()), m_Param.m_Size.data()); + TensorShape outputShape(armnn::numeric_cast(m_Param.m_Size.size()), m_Param.m_Size.data()); return std::vector({ outputShape }); } diff --git a/src/armnn/layers/StridedSliceLayer.cpp b/src/armnn/layers/StridedSliceLayer.cpp index 9b1706b335..957f5858b6 100644 --- a/src/armnn/layers/StridedSliceLayer.cpp +++ b/src/armnn/layers/StridedSliceLayer.cpp @@ -6,11 +6,11 @@ #include "LayerCloneBase.hpp" +#include + #include #include -#include - namespace armnn { @@ -82,7 +82,7 @@ std::vector StridedSliceLayer::InferOutputShapes( newSize = std::max(0, newSize); - outputShape.push_back(boost::numeric_cast(newSize)); + outputShape.push_back(armnn::numeric_cast(newSize)); } if (outputShape.size() == 0 && (inputShape.GetNumDimensions() - amountDimShrunk) == 0) @@ -91,7 +91,7 @@ std::vector StridedSliceLayer::InferOutputShapes( } return std::vector({ - TensorShape(boost::numeric_cast(outputShape.size()), &outputShape[0]) }); + TensorShape(armnn::numeric_cast(outputShape.size()), &outputShape[0]) }); } void StridedSliceLayer::ValidateTensorShapesFromInputs() diff --git a/src/armnn/test/CreateWorkload.hpp b/src/armnn/test/CreateWorkload.hpp index b13b9b538e..3f3cdc3986 100644 --- a/src/armnn/test/CreateWorkload.hpp +++ b/src/armnn/test/CreateWorkload.hpp @@ -19,7 +19,6 @@ #include #include -#include #include diff --git a/src/armnn/test/GraphTests.cpp b/src/armnn/test/GraphTests.cpp index 5a17c1c227..55a01fcc94 100644 --- a/src/armnn/test/GraphTests.cpp +++ b/src/armnn/test/GraphTests.cpp @@ -9,6 +9,7 @@ #include #include +#include #include #include @@ -16,7 +17,6 @@ #include #include -#include #include BOOST_AUTO_TEST_SUITE(Graph) @@ -299,7 +299,7 @@ static void TestGraphAfterAddingCopyLayers(const armnn::Graph& graph, const armn if (origEdge.first->GetNameStr() == edge.first->GetNameStr() && origEdge.second->GetNameStr() == edge.second->GetNameStr()) { - originalEdge = boost::numeric_cast(i); + originalEdge = armnn::numeric_cast(i); } } diff --git a/src/armnn/test/SubgraphViewTests.cpp b/src/armnn/test/SubgraphViewTests.cpp index a9467fb062..a8cb797d17 100644 --- a/src/armnn/test/SubgraphViewTests.cpp +++ b/src/armnn/test/SubgraphViewTests.cpp @@ -4,11 +4,12 @@ // #include - #include #include #include +#include + #include #include #include @@ -1374,8 +1375,8 @@ BOOST_AUTO_TEST_CASE(SingleSubgraph) if (subgraphs[0].get() != nullptr) { - unsigned int numInputSlots = boost::numeric_cast(subgraphs[0]->GetInputSlots().size()); - unsigned int numOutputSlots = boost::numeric_cast(subgraphs[0]->GetOutputSlots().size()); + unsigned int numInputSlots = armnn::numeric_cast(subgraphs[0]->GetInputSlots().size()); + unsigned int numOutputSlots = armnn::numeric_cast(subgraphs[0]->GetOutputSlots().size()); BOOST_TEST((numInputSlots == 1)); BOOST_TEST((numOutputSlots == 1)); @@ -1456,11 +1457,11 @@ BOOST_AUTO_TEST_CASE(MultipleSubgraphs) } ); - unsigned int numInputSlots1 = boost::numeric_cast(subgraphs[0]->GetInputSlots().size()); - unsigned int numOutputSlots1 = boost::numeric_cast(subgraphs[0]->GetOutputSlots().size()); + unsigned int numInputSlots1 = armnn::numeric_cast(subgraphs[0]->GetInputSlots().size()); + unsigned int numOutputSlots1 = armnn::numeric_cast(subgraphs[0]->GetOutputSlots().size()); - unsigned int numInputSlots2 = boost::numeric_cast(subgraphs[1]->GetInputSlots().size()); - unsigned int numOutputSlots2 = boost::numeric_cast(subgraphs[1]->GetOutputSlots().size()); + unsigned int numInputSlots2 = armnn::numeric_cast(subgraphs[1]->GetInputSlots().size()); + unsigned int numOutputSlots2 = armnn::numeric_cast(subgraphs[1]->GetOutputSlots().size()); // Save sub-graph connections for comparison after substitution IOutputSlot* subgraph1InputConn = subgraphs[0]->GetInputSlot(0)->GetConnection(); diff --git a/src/armnn/test/TensorHelpers.hpp b/src/armnn/test/TensorHelpers.hpp index 45360350dd..d67cd5b979 100644 --- a/src/armnn/test/TensorHelpers.hpp +++ b/src/armnn/test/TensorHelpers.hpp @@ -10,7 +10,6 @@ #include #include -#include #include #include #include diff --git a/src/armnn/test/UnitTests.cpp b/src/armnn/test/UnitTests.cpp index 032a49fb90..7b5ba37ae2 100644 --- a/src/armnn/test/UnitTests.cpp +++ b/src/armnn/test/UnitTests.cpp @@ -7,6 +7,7 @@ #include "UnitTests.hpp" #include +#include struct ConfigureLoggingFixture { @@ -34,7 +35,7 @@ struct DebugOutputSink : boost::iostreams::sink std::streamsize write(const char* s, std::streamsize n) { // The given string is not null-terminated, so we need to copy it. - std::string s2(s, boost::numeric_cast(n)); + std::string s2(s, armnn::numeric_cast(n)); OutputDebugString(s2.c_str()); return n; } -- cgit v1.2.1