blob: 4c6b385a4806a93631cb5535e2619ae2284f52d2 [file] [log] [blame]
Sadik Armagan8f397a12022-06-17 15:38:22 +01001//
2// Copyright © 2022 Arm Ltd and Contributors. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5
6#pragma once
7
8#include <armnn/ArmNN.hpp>
9
10#include <set>
11#include <string>
12#include <vector>
13
14namespace armnn_driver
15{
16
17class DriverOptions
18{
19public:
20 DriverOptions(armnn::Compute computeDevice, bool fp16Enabled = false);
21 DriverOptions(const std::vector<armnn::BackendId>& backends, bool fp16Enabled = false);
22 DriverOptions();
23 DriverOptions(DriverOptions&& other) = default;
24
25
26 const std::vector<armnn::BackendId>& GetBackends() const { return m_Backends; }
27 bool IsVerboseLoggingEnabled() const { return m_VerboseLogging; }
28 const std::string& GetRequestInputsAndOutputsDumpDir() const { return m_RequestInputsAndOutputsDumpDir; }
29 const std::string& GetServiceName() const { return m_ServiceName; }
30 const std::set<unsigned int>& GetForcedUnsupportedOperations() const { return m_ForcedUnsupportedOperations; }
31 const std::string& GetClTunedParametersFile() const { return m_ClTunedParametersFile; }
32 const std::string& GetClMLGOTunedParametersFile() const { return m_ClMLGOTunedParametersFile; }
33 armnn::IGpuAccTunedParameters::Mode GetClTunedParametersMode() const { return m_ClTunedParametersMode; }
34 armnn::IGpuAccTunedParameters::TuningLevel GetClTuningLevel() const { return m_ClTuningLevel; }
35 bool IsGpuProfilingEnabled() const { return m_EnableGpuProfiling; }
36 bool IsFastMathEnabled() const { return m_FastMathEnabled; }
37 bool GetFp16Enabled() const { return m_fp16Enabled; }
38 void SetBackends(const std::vector<armnn::BackendId>& backends) { m_Backends = backends; }
39 bool ShouldExit() const { return m_ShouldExit; }
40 int GetExitCode() const { return m_ExitCode; }
41 const std::string& GetCachedNetworkFilePath() const { return m_CachedNetworkFilePath; }
42 bool SaveCachedNetwork() const { return m_SaveCachedNetwork; }
43 unsigned int GetNumberOfThreads() const { return m_NumberOfThreads; }
44 bool isAsyncModelExecutionEnabled() const { return m_EnableAsyncModelExecution; };
45 unsigned int getNoOfArmnnThreads() const { return m_ArmnnNumberOfThreads; };
46
47private:
48 std::vector<armnn::BackendId> m_Backends;
49 bool m_VerboseLogging;
50 std::string m_RequestInputsAndOutputsDumpDir;
51 std::string m_ServiceName;
52 std::set<unsigned int> m_ForcedUnsupportedOperations;
53 std::string m_ClTunedParametersFile;
54 std::string m_ClMLGOTunedParametersFile;
55 armnn::IGpuAccTunedParameters::Mode m_ClTunedParametersMode;
56 armnn::IGpuAccTunedParameters::TuningLevel m_ClTuningLevel;
57 bool m_EnableGpuProfiling;
58 bool m_fp16Enabled;
59 bool m_FastMathEnabled;
60 bool m_ShouldExit;
61 int m_ExitCode;
62 std::string m_CachedNetworkFilePath;
63 bool m_SaveCachedNetwork;
64 unsigned int m_NumberOfThreads;
65 bool m_EnableAsyncModelExecution;
66 unsigned int m_ArmnnNumberOfThreads;
67};
68
69} // namespace armnn_driver