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