1*89c4ff92SAndroid Build Coastguard Worker // 2*89c4ff92SAndroid Build Coastguard Worker // Copyright © 2022 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 #pragma once 7*89c4ff92SAndroid Build Coastguard Worker 8*89c4ff92SAndroid Build Coastguard Worker #include <armnn/ArmNN.hpp> 9*89c4ff92SAndroid Build Coastguard Worker 10*89c4ff92SAndroid Build Coastguard Worker #include <set> 11*89c4ff92SAndroid Build Coastguard Worker #include <string> 12*89c4ff92SAndroid Build Coastguard Worker #include <vector> 13*89c4ff92SAndroid Build Coastguard Worker 14*89c4ff92SAndroid Build Coastguard Worker namespace armnn_driver 15*89c4ff92SAndroid Build Coastguard Worker { 16*89c4ff92SAndroid Build Coastguard Worker 17*89c4ff92SAndroid Build Coastguard Worker class DriverOptions 18*89c4ff92SAndroid Build Coastguard Worker { 19*89c4ff92SAndroid Build Coastguard Worker public: 20*89c4ff92SAndroid Build Coastguard Worker DriverOptions(armnn::Compute computeDevice, bool fp16Enabled = false); 21*89c4ff92SAndroid Build Coastguard Worker DriverOptions(const std::vector<armnn::BackendId>& backends, bool fp16Enabled = false); 22*89c4ff92SAndroid Build Coastguard Worker DriverOptions(); 23*89c4ff92SAndroid Build Coastguard Worker DriverOptions(DriverOptions&& other) = default; 24*89c4ff92SAndroid Build Coastguard Worker 25*89c4ff92SAndroid Build Coastguard Worker GetBackends() const26*89c4ff92SAndroid Build Coastguard Worker const std::vector<armnn::BackendId>& GetBackends() const { return m_Backends; } IsVerboseLoggingEnabled() const27*89c4ff92SAndroid Build Coastguard Worker bool IsVerboseLoggingEnabled() const { return m_VerboseLogging; } GetRequestInputsAndOutputsDumpDir() const28*89c4ff92SAndroid Build Coastguard Worker const std::string& GetRequestInputsAndOutputsDumpDir() const { return m_RequestInputsAndOutputsDumpDir; } GetServiceName() const29*89c4ff92SAndroid Build Coastguard Worker const std::string& GetServiceName() const { return m_ServiceName; } GetForcedUnsupportedOperations() const30*89c4ff92SAndroid Build Coastguard Worker const std::set<unsigned int>& GetForcedUnsupportedOperations() const { return m_ForcedUnsupportedOperations; } GetClTunedParametersFile() const31*89c4ff92SAndroid Build Coastguard Worker const std::string& GetClTunedParametersFile() const { return m_ClTunedParametersFile; } GetClMLGOTunedParametersFile() const32*89c4ff92SAndroid Build Coastguard Worker const std::string& GetClMLGOTunedParametersFile() const { return m_ClMLGOTunedParametersFile; } GetClTunedParametersMode() const33*89c4ff92SAndroid Build Coastguard Worker armnn::IGpuAccTunedParameters::Mode GetClTunedParametersMode() const { return m_ClTunedParametersMode; } GetClTuningLevel() const34*89c4ff92SAndroid Build Coastguard Worker armnn::IGpuAccTunedParameters::TuningLevel GetClTuningLevel() const { return m_ClTuningLevel; } IsGpuProfilingEnabled() const35*89c4ff92SAndroid Build Coastguard Worker bool IsGpuProfilingEnabled() const { return m_EnableGpuProfiling; } IsFastMathEnabled() const36*89c4ff92SAndroid Build Coastguard Worker bool IsFastMathEnabled() const { return m_FastMathEnabled; } GetFp16Enabled() const37*89c4ff92SAndroid Build Coastguard Worker bool GetFp16Enabled() const { return m_fp16Enabled; } SetBackends(const std::vector<armnn::BackendId> & backends)38*89c4ff92SAndroid Build Coastguard Worker void SetBackends(const std::vector<armnn::BackendId>& backends) { m_Backends = backends; } ShouldExit() const39*89c4ff92SAndroid Build Coastguard Worker bool ShouldExit() const { return m_ShouldExit; } GetExitCode() const40*89c4ff92SAndroid Build Coastguard Worker int GetExitCode() const { return m_ExitCode; } GetCachedNetworkFilePath() const41*89c4ff92SAndroid Build Coastguard Worker const std::string& GetCachedNetworkFilePath() const { return m_CachedNetworkFilePath; } SaveCachedNetwork() const42*89c4ff92SAndroid Build Coastguard Worker bool SaveCachedNetwork() const { return m_SaveCachedNetwork; } GetNumberOfThreads() const43*89c4ff92SAndroid Build Coastguard Worker unsigned int GetNumberOfThreads() const { return m_NumberOfThreads; } isAsyncModelExecutionEnabled() const44*89c4ff92SAndroid Build Coastguard Worker bool isAsyncModelExecutionEnabled() const { return m_EnableAsyncModelExecution; }; getNoOfArmnnThreads() const45*89c4ff92SAndroid Build Coastguard Worker unsigned int getNoOfArmnnThreads() const { return m_ArmnnNumberOfThreads; }; 46*89c4ff92SAndroid Build Coastguard Worker 47*89c4ff92SAndroid Build Coastguard Worker private: 48*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> m_Backends; 49*89c4ff92SAndroid Build Coastguard Worker bool m_VerboseLogging; 50*89c4ff92SAndroid Build Coastguard Worker std::string m_RequestInputsAndOutputsDumpDir; 51*89c4ff92SAndroid Build Coastguard Worker std::string m_ServiceName; 52*89c4ff92SAndroid Build Coastguard Worker std::set<unsigned int> m_ForcedUnsupportedOperations; 53*89c4ff92SAndroid Build Coastguard Worker std::string m_ClTunedParametersFile; 54*89c4ff92SAndroid Build Coastguard Worker std::string m_ClMLGOTunedParametersFile; 55*89c4ff92SAndroid Build Coastguard Worker armnn::IGpuAccTunedParameters::Mode m_ClTunedParametersMode; 56*89c4ff92SAndroid Build Coastguard Worker armnn::IGpuAccTunedParameters::TuningLevel m_ClTuningLevel; 57*89c4ff92SAndroid Build Coastguard Worker bool m_EnableGpuProfiling; 58*89c4ff92SAndroid Build Coastguard Worker bool m_fp16Enabled; 59*89c4ff92SAndroid Build Coastguard Worker bool m_FastMathEnabled; 60*89c4ff92SAndroid Build Coastguard Worker bool m_ShouldExit; 61*89c4ff92SAndroid Build Coastguard Worker int m_ExitCode; 62*89c4ff92SAndroid Build Coastguard Worker std::string m_CachedNetworkFilePath; 63*89c4ff92SAndroid Build Coastguard Worker bool m_SaveCachedNetwork; 64*89c4ff92SAndroid Build Coastguard Worker unsigned int m_NumberOfThreads; 65*89c4ff92SAndroid Build Coastguard Worker bool m_EnableAsyncModelExecution; 66*89c4ff92SAndroid Build Coastguard Worker unsigned int m_ArmnnNumberOfThreads; 67*89c4ff92SAndroid Build Coastguard Worker }; 68*89c4ff92SAndroid Build Coastguard Worker 69*89c4ff92SAndroid Build Coastguard Worker } // namespace armnn_driver 70