diff options
author | Cathal Corbett <cathal.corbett@arm.com> | 2022-08-17 17:30:16 +0100 |
---|---|---|
committer | Nikhil Raj <nikhil.raj@arm.com> | 2022-08-30 11:22:42 +0100 |
commit | 9c9d5b9d796d243d88bd7a7aebb2e7e6c467e3a4 (patch) | |
tree | 667ba3bebdd9f291a9c7715397c1e4f877acfa7b /src/backends/tosaCommon/operatorMappings/TosaOperatorUtils.hpp | |
parent | 059660ede6a3db57049e552d934ba1cb8ea18146 (diff) | |
download | armnn-9c9d5b9d796d243d88bd7a7aebb2e7e6c467e3a4.tar.gz |
IVGCVSW-7133 Add TosaMappings backbone structure with support for Addition TosaMappings operator.
Signed-off-by: Cathal Corbett <cathal.corbett@arm.com>
Change-Id: Ibea0cf625b3af4ab38e8b985f7a129c983ca9659
Diffstat (limited to 'src/backends/tosaCommon/operatorMappings/TosaOperatorUtils.hpp')
-rw-r--r-- | src/backends/tosaCommon/operatorMappings/TosaOperatorUtils.hpp | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/src/backends/tosaCommon/operatorMappings/TosaOperatorUtils.hpp b/src/backends/tosaCommon/operatorMappings/TosaOperatorUtils.hpp new file mode 100644 index 0000000000..b887721648 --- /dev/null +++ b/src/backends/tosaCommon/operatorMappings/TosaOperatorUtils.hpp @@ -0,0 +1,60 @@ +// +// Copyright © 2022 Arm Ltd and Contributors. All rights reserved. +// SPDX-License-Identifier: MIT +// + +#pragma once + +#include <armnn/Tensor.hpp> +#include <armnn/Types.hpp> + +#include <tosa_generated.h> + +using namespace armnn; +using namespace tosa; + +// Function to return Tosa datatype from input ArmNN datatype. +DType ArmNNToDType(const DataType& type) +{ + switch (type) + { + case DataType::Float16: + case DataType::Float32: + case DataType::BFloat16: + return DType_FLOAT; + case DataType::QAsymmU8: + return DType_UINT8; + case DataType::QSymmS8: + case DataType::QAsymmS8: + return DType_INT8; + case DataType::QSymmS16: + return DType_INT16; + case DataType::Signed32: + return DType_INT32; + case DataType::Signed64: + // No signed 64, only DType_INT48. + return DType_UNKNOWN; + case DataType::Boolean: + return DType_BOOL; + default: + return DType_UNKNOWN; + } +} + +// Function to return Tosa tensor shape from input ArmNN tensor shape. +std::vector<int32_t> GetTosaTensorShape(const TensorShape& shape) +{ + std::vector<int32_t> returnShape; + for (u_int32_t i = 0; i < shape.GetNumDimensions(); i++) + { + returnShape.push_back(static_cast<int32_t>(shape[i])); + } + return returnShape; +} + +// Function to return unique int as a string to ensure uniqueness between all input, output and block names. +static int uniqueTosaMappingID = 0; +std::string GetUniqueTosaMappingID() +{ + return std::to_string(++uniqueTosaMappingID); +} |