IVGCVSW-7168 Add Conv2d and Constant support to TOSA Reference Backend
* Added TOSA Conv2d and Constant mappings.
* Added unique naming to mappings based on previous and following
layers, so they are connected correctly.
* Updated existing mappings with new naming convention.
* Added all mappings to one main block in OptimizeSubgraphView.
* Removed isMain from mapping functions.
* Added Conv2d EndToEnd test.
Signed-off-by: Matthew Sloyan <matthew.sloyan@arm.com>
Change-Id: I27c3e238407c32379ce25a1f01dad11523ef5d2b
diff --git a/src/backends/tosaCommon/test/AvgPool2DIgnoreValueChecker.hpp b/src/backends/tosaCommon/test/AvgPool2DIgnoreValueChecker.hpp
index 8869b3a..a38f66b 100644
--- a/src/backends/tosaCommon/test/AvgPool2DIgnoreValueChecker.hpp
+++ b/src/backends/tosaCommon/test/AvgPool2DIgnoreValueChecker.hpp
@@ -17,10 +17,8 @@
{
uint32_t numInputs = static_cast<uint32_t>(inputShape.size());
uint32_t numOutputs = static_cast<uint32_t>(outputShape.size());
- std::string operatorString0 = TosaOpToString(Op_PAD);
- std::string operatorString1 = TosaOpToString(Op_AVG_POOL2D);
- std::string blockStr = operatorString1 + "_block_";
+ std::string blockStr = TosaOpToString(Op_AVG_POOL2D) + "_block_";
CHECK(basicBlock->GetName().find(blockStr) != std::string::npos);
CHECK(basicBlock->GetInputs().size() == numInputs);
CHECK(basicBlock->GetOutputs().size() == numOutputs);
@@ -41,7 +39,7 @@
std::basic_string<char> blockInputName = basicBlock->GetInputs()[i];
std::basic_string<char> operatorInputName = padOp->GetInputTensorNames()[i];
- std::string opStr = operatorString0 + "_input" + std::to_string(i) + "_";
+ std::string opStr = "input" + std::to_string(i) + "_";
CHECK(blockInputName == operatorInputName);
CHECK(basicBlock->GetTensorByName(blockInputName));
@@ -56,7 +54,7 @@
for (uint32_t i = 0; i < padOpOutputs; i++)
{
std::basic_string<char> operatorOutputName = padOp->GetOutputTensorNames()[i];
- std::string opStr = operatorString0 + "_intermediate" + std::to_string(i) + "_";
+ std::string opStr = "intermediate" + std::to_string(i) + "_";
CHECK(basicBlock->GetTensorByName(operatorOutputName));
CHECK(operatorOutputName.find(opStr) != std::string::npos);
@@ -86,7 +84,7 @@
for (uint32_t i = 0; i < poolOpInputs; i++)
{
std::basic_string<char> operatorInputName = poolOp->GetInputTensorNames()[i];
- std::string opStr = operatorString0 + "_intermediate" + std::to_string(i) + "_";
+ std::string opStr = "intermediate" + std::to_string(i) + "_";
CHECK(basicBlock->GetTensorByName(operatorInputName));
CHECK(operatorInputName.find(opStr) != std::string::npos);
@@ -102,7 +100,7 @@
std::basic_string<char> blockOutputName = basicBlock->GetOutputs()[i];
std::basic_string<char> operatorOutputName = poolOp->GetOutputTensorNames()[i];
- std::string opStr = operatorString1 + "_output" + std::to_string(i) + "_";
+ std::string opStr = "output" + std::to_string(i) + "_";
CHECK(blockOutputName == operatorOutputName);
CHECK(basicBlock->GetTensorByName(blockOutputName));