diff options
author | Aron Virginas-Tar <Aron.Virginas-Tar@arm.com> | 2019-04-09 14:08:06 +0100 |
---|---|---|
committer | Aron Virginas-Tar <Aron.Virginas-Tar@arm.com> | 2019-04-10 15:54:26 +0100 |
commit | d4f0fead9e014f14e1435281f91fc7a48d02d6a1 (patch) | |
tree | a65cbc44024d289e34400df094719e285764a322 /src | |
parent | f30f7d32b22020f80b21da7b008d8302cee9d395 (diff) | |
download | armnn-d4f0fead9e014f14e1435281f91fc7a48d02d6a1.tar.gz |
IVGCVSW-2947 Remove boost dependency from include/TypesUtils.hpp
!android-nn-driver:968
Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com>
Change-Id: I03ccb4842b060a9893567542bfcadc180bbc7311
Diffstat (limited to 'src')
37 files changed, 101 insertions, 29 deletions
diff --git a/src/armnn/TypeUtils.hpp b/src/armnn/ResolveType.hpp index 55269f4620..55269f4620 100644 --- a/src/armnn/TypeUtils.hpp +++ b/src/armnn/ResolveType.hpp diff --git a/src/armnn/TypesUtils.cpp b/src/armnn/TypesUtils.cpp new file mode 100644 index 0000000000..cdc30da8ca --- /dev/null +++ b/src/armnn/TypesUtils.cpp @@ -0,0 +1,58 @@ +// +// Copyright © 2017 Arm Ltd. All rights reserved. +// SPDX-License-Identifier: MIT +// +#include <armnn/TypesUtils.hpp> + +#include <boost/assert.hpp> +#include <boost/numeric/conversion/cast.hpp> + +template<typename QuantizedType> +QuantizedType armnn::Quantize(float value, float scale, int32_t offset) +{ + static_assert(IsQuantizedType<QuantizedType>(), "Not an integer type."); + constexpr QuantizedType max = std::numeric_limits<QuantizedType>::max(); + constexpr QuantizedType min = std::numeric_limits<QuantizedType>::lowest(); + BOOST_ASSERT(scale != 0.f); + BOOST_ASSERT(!std::isnan(value)); + + float clampedValue = std::min(std::max(static_cast<float>(round(value/scale) + offset), static_cast<float>(min)), + static_cast<float>(max)); + auto quantizedBits = static_cast<QuantizedType>(clampedValue); + + return quantizedBits; +} + +template <typename QuantizedType> +float armnn::Dequantize(QuantizedType value, float scale, int32_t offset) +{ + static_assert(IsQuantizedType<QuantizedType>(), "Not an integer type."); + BOOST_ASSERT(scale != 0.f); + BOOST_ASSERT(!std::isnan(value)); + float dequantized = boost::numeric_cast<float>(value - offset) * scale; + return dequantized; +} + +/// Explicit specialization of Quantize for uint8_t +template +uint8_t armnn::Quantize<uint8_t>(float value, float scale, int32_t offset); + +/// Explicit specialization of Quantize for int16_t +template +int16_t armnn::Quantize<int16_t>(float value, float scale, int32_t offset); + +/// Explicit specialization of Quantize for int32_t +template +int32_t armnn::Quantize<int32_t>(float value, float scale, int32_t offset); + +/// Explicit specialization of Dequantize for uint8_t +template +float armnn::Dequantize<uint8_t>(uint8_t value, float scale, int32_t offset); + +/// Explicit specialization of Dequantize for int16_t +template +float armnn::Dequantize<int16_t>(int16_t value, float scale, int32_t offset); + +/// Explicit specialization of Dequantize for int32_t +template +float armnn::Dequantize<int32_t>(int32_t value, float scale, int32_t offset);
\ No newline at end of file diff --git a/src/armnn/test/CreateWorkload.hpp b/src/armnn/test/CreateWorkload.hpp index acc5cbdb1a..bdec766067 100644 --- a/src/armnn/test/CreateWorkload.hpp +++ b/src/armnn/test/CreateWorkload.hpp @@ -15,7 +15,7 @@ #include <Graph.hpp> #include <DataLayoutIndexed.hpp> #include <Network.hpp> -#include <TypeUtils.hpp> +#include <ResolveType.hpp> #include <utility> diff --git a/src/armnn/test/UtilsTests.cpp b/src/armnn/test/UtilsTests.cpp index c81a4b67b6..0fa67e5f2a 100644 --- a/src/armnn/test/UtilsTests.cpp +++ b/src/armnn/test/UtilsTests.cpp @@ -11,7 +11,7 @@ #include <armnn/Descriptors.hpp> #include <GraphTopologicalSort.hpp> #include <Graph.hpp> -#include "TypeUtils.hpp" +#include <ResolveType.hpp> BOOST_AUTO_TEST_SUITE(Utils) diff --git a/src/armnnDeserializer/Deserializer.cpp b/src/armnnDeserializer/Deserializer.cpp index 076072e888..cbded60f93 100644 --- a/src/armnnDeserializer/Deserializer.cpp +++ b/src/armnnDeserializer/Deserializer.cpp @@ -18,6 +18,8 @@ #include <boost/assert.hpp> #include <boost/format.hpp> #include <boost/log/trivial.hpp> +#include <boost/format.hpp> +#include <boost/numeric/conversion/cast.hpp> #include <boost/polymorphic_cast.hpp> // The generated code based on the Serialize schema: diff --git a/src/armnnDeserializer/test/ParserFlatbuffersSerializeFixture.hpp b/src/armnnDeserializer/test/ParserFlatbuffersSerializeFixture.hpp index 7baa010840..038cce4da2 100644 --- a/src/armnnDeserializer/test/ParserFlatbuffersSerializeFixture.hpp +++ b/src/armnnDeserializer/test/ParserFlatbuffersSerializeFixture.hpp @@ -13,7 +13,7 @@ #include <boost/assert.hpp> #include <boost/format.hpp> -#include "TypeUtils.hpp" +#include <ResolveType.hpp> #include "test/TensorHelpers.hpp" #include "flatbuffers/idl.h" diff --git a/src/armnnOnnxParser/OnnxParser.cpp b/src/armnnOnnxParser/OnnxParser.cpp index 77350b8b9e..6fe7cc6732 100644 --- a/src/armnnOnnxParser/OnnxParser.cpp +++ b/src/armnnOnnxParser/OnnxParser.cpp @@ -8,11 +8,12 @@ #include <armnn/Utils.hpp> #include <VerificationHelpers.hpp> +#include <boost/format.hpp> +#include <boost/numeric/conversion/cast.hpp> + #include <google/protobuf/text_format.h> #include <google/protobuf/io/zero_copy_stream_impl.h> -#include <boost/format.hpp> - #include <numeric> using namespace armnn; diff --git a/src/armnnSerializer/Serializer.cpp b/src/armnnSerializer/Serializer.cpp index 74d0c435c6..0b8ad06d18 100644 --- a/src/armnnSerializer/Serializer.cpp +++ b/src/armnnSerializer/Serializer.cpp @@ -13,6 +13,8 @@ #include <ArmnnSchema_generated.h> +#include <boost/numeric/conversion/cast.hpp> + #include <flatbuffers/util.h> using namespace armnn; diff --git a/src/armnnTfLiteParser/TfLiteParser.cpp b/src/armnnTfLiteParser/TfLiteParser.cpp index 5c5618b865..f689deedf6 100644 --- a/src/armnnTfLiteParser/TfLiteParser.cpp +++ b/src/armnnTfLiteParser/TfLiteParser.cpp @@ -21,6 +21,8 @@ #include <boost/assert.hpp> #include <boost/format.hpp> #include <boost/log/trivial.hpp> +#include <boost/format.hpp> +#include <boost/numeric/conversion/cast.hpp> #include <fstream> #include <algorithm> diff --git a/src/armnnTfLiteParser/test/ParserFlatbuffersFixture.hpp b/src/armnnTfLiteParser/test/ParserFlatbuffersFixture.hpp index 9eb2f2b93d..95c6e85abd 100644 --- a/src/armnnTfLiteParser/test/ParserFlatbuffersFixture.hpp +++ b/src/armnnTfLiteParser/test/ParserFlatbuffersFixture.hpp @@ -17,7 +17,7 @@ #include "test/TensorHelpers.hpp" -#include "TypeUtils.hpp" +#include <ResolveType.hpp> #include "armnnTfLiteParser/ITfLiteParser.hpp" #include <backendsCommon/BackendRegistry.hpp> diff --git a/src/armnnTfParser/TfParser.cpp b/src/armnnTfParser/TfParser.cpp index 028a932b42..d7cfba8dfe 100755 --- a/src/armnnTfParser/TfParser.cpp +++ b/src/armnnTfParser/TfParser.cpp @@ -20,6 +20,8 @@ #include <boost/format.hpp> #include <boost/core/ignore_unused.hpp> +#include <boost/format.hpp> +#include <boost/numeric/conversion/cast.hpp> #include <boost/polymorphic_cast.hpp> #include <numeric> diff --git a/src/backends/aclCommon/test/MemCopyTestImpl.hpp b/src/backends/aclCommon/test/MemCopyTestImpl.hpp index 4e0bfa85de..0607bbde98 100644 --- a/src/backends/aclCommon/test/MemCopyTestImpl.hpp +++ b/src/backends/aclCommon/test/MemCopyTestImpl.hpp @@ -4,7 +4,7 @@ // #pragma once -#include <TypeUtils.hpp> +#include <ResolveType.hpp> #include <backendsCommon/IBackendInternal.hpp> diff --git a/src/backends/backendsCommon/MemCopyWorkload.cpp b/src/backends/backendsCommon/MemCopyWorkload.cpp index 0fa04f8f46..c4e6f52eec 100644 --- a/src/backends/backendsCommon/MemCopyWorkload.cpp +++ b/src/backends/backendsCommon/MemCopyWorkload.cpp @@ -7,7 +7,7 @@ #include "CpuTensorHandle.hpp" -#include <TypeUtils.hpp> +#include <ResolveType.hpp> #include <boost/cast.hpp> diff --git a/src/backends/backendsCommon/WorkloadData.cpp b/src/backends/backendsCommon/WorkloadData.cpp index ec163b59c3..df66b4e4c1 100644 --- a/src/backends/backendsCommon/WorkloadData.cpp +++ b/src/backends/backendsCommon/WorkloadData.cpp @@ -14,6 +14,7 @@ #include <sstream> #include <boost/format.hpp> +#include <boost/numeric/conversion/cast.hpp> using namespace armnnUtils; diff --git a/src/backends/backendsCommon/test/ArithmeticTestImpl.hpp b/src/backends/backendsCommon/test/ArithmeticTestImpl.hpp index 5a65c32918..29dafd36b4 100644 --- a/src/backends/backendsCommon/test/ArithmeticTestImpl.hpp +++ b/src/backends/backendsCommon/test/ArithmeticTestImpl.hpp @@ -4,7 +4,7 @@ // #pragma once -#include "TypeUtils.hpp" +#include <ResolveType.hpp> #include <armnn/INetwork.hpp> diff --git a/src/backends/backendsCommon/test/BatchNormTestImpl.hpp b/src/backends/backendsCommon/test/BatchNormTestImpl.hpp index ded4a067b4..d34a54f992 100644 --- a/src/backends/backendsCommon/test/BatchNormTestImpl.hpp +++ b/src/backends/backendsCommon/test/BatchNormTestImpl.hpp @@ -4,7 +4,7 @@ // #pragma once -#include "TypeUtils.hpp" +#include <ResolveType.hpp> #include "WorkloadTestUtils.hpp" #include <armnn/ArmNN.hpp> diff --git a/src/backends/backendsCommon/test/Conv2dTestImpl.hpp b/src/backends/backendsCommon/test/Conv2dTestImpl.hpp index 24f0825504..c2e539b20f 100755 --- a/src/backends/backendsCommon/test/Conv2dTestImpl.hpp +++ b/src/backends/backendsCommon/test/Conv2dTestImpl.hpp @@ -6,7 +6,7 @@ #include "WorkloadTestUtils.hpp" #include "TensorUtils.hpp" -#include "TypeUtils.hpp" +#include <ResolveType.hpp> #include <Permute.hpp> #include <DataLayoutIndexed.hpp> diff --git a/src/backends/backendsCommon/test/DetectionPostProcessLayerTestImpl.hpp b/src/backends/backendsCommon/test/DetectionPostProcessLayerTestImpl.hpp index 2a2c1f92e2..092ce26696 100644 --- a/src/backends/backendsCommon/test/DetectionPostProcessLayerTestImpl.hpp +++ b/src/backends/backendsCommon/test/DetectionPostProcessLayerTestImpl.hpp @@ -5,7 +5,7 @@ #pragma once #include "TensorCopyUtils.hpp" -#include "TypeUtils.hpp" +#include <ResolveType.hpp> #include "WorkloadTestUtils.hpp" #include <armnn/Types.hpp> diff --git a/src/backends/backendsCommon/test/DetectionPostProcessTestImpl.hpp b/src/backends/backendsCommon/test/DetectionPostProcessTestImpl.hpp index 5f4d2a480f..9a53456e81 100644 --- a/src/backends/backendsCommon/test/DetectionPostProcessTestImpl.hpp +++ b/src/backends/backendsCommon/test/DetectionPostProcessTestImpl.hpp @@ -7,7 +7,7 @@ #include <armnn/INetwork.hpp> #include <backendsCommon/test/CommonTestUtils.hpp> -#include <TypeUtils.hpp> +#include <ResolveType.hpp> namespace{ diff --git a/src/backends/backendsCommon/test/EndToEndTestImpl.hpp b/src/backends/backendsCommon/test/EndToEndTestImpl.hpp index a04fdf72e7..f8673d691e 100644 --- a/src/backends/backendsCommon/test/EndToEndTestImpl.hpp +++ b/src/backends/backendsCommon/test/EndToEndTestImpl.hpp @@ -4,7 +4,7 @@ // #pragma once -#include "TypeUtils.hpp" +#include <ResolveType.hpp> #include <armnn/ArmNN.hpp> #include <armnn/INetwork.hpp> diff --git a/src/backends/backendsCommon/test/FullyConnectedTestImpl.hpp b/src/backends/backendsCommon/test/FullyConnectedTestImpl.hpp index cfdae63c26..ac2595b6bf 100644 --- a/src/backends/backendsCommon/test/FullyConnectedTestImpl.hpp +++ b/src/backends/backendsCommon/test/FullyConnectedTestImpl.hpp @@ -3,7 +3,7 @@ // SPDX-License-Identifier: MIT // -#include "TypeUtils.hpp" +#include <ResolveType.hpp> #include "WorkloadTestUtils.hpp" #include <backendsCommon/IBackendInternal.hpp> diff --git a/src/backends/backendsCommon/test/GatherEndToEndTestImpl.hpp b/src/backends/backendsCommon/test/GatherEndToEndTestImpl.hpp index 4ef1ef30ee..ce689d7ab3 100644 --- a/src/backends/backendsCommon/test/GatherEndToEndTestImpl.hpp +++ b/src/backends/backendsCommon/test/GatherEndToEndTestImpl.hpp @@ -7,7 +7,7 @@ #include <armnn/INetwork.hpp> #include <backendsCommon/test/CommonTestUtils.hpp> -#include <TypeUtils.hpp> +#include <ResolveType.hpp> namespace{ diff --git a/src/backends/backendsCommon/test/LayerTests.cpp b/src/backends/backendsCommon/test/LayerTests.cpp index cba4d3d93a..525ac1780a 100644 --- a/src/backends/backendsCommon/test/LayerTests.cpp +++ b/src/backends/backendsCommon/test/LayerTests.cpp @@ -5,7 +5,7 @@ #include "LayerTests.hpp" #include "WorkloadTestUtils.hpp" #include "TensorUtils.hpp" -#include "TypeUtils.hpp" +#include <ResolveType.hpp> #include "test/TensorHelpers.hpp" #include "TensorCopyUtils.hpp" diff --git a/src/backends/backendsCommon/test/MergerTestImpl.hpp b/src/backends/backendsCommon/test/MergerTestImpl.hpp index de03c1096a..2511bd44ba 100644 --- a/src/backends/backendsCommon/test/MergerTestImpl.hpp +++ b/src/backends/backendsCommon/test/MergerTestImpl.hpp @@ -4,7 +4,7 @@ // #pragma once -#include "TypeUtils.hpp" +#include <ResolveType.hpp> #include <armnn/INetwork.hpp> diff --git a/src/backends/backendsCommon/test/QuantizeHelper.hpp b/src/backends/backendsCommon/test/QuantizeHelper.hpp index bb4e561d59..b3b0631e18 100644 --- a/src/backends/backendsCommon/test/QuantizeHelper.hpp +++ b/src/backends/backendsCommon/test/QuantizeHelper.hpp @@ -10,7 +10,9 @@ #include <initializer_list> #include <iterator> #include <vector> + #include <boost/core/ignore_unused.hpp> +#include <boost/numeric/conversion/cast.hpp> template<typename T, bool DoQuantize=true> struct SelectiveQuantizer diff --git a/src/backends/backendsCommon/test/StridedSliceTestImpl.hpp b/src/backends/backendsCommon/test/StridedSliceTestImpl.hpp index 1bf5c642ad..f15602c37b 100644 --- a/src/backends/backendsCommon/test/StridedSliceTestImpl.hpp +++ b/src/backends/backendsCommon/test/StridedSliceTestImpl.hpp @@ -4,7 +4,7 @@ // #pragma once -#include "TypeUtils.hpp" +#include <ResolveType.hpp> #include "WorkloadTestUtils.hpp" #include <armnn/ArmNN.hpp> diff --git a/src/backends/cl/workloads/ClDepthwiseConvolutionWorkload.cpp b/src/backends/cl/workloads/ClDepthwiseConvolutionWorkload.cpp index 1745b8297a..1ff0978a40 100644 --- a/src/backends/cl/workloads/ClDepthwiseConvolutionWorkload.cpp +++ b/src/backends/cl/workloads/ClDepthwiseConvolutionWorkload.cpp @@ -5,7 +5,7 @@ #include "ClDepthwiseConvolutionWorkload.hpp" -#include "TypeUtils.hpp" +#include <ResolveType.hpp> #include "ClWorkloadUtils.hpp" #include <aclCommon/ArmComputeUtils.hpp> diff --git a/src/backends/reference/workloads/BaseIterator.hpp b/src/backends/reference/workloads/BaseIterator.hpp index 955d7f2185..3439e41b48 100644 --- a/src/backends/reference/workloads/BaseIterator.hpp +++ b/src/backends/reference/workloads/BaseIterator.hpp @@ -6,7 +6,7 @@ #pragma once #include <armnn/ArmNN.hpp> -#include <TypeUtils.hpp> +#include <ResolveType.hpp> namespace armnn { diff --git a/src/backends/reference/workloads/DetectionPostProcess.cpp b/src/backends/reference/workloads/DetectionPostProcess.cpp index 6868180b0b..d3790f22ab 100644 --- a/src/backends/reference/workloads/DetectionPostProcess.cpp +++ b/src/backends/reference/workloads/DetectionPostProcess.cpp @@ -7,6 +7,7 @@ #include <armnn/ArmNN.hpp> +#include <boost/assert.hpp> #include <boost/numeric/conversion/cast.hpp> #include <algorithm> diff --git a/src/backends/reference/workloads/Gather.cpp b/src/backends/reference/workloads/Gather.cpp index b195003e04..45491c7f52 100644 --- a/src/backends/reference/workloads/Gather.cpp +++ b/src/backends/reference/workloads/Gather.cpp @@ -9,6 +9,8 @@ #include <backendsCommon/WorkloadData.hpp> +#include <boost/numeric/conversion/cast.hpp> + namespace armnn { diff --git a/src/backends/reference/workloads/RefDebugWorkload.cpp b/src/backends/reference/workloads/RefDebugWorkload.cpp index 3da925913a..64b1b1c593 100644 --- a/src/backends/reference/workloads/RefDebugWorkload.cpp +++ b/src/backends/reference/workloads/RefDebugWorkload.cpp @@ -7,7 +7,7 @@ #include "Debug.hpp" #include "RefWorkloadUtils.hpp" -#include <TypeUtils.hpp> +#include <ResolveType.hpp> #include <cstring> diff --git a/src/backends/reference/workloads/RefElementwiseWorkload.cpp b/src/backends/reference/workloads/RefElementwiseWorkload.cpp index 535adca0d7..cbacd9c21e 100644 --- a/src/backends/reference/workloads/RefElementwiseWorkload.cpp +++ b/src/backends/reference/workloads/RefElementwiseWorkload.cpp @@ -11,8 +11,7 @@ #include "Profiling.hpp" #include "RefWorkloadUtils.hpp" #include "StringMapping.hpp" -#include "TypeUtils.hpp" - +#include <ResolveType.hpp> #include <vector> namespace armnn diff --git a/src/backends/reference/workloads/RefGatherWorkload.cpp b/src/backends/reference/workloads/RefGatherWorkload.cpp index 49b37cb1ac..bca3f18796 100644 --- a/src/backends/reference/workloads/RefGatherWorkload.cpp +++ b/src/backends/reference/workloads/RefGatherWorkload.cpp @@ -8,7 +8,7 @@ #include "Gather.hpp" #include "Profiling.hpp" #include "RefWorkloadUtils.hpp" -#include "TypeUtils.hpp" +#include <ResolveType.hpp> namespace armnn { diff --git a/src/backends/reference/workloads/RefPadWorkload.cpp b/src/backends/reference/workloads/RefPadWorkload.cpp index b41c2de9af..16032e7c77 100644 --- a/src/backends/reference/workloads/RefPadWorkload.cpp +++ b/src/backends/reference/workloads/RefPadWorkload.cpp @@ -10,7 +10,7 @@ #include "Profiling.hpp" -#include "TypeUtils.hpp" +#include <ResolveType.hpp> #include <vector> diff --git a/src/backends/reference/workloads/RefPermuteWorkload.cpp b/src/backends/reference/workloads/RefPermuteWorkload.cpp index 9ca16425fa..9e44d162e2 100644 --- a/src/backends/reference/workloads/RefPermuteWorkload.cpp +++ b/src/backends/reference/workloads/RefPermuteWorkload.cpp @@ -7,7 +7,7 @@ #include "RefWorkloadUtils.hpp" #include <Permute.hpp> -#include "TypeUtils.hpp" +#include <ResolveType.hpp> namespace armnn { diff --git a/src/backends/reference/workloads/RefSpaceToBatchNdWorkload.cpp b/src/backends/reference/workloads/RefSpaceToBatchNdWorkload.cpp index fb98118536..4d2bb05daa 100644 --- a/src/backends/reference/workloads/RefSpaceToBatchNdWorkload.cpp +++ b/src/backends/reference/workloads/RefSpaceToBatchNdWorkload.cpp @@ -7,7 +7,7 @@ #include "SpaceToBatchNd.hpp" #include "RefWorkloadUtils.hpp" -#include "TypeUtils.hpp" +#include <ResolveType.hpp> namespace armnn { diff --git a/src/backends/reference/workloads/RefStridedSliceWorkload.cpp b/src/backends/reference/workloads/RefStridedSliceWorkload.cpp index 26a878e02f..bcc3520f45 100644 --- a/src/backends/reference/workloads/RefStridedSliceWorkload.cpp +++ b/src/backends/reference/workloads/RefStridedSliceWorkload.cpp @@ -7,7 +7,7 @@ #include "StridedSlice.hpp" #include "RefWorkloadUtils.hpp" -#include "TypeUtils.hpp" +#include <ResolveType.hpp> namespace armnn { |