xref: /aosp_15_r20/external/armnn/src/armnn/OptimizedNetworkImpl.hpp (revision 89c4ff92f2867872bb9e2354d150bf0c8c502810)
1*89c4ff92SAndroid Build Coastguard Worker //
2*89c4ff92SAndroid Build Coastguard Worker // Copyright © 2021 Arm Ltd and Contributors. All rights reserved.
3*89c4ff92SAndroid Build Coastguard Worker // SPDX-License-Identifier: MIT
4*89c4ff92SAndroid Build Coastguard Worker //
5*89c4ff92SAndroid Build Coastguard Worker 
6*89c4ff92SAndroid Build Coastguard Worker #include <common/include/ProfilingGuid.hpp>
7*89c4ff92SAndroid Build Coastguard Worker 
8*89c4ff92SAndroid Build Coastguard Worker namespace armnn
9*89c4ff92SAndroid Build Coastguard Worker {
10*89c4ff92SAndroid Build Coastguard Worker 
11*89c4ff92SAndroid Build Coastguard Worker class OptimizedNetworkImpl
12*89c4ff92SAndroid Build Coastguard Worker {
13*89c4ff92SAndroid Build Coastguard Worker public:
14*89c4ff92SAndroid Build Coastguard Worker     OptimizedNetworkImpl(const OptimizedNetworkImpl& other, const ModelOptions& modelOptions);
15*89c4ff92SAndroid Build Coastguard Worker     OptimizedNetworkImpl(std::unique_ptr<Graph> graph);
16*89c4ff92SAndroid Build Coastguard Worker     OptimizedNetworkImpl(std::unique_ptr<Graph> graph, const ModelOptions& modelOptions);
17*89c4ff92SAndroid Build Coastguard Worker     virtual ~OptimizedNetworkImpl();
18*89c4ff92SAndroid Build Coastguard Worker 
19*89c4ff92SAndroid Build Coastguard Worker     virtual Status PrintGraph();
20*89c4ff92SAndroid Build Coastguard Worker     virtual Status SerializeToDot(std::ostream& stream) const;
21*89c4ff92SAndroid Build Coastguard Worker 
GetGuid() const22*89c4ff92SAndroid Build Coastguard Worker     virtual arm::pipe::ProfilingGuid GetGuid() const { return m_Guid; };
23*89c4ff92SAndroid Build Coastguard Worker 
24*89c4ff92SAndroid Build Coastguard Worker     virtual size_t GetNumInputs() const;
25*89c4ff92SAndroid Build Coastguard Worker     virtual size_t GetNumOutputs() const;
26*89c4ff92SAndroid Build Coastguard Worker 
GetGraph()27*89c4ff92SAndroid Build Coastguard Worker     Graph& GetGraph() { return *m_Graph; }
GetGraph() const28*89c4ff92SAndroid Build Coastguard Worker     Graph& GetGraph() const { return *m_Graph; }
GetModelOptions()29*89c4ff92SAndroid Build Coastguard Worker     ModelOptions& GetModelOptions() { return m_ModelOptions; }
30*89c4ff92SAndroid Build Coastguard Worker 
31*89c4ff92SAndroid Build Coastguard Worker     void ExecuteStrategy(IStrategy& strategy) const;
32*89c4ff92SAndroid Build Coastguard Worker 
33*89c4ff92SAndroid Build Coastguard Worker private:
34*89c4ff92SAndroid Build Coastguard Worker     std::unique_ptr<Graph> m_Graph;
35*89c4ff92SAndroid Build Coastguard Worker     arm::pipe::ProfilingGuid m_Guid;
36*89c4ff92SAndroid Build Coastguard Worker     ModelOptions m_ModelOptions;
37*89c4ff92SAndroid Build Coastguard Worker };
38*89c4ff92SAndroid Build Coastguard Worker 
39*89c4ff92SAndroid Build Coastguard Worker }
40