From c5fe6e71cd39096af7c2523ec2afe96008c51b0c Mon Sep 17 00:00:00 2001 From: Matthew Sloyan Date: Fri, 25 Nov 2022 16:10:00 +0000 Subject: 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 Change-Id: I27c3e238407c32379ce25a1f01dad11523ef5d2b --- .../workloads/TosaRefPreCompiledWorkload.cpp | 31 ++++++++++------------ 1 file changed, 14 insertions(+), 17 deletions(-) (limited to 'src/backends/tosaReference/workloads/TosaRefPreCompiledWorkload.cpp') diff --git a/src/backends/tosaReference/workloads/TosaRefPreCompiledWorkload.cpp b/src/backends/tosaReference/workloads/TosaRefPreCompiledWorkload.cpp index ffdbf6f49b..ba353a32c7 100644 --- a/src/backends/tosaReference/workloads/TosaRefPreCompiledWorkload.cpp +++ b/src/backends/tosaReference/workloads/TosaRefPreCompiledWorkload.cpp @@ -23,13 +23,10 @@ TosaRefPreCompiledWorkload::TosaRefPreCompiledWorkload(const PreCompiledQueueDes void TosaRefPreCompiledWorkload::Execute() const { - uint32_t numInputBuffers = static_cast(m_Data.m_Inputs.size()); - uint32_t numOutputBuffers = static_cast(m_Data.m_Outputs.size()); - tosa::TosaSerializationHandler* handler = static_cast(m_Data.m_PreCompiledObject); - std::vector input_names = handler->GetInputs(); - std::vector output_names = handler->GetOutputs(); + std::vector inputNames = handler->GetInputs(); + std::vector outputNames = handler->GetOutputs(); TosaReference::IModelRunner runner; GraphStatus status; @@ -42,29 +39,29 @@ void TosaRefPreCompiledWorkload::Execute() const } // Set the inputs - for (uint32_t inputSlotIdx = 0; inputSlotIdx < numInputBuffers; ++inputSlotIdx) + for (uint32_t inputSlotIdx = 0; inputSlotIdx < inputNames.size(); ++inputSlotIdx) { DataType dataType = m_workloadInfo.m_InputTensorInfos[inputSlotIdx].GetDataType(); switch (dataType) { case DataType::Float16: - SetInput(runner, input_names[inputSlotIdx], inputSlotIdx); + SetInput(runner, inputNames[inputSlotIdx], inputSlotIdx); break; case DataType::Float32: - SetInput(runner, input_names[inputSlotIdx], inputSlotIdx); + SetInput(runner, inputNames[inputSlotIdx], inputSlotIdx); break; case DataType::QAsymmU8: case DataType::QAsymmS8: case DataType::QSymmS8: case DataType::QSymmS16: case DataType::Signed32: - SetInput(runner, input_names[inputSlotIdx], inputSlotIdx); + SetInput(runner, inputNames[inputSlotIdx], inputSlotIdx); break; case DataType::Signed64: - SetInput(runner, input_names[inputSlotIdx], inputSlotIdx); + SetInput(runner, inputNames[inputSlotIdx], inputSlotIdx); break; case DataType::Boolean: - SetInput(runner, input_names[inputSlotIdx], inputSlotIdx); + SetInput(runner, inputNames[inputSlotIdx], inputSlotIdx); break; default: throw armnn::Exception("Input data type is unsupported in TOSA Reference Backend."); @@ -79,29 +76,29 @@ void TosaRefPreCompiledWorkload::Execute() const } // Gets the outputs - for (uint32_t outputSlotIdx = 0; outputSlotIdx < numOutputBuffers; ++outputSlotIdx) + for (uint32_t outputSlotIdx = 0; outputSlotIdx < outputNames.size(); ++outputSlotIdx) { DataType dataType = m_workloadInfo.m_OutputTensorInfos[outputSlotIdx].GetDataType(); switch (dataType) { case DataType::Float16: - GetOutput(runner, output_names[outputSlotIdx], outputSlotIdx); + GetOutput(runner, outputNames[outputSlotIdx], outputSlotIdx); break; case DataType::Float32: - GetOutput(runner, output_names[outputSlotIdx], outputSlotIdx); + GetOutput(runner, outputNames[outputSlotIdx], outputSlotIdx); break; case DataType::QAsymmU8: case DataType::QAsymmS8: case DataType::QSymmS8: case DataType::QSymmS16: case DataType::Signed32: - GetOutput(runner, output_names[outputSlotIdx], outputSlotIdx); + GetOutput(runner, outputNames[outputSlotIdx], outputSlotIdx); break; case DataType::Signed64: - GetOutput(runner, output_names[outputSlotIdx], outputSlotIdx); + GetOutput(runner, outputNames[outputSlotIdx], outputSlotIdx); break; case DataType::Boolean: - GetOutput(runner, output_names[outputSlotIdx], outputSlotIdx); + GetOutput(runner, outputNames[outputSlotIdx], outputSlotIdx); break; default: throw armnn::Exception("Output data type is unsupported in TOSA Reference Backend."); -- cgit v1.2.1