xref: /aosp_15_r20/external/armnn/src/backends/backendsCommon/test/RuntimeTestImpl.hpp (revision 89c4ff92f2867872bb9e2354d150bf0c8c502810)
1 //
2 // Copyright © 2017 Arm Ltd. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 #pragma once
6 
7 
8 #include <Runtime.hpp>
9 
10 namespace
11 {
12 
CreateAndDropDummyNetwork(const std::vector<armnn::BackendId> & backends,armnn::RuntimeImpl & runtime)13 inline void CreateAndDropDummyNetwork(const std::vector<armnn::BackendId>& backends, armnn::RuntimeImpl& runtime)
14 {
15     armnn::NetworkId networkIdentifier;
16     {
17         armnn::TensorInfo inputTensorInfo(armnn::TensorShape({ 7, 7 }), armnn::DataType::Float32);
18         armnn::TensorInfo outputTensorInfo(armnn::TensorShape({ 7, 7 }), armnn::DataType::Float32);
19 
20         armnn::INetworkPtr network(armnn::INetwork::Create());
21 
22         armnn::IConnectableLayer* input = network->AddInputLayer(0, "input");
23         armnn::IConnectableLayer* layer = network->AddActivationLayer(armnn::ActivationDescriptor(), "test");
24         armnn::IConnectableLayer* output = network->AddOutputLayer(0, "output");
25 
26         input->GetOutputSlot(0).Connect(layer->GetInputSlot(0));
27         layer->GetOutputSlot(0).Connect(output->GetInputSlot(0));
28 
29         // Sets the tensors in the network.
30         input->GetOutputSlot(0).SetTensorInfo(inputTensorInfo);
31         layer->GetOutputSlot(0).SetTensorInfo(outputTensorInfo);
32 
33         // optimize the network
34         armnn::IOptimizedNetworkPtr optNet = Optimize(*network, backends, runtime.GetDeviceSpec());
35 
36         runtime.LoadNetwork(networkIdentifier, std::move(optNet));
37     }
38 
39     runtime.UnloadNetwork(networkIdentifier);
40 }
41 
42 } // anonymous namespace
43