blob: c325df110f49c311320b1908854da4ef8bd396c4 [file] [log] [blame]
Jan Eilers45274902020-10-15 18:34:43 +01001//
2// Copyright © 2020 Arm Ltd and Contributors. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5
6#pragma once
7
8#include <armnn/BackendId.hpp>
9#include <armnn/Tensor.hpp>
10
11/// Holds all parameters necessary to execute a network
12/// Check ExecuteNetworkProgramOptions.cpp for a description of each parameter
13struct ExecuteNetworkParams
14{
15 using TensorShapePtr = std::unique_ptr<armnn::TensorShape>;
16
Finn Williamsf806c4d2021-02-22 15:13:12 +000017 enum class TfLiteExecutor
18 {
19 ArmNNTfLiteParser,
20 ArmNNTfLiteDelegate,
21 TfliteInterpreter
22 };
23
Matthew Sloyan42432112021-01-08 10:30:51 +000024 std::string m_CachedNetworkFilePath;
Jan Eilers45274902020-10-15 18:34:43 +010025 std::vector<armnn::BackendId> m_ComputeDevices;
Sadik Armagana04a9d72021-04-27 10:02:10 +010026 bool m_Concurrent;
Jan Eilers45274902020-10-15 18:34:43 +010027 bool m_DequantizeOutput;
28 std::string m_DynamicBackendsPath;
29 bool m_EnableBf16TurboMode;
30 bool m_EnableFastMath = false;
31 bool m_EnableFp16TurboMode;
32 bool m_EnableLayerDetails = false;
33 bool m_EnableProfiling;
34 bool m_GenerateTensorData;
35 bool m_InferOutputShape = false;
Sadik Armagan5d03e312020-11-17 16:43:56 +000036 bool m_EnableDelegate = false;
Jan Eilers45274902020-10-15 18:34:43 +010037 std::vector<std::string> m_InputNames;
38 std::vector<std::string> m_InputTensorDataFilePaths;
39 std::vector<TensorShapePtr> m_InputTensorShapes;
40 std::vector<std::string> m_InputTypes;
41 bool m_IsModelBinary;
42 size_t m_Iterations;
43 std::string m_ModelFormat;
44 std::string m_ModelPath;
Matthew Sloyan0a7dc6b2021-02-10 16:50:53 +000045 unsigned int m_NumberOfThreads;
Jan Eilers45274902020-10-15 18:34:43 +010046 std::vector<std::string> m_OutputNames;
47 std::vector<std::string> m_OutputTensorFiles;
48 std::vector<std::string> m_OutputTypes;
49 bool m_ParseUnsupported = false;
50 bool m_PrintIntermediate;
51 bool m_QuantizeInput;
Matthew Sloyan42432112021-01-08 10:30:51 +000052 bool m_SaveCachedNetwork;
Sadik Armagana04a9d72021-04-27 10:02:10 +010053 size_t m_SimultaneousIterations;
Jan Eilers45274902020-10-15 18:34:43 +010054 size_t m_SubgraphId;
55 double m_ThresholdTime;
56 int m_TuningLevel;
57 std::string m_TuningPath;
Finn Williams40646322021-02-11 16:16:42 +000058 std::string m_MLGOTuningFilePath;
Finn Williamsf806c4d2021-02-22 15:13:12 +000059 TfLiteExecutor m_TfLiteExecutor;
Jan Eilers45274902020-10-15 18:34:43 +010060
61 // Ensures that the parameters for ExecuteNetwork fit together
62 void ValidateParams();
63};