telsoa01 | ce3e84a | 2018-08-31 09:31:35 +0100 | [diff] [blame] | 1 | // |
| 2 | // Copyright © 2017 Arm Ltd. All rights reserved. |
David Beck | 93e4898 | 2018-09-05 13:05:09 +0100 | [diff] [blame] | 3 | // SPDX-License-Identifier: MIT |
telsoa01 | ce3e84a | 2018-08-31 09:31:35 +0100 | [diff] [blame] | 4 | // |
| 5 | |
| 6 | #pragma once |
| 7 | |
| 8 | #include <armnn/ArmNN.hpp> |
| 9 | |
| 10 | #include <set> |
| 11 | #include <string> |
Nattapat Chaimanowong | d5fd976 | 2019-04-04 13:33:10 +0100 | [diff] [blame] | 12 | #include <vector> |
telsoa01 | ce3e84a | 2018-08-31 09:31:35 +0100 | [diff] [blame] | 13 | |
| 14 | namespace armnn_driver |
| 15 | { |
| 16 | |
| 17 | class DriverOptions |
| 18 | { |
| 19 | public: |
Nikhil Raj | 7760582 | 2018-09-03 11:25:56 +0100 | [diff] [blame] | 20 | DriverOptions(armnn::Compute computeDevice, bool fp16Enabled = false); |
Nattapat Chaimanowong | d5fd976 | 2019-04-04 13:33:10 +0100 | [diff] [blame] | 21 | DriverOptions(const std::vector<armnn::BackendId>& backends, bool fp16Enabled); |
telsoa01 | ce3e84a | 2018-08-31 09:31:35 +0100 | [diff] [blame] | 22 | DriverOptions(int argc, char** argv); |
| 23 | DriverOptions(DriverOptions&& other) = default; |
| 24 | |
Nattapat Chaimanowong | d5fd976 | 2019-04-04 13:33:10 +0100 | [diff] [blame] | 25 | const std::vector<armnn::BackendId>& GetBackends() const { return m_Backends; } |
telsoa01 | ce3e84a | 2018-08-31 09:31:35 +0100 | [diff] [blame] | 26 | bool IsVerboseLoggingEnabled() const { return m_VerboseLogging; } |
| 27 | const std::string& GetRequestInputsAndOutputsDumpDir() const { return m_RequestInputsAndOutputsDumpDir; } |
Kevin May | abc95d0 | 2020-05-15 15:34:03 +0100 | [diff] [blame] | 28 | const std::string& GetServiceName() const { return m_ServiceName; } |
telsoa01 | ce3e84a | 2018-08-31 09:31:35 +0100 | [diff] [blame] | 29 | const std::set<unsigned int>& GetForcedUnsupportedOperations() const { return m_ForcedUnsupportedOperations; } |
| 30 | const std::string& GetClTunedParametersFile() const { return m_ClTunedParametersFile; } |
Finn Williams | f5ca16c | 2021-02-12 14:26:23 +0000 | [diff] [blame] | 31 | const std::string& GetClMLGOTunedParametersFile() const { return m_ClMLGOTunedParametersFile; } |
telsoa01 | ce3e84a | 2018-08-31 09:31:35 +0100 | [diff] [blame] | 32 | armnn::IGpuAccTunedParameters::Mode GetClTunedParametersMode() const { return m_ClTunedParametersMode; } |
Ruomei Yan | 689c6ee | 2019-04-25 17:48:41 +0100 | [diff] [blame] | 33 | armnn::IGpuAccTunedParameters::TuningLevel GetClTuningLevel() const { return m_ClTuningLevel; } |
telsoa01 | ce3e84a | 2018-08-31 09:31:35 +0100 | [diff] [blame] | 34 | bool IsGpuProfilingEnabled() const { return m_EnableGpuProfiling; } |
Mike Kelly | 7ed56dd | 2020-09-30 20:22:56 +0100 | [diff] [blame] | 35 | bool IsFastMathEnabled() const { return m_FastMathEnabled; } |
telsoa01 | ce3e84a | 2018-08-31 09:31:35 +0100 | [diff] [blame] | 36 | bool GetFp16Enabled() const { return m_fp16Enabled; } |
Narumol Prangnawarat | 856d1c9 | 2019-05-03 16:42:52 +0100 | [diff] [blame] | 37 | void SetBackends(const std::vector<armnn::BackendId>& backends) { m_Backends = backends; } |
Mike Kelly | 6df71fd | 2020-10-13 17:50:05 +0100 | [diff] [blame] | 38 | bool ShouldExit() const { return m_ShouldExit; } |
| 39 | int GetExitCode() const { return m_ExitCode; } |
Sadik Armagan | f36e10b | 2021-01-11 16:34:01 +0000 | [diff] [blame] | 40 | const std::string& GetCachedNetworkFilePath() const { return m_CachedNetworkFilePath; } |
| 41 | bool SaveCachedNetwork() const { return m_SaveCachedNetwork; } |
Matthew Sloyan | cd639c9 | 2021-02-11 16:57:38 +0000 | [diff] [blame] | 42 | unsigned int GetNumberOfThreads() const { return m_NumberOfThreads; } |
Finn Williams | d8fb540 | 2021-05-19 20:52:00 +0100 | [diff] [blame] | 43 | bool isAsyncModelExecutionEnabled() const { return m_EnableAsyncModelExecution; }; |
| 44 | unsigned int getNoOfArmnnThreads() const { return m_ArmnnNumberOfThreads; }; |
Narumol Prangnawarat | 558a1d4 | 2022-02-07 13:12:24 +0000 | [diff] [blame] | 45 | bool isImportEnabled() const { return m_EnableImport; }; |
| 46 | bool isExportEnabled() const { return m_EnableExport; }; |
telsoa01 | ce3e84a | 2018-08-31 09:31:35 +0100 | [diff] [blame] | 47 | |
| 48 | private: |
Nattapat Chaimanowong | d5fd976 | 2019-04-04 13:33:10 +0100 | [diff] [blame] | 49 | std::vector<armnn::BackendId> m_Backends; |
telsoa01 | ce3e84a | 2018-08-31 09:31:35 +0100 | [diff] [blame] | 50 | bool m_VerboseLogging; |
| 51 | std::string m_RequestInputsAndOutputsDumpDir; |
Kevin May | abc95d0 | 2020-05-15 15:34:03 +0100 | [diff] [blame] | 52 | std::string m_ServiceName; |
telsoa01 | ce3e84a | 2018-08-31 09:31:35 +0100 | [diff] [blame] | 53 | std::set<unsigned int> m_ForcedUnsupportedOperations; |
| 54 | std::string m_ClTunedParametersFile; |
Finn Williams | f5ca16c | 2021-02-12 14:26:23 +0000 | [diff] [blame] | 55 | std::string m_ClMLGOTunedParametersFile; |
telsoa01 | ce3e84a | 2018-08-31 09:31:35 +0100 | [diff] [blame] | 56 | armnn::IGpuAccTunedParameters::Mode m_ClTunedParametersMode; |
Ruomei Yan | 689c6ee | 2019-04-25 17:48:41 +0100 | [diff] [blame] | 57 | armnn::IGpuAccTunedParameters::TuningLevel m_ClTuningLevel; |
telsoa01 | ce3e84a | 2018-08-31 09:31:35 +0100 | [diff] [blame] | 58 | bool m_EnableGpuProfiling; |
| 59 | bool m_fp16Enabled; |
Mike Kelly | 7ed56dd | 2020-09-30 20:22:56 +0100 | [diff] [blame] | 60 | bool m_FastMathEnabled; |
Mike Kelly | 6df71fd | 2020-10-13 17:50:05 +0100 | [diff] [blame] | 61 | bool m_ShouldExit; |
| 62 | int m_ExitCode; |
Sadik Armagan | f36e10b | 2021-01-11 16:34:01 +0000 | [diff] [blame] | 63 | std::string m_CachedNetworkFilePath; |
| 64 | bool m_SaveCachedNetwork; |
Matthew Sloyan | cd639c9 | 2021-02-11 16:57:38 +0000 | [diff] [blame] | 65 | unsigned int m_NumberOfThreads; |
Finn Williams | d8fb540 | 2021-05-19 20:52:00 +0100 | [diff] [blame] | 66 | bool m_EnableAsyncModelExecution; |
| 67 | unsigned int m_ArmnnNumberOfThreads; |
Narumol Prangnawarat | 558a1d4 | 2022-02-07 13:12:24 +0000 | [diff] [blame] | 68 | bool m_EnableImport; |
| 69 | bool m_EnableExport; |
telsoa01 | ce3e84a | 2018-08-31 09:31:35 +0100 | [diff] [blame] | 70 | }; |
| 71 | |
| 72 | } // namespace armnn_driver |