aboutsummaryrefslogtreecommitdiff
path: root/src/backends/tosaCommon
diff options
context:
space:
mode:
authorNarumol Prangnawarat <narumol.prangnawarat@arm.com>2023-09-29 17:00:38 +0100
committerNarumol Prangnawarat <narumol.prangnawarat@arm.com>2023-10-03 09:40:37 +0000
commitad323af0e9b47e53d366b85cdf74927f88748d40 (patch)
treec4251570a54ad9c123e4946bc1c69cbdbbf08253 /src/backends/tosaCommon
parentedefbc282556021b7ea4db5d88d4cce2f9782b15 (diff)
downloadarmnn-ad323af0e9b47e53d366b85cdf74927f88748d40.tar.gz
IVGCVSW-8033 Update Arm NN to use TOSA v0.60.0
Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com> Change-Id: If1504534fbd7d6b317fdb93083dcdbd8b827764b
Diffstat (limited to 'src/backends/tosaCommon')
-rw-r--r--src/backends/tosaCommon/TosaMappings.cpp2
-rw-r--r--src/backends/tosaCommon/operatorMappings/AvgPool2DIgnoreValueOperator.cpp1
-rw-r--r--src/backends/tosaCommon/operatorMappings/ConcatOperator.cpp1
-rw-r--r--src/backends/tosaCommon/operatorMappings/ConstantOperator.cpp1
-rw-r--r--src/backends/tosaCommon/operatorMappings/Conv2dOperator.cpp3
-rw-r--r--src/backends/tosaCommon/operatorMappings/ElementwiseBinaryOperator.cpp1
-rw-r--r--src/backends/tosaCommon/operatorMappings/ElementwiseUnaryOperator.cpp1
-rw-r--r--src/backends/tosaCommon/operatorMappings/Pooling2DOperator.cpp1
-rw-r--r--src/backends/tosaCommon/operatorMappings/ReshapeOperator.cpp1
-rw-r--r--src/backends/tosaCommon/operatorMappings/SliceOperator.cpp1
-rw-r--r--src/backends/tosaCommon/operatorMappings/TosaOperatorUtils.hpp11
-rw-r--r--src/backends/tosaCommon/operatorMappings/TransposeConv2dOperator.cpp3
-rw-r--r--src/backends/tosaCommon/operatorMappings/TransposeOperator.cpp1
13 files changed, 24 insertions, 4 deletions
diff --git a/src/backends/tosaCommon/TosaMappings.cpp b/src/backends/tosaCommon/TosaMappings.cpp
index 6ab1b06b30..a998996f19 100644
--- a/src/backends/tosaCommon/TosaMappings.cpp
+++ b/src/backends/tosaCommon/TosaMappings.cpp
@@ -12,7 +12,7 @@ TosaSerializationBasicBlock* CreateEmptyTosaSerializationBasicBlock()
{
// Empty basic block when no TOSA mapping implemented/exists
auto* op = new TosaSerializationOperator(Op_UNKNOWN, Attribute_NONE, nullptr, {}, {});
- return new TosaSerializationBasicBlock("", {op}, {}, {}, {});
+ return new TosaSerializationBasicBlock("", "", {op}, {}, {}, {});
}
TosaSerializationBasicBlock* GetTosaMapping(const Layer* layer,
diff --git a/src/backends/tosaCommon/operatorMappings/AvgPool2DIgnoreValueOperator.cpp b/src/backends/tosaCommon/operatorMappings/AvgPool2DIgnoreValueOperator.cpp
index 61de0ae39a..a7ca873831 100644
--- a/src/backends/tosaCommon/operatorMappings/AvgPool2DIgnoreValueOperator.cpp
+++ b/src/backends/tosaCommon/operatorMappings/AvgPool2DIgnoreValueOperator.cpp
@@ -111,6 +111,7 @@ TosaSerializationBasicBlock* ConvertAvgPool2DIgnoreValueToTosaOperator(const Lay
// operatorInputNames/operatorOutputNames ends up being the same as
// blockInputNames/blockOutputNames for one-to-one ArmNN to TOSA mappings
return new TosaSerializationBasicBlock(blockName, // name
+ mainName, // region name
{opPad, opPool}, // operators
tensors, // tensors
{padInputName}, // inputs
diff --git a/src/backends/tosaCommon/operatorMappings/ConcatOperator.cpp b/src/backends/tosaCommon/operatorMappings/ConcatOperator.cpp
index 8c651be052..d1ff0dfb20 100644
--- a/src/backends/tosaCommon/operatorMappings/ConcatOperator.cpp
+++ b/src/backends/tosaCommon/operatorMappings/ConcatOperator.cpp
@@ -74,6 +74,7 @@ TosaSerializationBasicBlock* ConvertConcatToTosaOperator(const Layer* layer,
// operatorInputNames/operatorOutputNames ends up being the same as
// blockInputNames/blockOutputNames for one-to-one ArmNN to TOSA mappings
return new TosaSerializationBasicBlock(blockName, // name
+ mainName, // region name
{op}, // operators
tensors, // tensors
inputNames, // inputs
diff --git a/src/backends/tosaCommon/operatorMappings/ConstantOperator.cpp b/src/backends/tosaCommon/operatorMappings/ConstantOperator.cpp
index 5e3973f8ec..c7cd7d7969 100644
--- a/src/backends/tosaCommon/operatorMappings/ConstantOperator.cpp
+++ b/src/backends/tosaCommon/operatorMappings/ConstantOperator.cpp
@@ -37,6 +37,7 @@ TosaSerializationBasicBlock* ConvertConstantToTosaOperator(const Layer* layer,
auto* outputTensor0 = new TosaSerializationTensor(outputName, outputShape0, outputDType0, uint8Data);
return new TosaSerializationBasicBlock(blockName, // name
+ mainName, // region name
{op}, // operators
{outputTensor0}, // tensors
{}, // inputs
diff --git a/src/backends/tosaCommon/operatorMappings/Conv2dOperator.cpp b/src/backends/tosaCommon/operatorMappings/Conv2dOperator.cpp
index a7af08347a..fdd6ca4c27 100644
--- a/src/backends/tosaCommon/operatorMappings/Conv2dOperator.cpp
+++ b/src/backends/tosaCommon/operatorMappings/Conv2dOperator.cpp
@@ -114,7 +114,7 @@ TosaSerializationBasicBlock* ConvertConv2dToTosaOperator(const Layer* layer,
static_cast<int>(conv2dDescriptor->m_StrideX)};
std::vector<int> dilation = {static_cast<int>(conv2dDescriptor->m_DilationY),
static_cast<int>(conv2dDescriptor->m_DilationX)};
- TosaConvAttribute attribute(pad, stride, dilation, 0, 0, ArmNNToDType(inputs[0]->GetDataType()));
+ TosaConvAttribute attribute(pad, stride, dilation, 0, 0);
auto* op = new TosaSerializationOperator(Op_CONV2D,
Attribute_ConvAttribute,
@@ -126,6 +126,7 @@ TosaSerializationBasicBlock* ConvertConv2dToTosaOperator(const Layer* layer,
// operatorInputNames/operatorOutputNames ends up being the same as
// blockInputNames/blockOutputNames for one-to-one ArmNN to TOSA mappings
return new TosaSerializationBasicBlock(blockName, // name
+ mainName, // region name
operators, // operators
tensors, // tensors
inputNames, // inputs
diff --git a/src/backends/tosaCommon/operatorMappings/ElementwiseBinaryOperator.cpp b/src/backends/tosaCommon/operatorMappings/ElementwiseBinaryOperator.cpp
index 9909e66a7d..28e7ec8231 100644
--- a/src/backends/tosaCommon/operatorMappings/ElementwiseBinaryOperator.cpp
+++ b/src/backends/tosaCommon/operatorMappings/ElementwiseBinaryOperator.cpp
@@ -95,6 +95,7 @@ TosaSerializationBasicBlock* ConvertElementwiseBinaryToTosaOperator(const Layer*
// operatorInputNames/operatorOutputNames ends up being the same as
// blockInputNames/blockOutputNames for one-to-one ArmNN to Tosa mappings
return new TosaSerializationBasicBlock(blockName, // name
+ mainName, // region name
{op}, // operators
tensors, // tensors
{input0Name, input1Name}, // inputs
diff --git a/src/backends/tosaCommon/operatorMappings/ElementwiseUnaryOperator.cpp b/src/backends/tosaCommon/operatorMappings/ElementwiseUnaryOperator.cpp
index 15fb9d746b..17ea64b984 100644
--- a/src/backends/tosaCommon/operatorMappings/ElementwiseUnaryOperator.cpp
+++ b/src/backends/tosaCommon/operatorMappings/ElementwiseUnaryOperator.cpp
@@ -65,6 +65,7 @@ TosaSerializationBasicBlock* ConvertElementwiseUnaryOperator(const Layer* layer,
// operatorInputNames/operatorOutputNames ends up being the same as
// blockInputNames/blockOutputNames for one-to-one ArmNN to Tosa mappings
return new TosaSerializationBasicBlock(blockName, // name
+ mainName, // region name
{op}, // operators
tensors, // tensors
{input0Name}, // inputs
diff --git a/src/backends/tosaCommon/operatorMappings/Pooling2DOperator.cpp b/src/backends/tosaCommon/operatorMappings/Pooling2DOperator.cpp
index 444d99a39e..c33f61296a 100644
--- a/src/backends/tosaCommon/operatorMappings/Pooling2DOperator.cpp
+++ b/src/backends/tosaCommon/operatorMappings/Pooling2DOperator.cpp
@@ -66,6 +66,7 @@ TosaSerializationBasicBlock* ConvertPooling2DToTosaOperator(const Layer* layer,
// operatorInputNames/operatorOutputNames ends up being the same as
// blockInputNames/blockOutputNames for one-to-one ArmNN to TOSA mappings
return new TosaSerializationBasicBlock(blockName, // name
+ mainName, // region name
{op}, // operators
tensors, // tensors
{input0Name}, // inputs
diff --git a/src/backends/tosaCommon/operatorMappings/ReshapeOperator.cpp b/src/backends/tosaCommon/operatorMappings/ReshapeOperator.cpp
index 10670ecb95..55d66806b7 100644
--- a/src/backends/tosaCommon/operatorMappings/ReshapeOperator.cpp
+++ b/src/backends/tosaCommon/operatorMappings/ReshapeOperator.cpp
@@ -55,6 +55,7 @@ TosaSerializationBasicBlock* ConvertReshapeToTosaOperator(const Layer* layer,
// operatorInputNames/operatorOutputNames ends up being the same as
// blockInputNames/blockOutputNames for one-to-one ArmNN to TOSA mappings
return new TosaSerializationBasicBlock(blockName, // name
+ mainName, // region name
{op}, // operators
tensors, // tensors
{inputName}, // inputs
diff --git a/src/backends/tosaCommon/operatorMappings/SliceOperator.cpp b/src/backends/tosaCommon/operatorMappings/SliceOperator.cpp
index b98576f47d..294d38937f 100644
--- a/src/backends/tosaCommon/operatorMappings/SliceOperator.cpp
+++ b/src/backends/tosaCommon/operatorMappings/SliceOperator.cpp
@@ -58,6 +58,7 @@ TosaSerializationBasicBlock* ConvertSliceToTosaOperator(const Layer* layer,
// operatorInputNames/operatorOutputNames ends up being the same as
// blockInputNames/blockOutputNames for one-to-one ArmNN to TOSA mappings
return new TosaSerializationBasicBlock(blockName, // name
+ mainName, // region name
{op}, // operators
tensors, // tensors
{inputName}, // inputs
diff --git a/src/backends/tosaCommon/operatorMappings/TosaOperatorUtils.hpp b/src/backends/tosaCommon/operatorMappings/TosaOperatorUtils.hpp
index dccb29892c..3e106e1fd5 100644
--- a/src/backends/tosaCommon/operatorMappings/TosaOperatorUtils.hpp
+++ b/src/backends/tosaCommon/operatorMappings/TosaOperatorUtils.hpp
@@ -16,14 +16,17 @@
using namespace armnn;
using namespace tosa;
+const std::string mainName = "main";
+
// Function to return Tosa datatype from input ArmNN datatype.
inline DType ArmNNToDType(const DataType& type)
{
switch (type)
{
case DataType::Float16:
- case DataType::BFloat16:
return DType_FP16;
+ case DataType::BFloat16:
+ return DType_BF16;
case DataType::Float32:
return DType_FP32;
case DataType::QAsymmU8:
@@ -126,6 +129,8 @@ inline std::string TosaDTypeToString(DType tosaDType)
return "DType_UINT16";
case DType_FP16:
return "DType_FP16";
+ case DType_BF16:
+ return "DType_BF16";
}
return "";
}
@@ -273,6 +278,10 @@ inline std::string TosaOpToString(Op tosaOp)
return "Op_COND_IF";
case Op_WHILE_LOOP:
return "Op_WHILE_LOOP";
+ case Op_FFT2D:
+ return "Op_FFT2D";
+ case Op_RFFT2D:
+ return "Op_RFFT2D";
}
return "";
}
diff --git a/src/backends/tosaCommon/operatorMappings/TransposeConv2dOperator.cpp b/src/backends/tosaCommon/operatorMappings/TransposeConv2dOperator.cpp
index c8af5c2926..3041b790ae 100644
--- a/src/backends/tosaCommon/operatorMappings/TransposeConv2dOperator.cpp
+++ b/src/backends/tosaCommon/operatorMappings/TransposeConv2dOperator.cpp
@@ -143,7 +143,7 @@ TosaSerializationBasicBlock* ConvertTransposeConv2dToTosaOperator(const Layer* l
}
}
- TosaTransposeConvAttribute attribute(pad, stride, outputShape, 0, 0, ArmNNToDType(inputs[0]->GetDataType()));
+ TosaTransposeConvAttribute attribute(pad, stride, outputShape, 0, 0);
auto* op = new TosaSerializationOperator(Op_TRANSPOSE_CONV2D,
Attribute_TransposeConvAttribute,
@@ -155,6 +155,7 @@ TosaSerializationBasicBlock* ConvertTransposeConv2dToTosaOperator(const Layer* l
// operatorInputNames/operatorOutputNames ends up being the same as
// blockInputNames/blockOutputNames for one-to-one ArmNN to TOSA mappings
return new TosaSerializationBasicBlock(blockName, // name
+ mainName, // region name
operators, // operators
tensors, // tensors
{input0Name, input1Name, input2Name}, // inputs
diff --git a/src/backends/tosaCommon/operatorMappings/TransposeOperator.cpp b/src/backends/tosaCommon/operatorMappings/TransposeOperator.cpp
index 56178e428b..ccc77741c9 100644
--- a/src/backends/tosaCommon/operatorMappings/TransposeOperator.cpp
+++ b/src/backends/tosaCommon/operatorMappings/TransposeOperator.cpp
@@ -58,6 +58,7 @@ TosaSerializationBasicBlock* ConvertTransposeToTosaOperator(const Layer* layer,
// operatorInputNames/operatorOutputNames ends up being the same as
// blockInputNames/blockOutputNames for one-to-one ArmNN to TOSA mappings
return new TosaSerializationBasicBlock(blockName, // name
+ mainName, // region name
{op}, // operators
tensors, // tensors
{input0Name}, // inputs