diff options
Diffstat (limited to 'Utils.hpp')
-rw-r--r-- | Utils.hpp | 38 |
1 files changed, 26 insertions, 12 deletions
@@ -1,5 +1,5 @@ // -// Copyright © 2017 Arm Ltd. All rights reserved. +// Copyright © 2017-2021,2023 Arm Ltd and Contributors. All rights reserved. // SPDX-License-Identifier: MIT // @@ -11,6 +11,8 @@ #include <NeuralNetworks.h> #include <Utils.h> +#include <fmt/format.h> + #include <vector> #include <string> #include <fstream> @@ -60,7 +62,7 @@ public: }; /// Swizzles tensor data in @a input according to the dimension mappings. -void SwizzleAndroidNn4dTensorToArmNn(const armnn::TensorInfo& tensor, const void* input, void* output, +void SwizzleAndroidNn4dTensorToArmNn(armnn::TensorInfo& tensor, const void* input, void* output, const armnn::PermutationVector& mappings); /// Returns a pointer to a specific location in a pool @@ -70,22 +72,25 @@ void* GetMemoryFromPool(V1_0::DataLocation location, /// Can throw UnsupportedOperand armnn::TensorInfo GetTensorInfoForOperand(const V1_0::Operand& operand); -#if defined(ARMNN_ANDROID_NN_V1_2) || defined(ARMNN_ANDROID_NN_V1_3) // Using ::android::hardware::neuralnetworks::V1_2 -armnn::TensorInfo GetTensorInfoForOperand(const V1_2::Operand& operand); -#endif - -#ifdef ARMNN_ANDROID_NN_V1_3 // Using ::android::hardware::neuralnetworks::V1_3 -armnn::TensorInfo GetTensorInfoForOperand(const V1_3::Operand& operand); -#endif - std::string GetOperandSummary(const V1_0::Operand& operand); +// Returns true for any quantized data type, false for the rest. +bool isQuantizedOperand(const V1_0::OperandType& operandType); + #if defined(ARMNN_ANDROID_NN_V1_2) || defined(ARMNN_ANDROID_NN_V1_3) // Using ::android::hardware::neuralnetworks::V1_2 +armnn::TensorInfo GetTensorInfoForOperand(const V1_2::Operand& operand); + std::string GetOperandSummary(const V1_2::Operand& operand); + +bool isQuantizedOperand(const V1_2::OperandType& operandType); #endif #ifdef ARMNN_ANDROID_NN_V1_3 // Using ::android::hardware::neuralnetworks::V1_3 +armnn::TensorInfo GetTensorInfoForOperand(const V1_3::Operand& operand); + std::string GetOperandSummary(const V1_3::Operand& operand); + +bool isQuantizedOperand(const V1_3::OperandType& operandType); #endif template <typename HalModel> @@ -123,10 +128,11 @@ std::string GetModelSummary(const HalModel& model) return result.str(); } +template <typename TensorType> void DumpTensor(const std::string& dumpDir, const std::string& requestName, const std::string& tensorName, - const armnn::ConstTensor& tensor); + const TensorType& tensor); void DumpJsonProfilingIfRequired(bool gpuProfilingEnabled, const std::string& dumpDir, @@ -136,7 +142,10 @@ void DumpJsonProfilingIfRequired(bool gpuProfilingEnabled, std::string ExportNetworkGraphToDotFile(const armnn::IOptimizedNetwork& optimizedNetwork, const std::string& dumpDir); -std::string SerializeNetwork(const armnn::INetwork& network, const std::string& dumpDir); +std::string SerializeNetwork(const armnn::INetwork& network, + const std::string& dumpDir, + std::vector<uint8_t>& dataCacheData, + bool dataCachingActive = true); void RenameExportedFiles(const std::string& existingSerializedFileName, const std::string& existingDotFileName, @@ -187,4 +196,9 @@ inline V1_2::OutputShape ComputeShape(const armnn::TensorInfo& info) void CommitPools(std::vector<::android::nn::RunTimePoolInfo>& memPools); +template <typename ErrorStatus, typename Request> +ErrorStatus ValidateRequestArgument(const Request& request, + const armnn::TensorInfo& tensorInfo, + const V1_0::RequestArgument& requestArgument, + std::string descString); } // namespace armnn_driver |