diff options
author | Matthew Sloyan <matthew.sloyan@arm.com> | 2022-10-28 18:02:17 +0100 |
---|---|---|
committer | Matthew Sloyan <matthew.sloyan@arm.com> | 2022-11-02 15:08:37 +0000 |
commit | 164bf4f29f6f1b2a3e6714ef4f5a21fc0fd16c2b (patch) | |
tree | e7296130a787578e1be4d3a93de46a9c466944b4 /src/backends/tosaReference/test | |
parent | 2e950f4fa774ac995230addea898f3b11bf146cc (diff) | |
download | armnn-164bf4f29f6f1b2a3e6714ef4f5a21fc0fd16c2b.tar.gz |
IVGCVSW-7164 Implement TosaRefBackend::OptimizeSubgraphView
* Added TosaRefBackend::OptimizeSubgraphView implementation.
* Generalised TosaRefLayerSupport::IsLayerSupported to work with any
operator.
* Changed TosaCommon.hpp utils to inline functions.
* Added source files for TosaMappings.hpp and AdditionOperator.hpp.
* Fixed multiple defines issue with HALF_ROUND_STYLE and
HALF_ROUND_TIES_TO_EVEN.
Signed-off-by: Matthew Sloyan <matthew.sloyan@arm.com>
Change-Id: Ib2576ec3fb97faa3a2256b2fb93ec16ac8745760
Diffstat (limited to 'src/backends/tosaReference/test')
-rw-r--r-- | src/backends/tosaReference/test/CMakeLists.txt | 1 | ||||
-rw-r--r-- | src/backends/tosaReference/test/TosaRefOptimizedNetworkTests.cpp | 54 |
2 files changed, 55 insertions, 0 deletions
diff --git a/src/backends/tosaReference/test/CMakeLists.txt b/src/backends/tosaReference/test/CMakeLists.txt index 8366901605..627a1836e1 100644 --- a/src/backends/tosaReference/test/CMakeLists.txt +++ b/src/backends/tosaReference/test/CMakeLists.txt @@ -6,6 +6,7 @@ list(APPEND armnnTosaRefBackendUnitTests_sources TosaRefLayerTests.cpp TosaRefLayerSupportTests.cpp + TosaRefOptimizedNetworkTests.cpp ) add_library(armnnTosaRefBackendUnitTests OBJECT ${armnnTosaRefBackendUnitTests_sources}) diff --git a/src/backends/tosaReference/test/TosaRefOptimizedNetworkTests.cpp b/src/backends/tosaReference/test/TosaRefOptimizedNetworkTests.cpp new file mode 100644 index 0000000000..64b6805d2c --- /dev/null +++ b/src/backends/tosaReference/test/TosaRefOptimizedNetworkTests.cpp @@ -0,0 +1,54 @@ +// +// Copyright © 2022 Arm Ltd and Contributors. All rights reserved. +// SPDX-License-Identifier: MIT +// + +#include <armnn/INetwork.hpp> + +#include <GraphUtils.hpp> +#include <TestUtils.hpp> + +#include <doctest/doctest.h> + +TEST_SUITE("TosaReferenceOptimizedNetwork") +{ + +TEST_CASE("SimpleSupportedOptimizedNetwork") +{ + armnn::IRuntime::CreationOptions options; + armnn::IRuntimePtr runtime(armnn::IRuntime::Create(options)); + armnn::INetworkPtr network(armnn::INetwork::Create()); + + auto inputLayer1 = network->AddInputLayer(0, "input_1"); + auto inputLayer2 = network->AddInputLayer(1, "input_2"); + auto addLayer = network->AddAdditionLayer("add"); + auto outputLayer = network->AddOutputLayer(2, "output"); + + armnn::TensorInfo tensorInfo{{4}, armnn::DataType::Float32}; + + inputLayer1->GetOutputSlot(0).Connect(addLayer->GetInputSlot(0)); + inputLayer1->GetOutputSlot(0).SetTensorInfo(tensorInfo); + + inputLayer2->GetOutputSlot(0).Connect(addLayer->GetInputSlot(1)); + inputLayer2->GetOutputSlot(0).SetTensorInfo(tensorInfo); + + addLayer->GetOutputSlot(0).Connect(outputLayer->GetInputSlot(0)); + addLayer->GetOutputSlot(0).SetTensorInfo(tensorInfo); + + std::vector<armnn::BackendId> backends = { "TosaRef" }; + + armnn::OptimizerOptions optimizedOptions; + armnn::IOptimizedNetworkPtr optNet = Optimize(*network, backends, runtime->GetDeviceSpec(), optimizedOptions); + CHECK(optNet); + + armnn::Graph& graph = GetGraphForTesting(optNet.get()); + + // Check graph layer sequence to ensure that the network has been replaced with a PreCompiledLayer + CHECK(CheckSequence(graph.cbegin(), graph.cend(), + &IsLayerOfType<armnn::InputLayer>, + &IsLayerOfType<armnn::InputLayer>, + &IsLayerOfType<armnn::PreCompiledLayer>, + &IsLayerOfType<armnn::OutputLayer>)); +} + +} |