1*3e777be0SXin Li // 2*3e777be0SXin Li // Copyright © 2017 Arm Ltd. All rights reserved. 3*3e777be0SXin Li // SPDX-License-Identifier: MIT 4*3e777be0SXin Li // 5*3e777be0SXin Li 6*3e777be0SXin Li #pragma once 7*3e777be0SXin Li 8*3e777be0SXin Li #include <armnn/ArmNN.hpp> 9*3e777be0SXin Li 10*3e777be0SXin Li #include <set> 11*3e777be0SXin Li #include <string> 12*3e777be0SXin Li #include <vector> 13*3e777be0SXin Li 14*3e777be0SXin Li namespace armnn_driver 15*3e777be0SXin Li { 16*3e777be0SXin Li 17*3e777be0SXin Li class DriverOptions 18*3e777be0SXin Li { 19*3e777be0SXin Li public: 20*3e777be0SXin Li DriverOptions(armnn::Compute computeDevice, bool fp16Enabled = false); 21*3e777be0SXin Li DriverOptions(const std::vector<armnn::BackendId>& backends, bool fp16Enabled); 22*3e777be0SXin Li DriverOptions(int argc, char** argv); 23*3e777be0SXin Li DriverOptions(DriverOptions&& other) = default; 24*3e777be0SXin Li GetBackends() const25*3e777be0SXin Li const std::vector<armnn::BackendId>& GetBackends() const { return m_Backends; } IsVerboseLoggingEnabled() const26*3e777be0SXin Li bool IsVerboseLoggingEnabled() const { return m_VerboseLogging; } GetRequestInputsAndOutputsDumpDir() const27*3e777be0SXin Li const std::string& GetRequestInputsAndOutputsDumpDir() const { return m_RequestInputsAndOutputsDumpDir; } GetServiceName() const28*3e777be0SXin Li const std::string& GetServiceName() const { return m_ServiceName; } GetForcedUnsupportedOperations() const29*3e777be0SXin Li const std::set<unsigned int>& GetForcedUnsupportedOperations() const { return m_ForcedUnsupportedOperations; } GetClTunedParametersFile() const30*3e777be0SXin Li const std::string& GetClTunedParametersFile() const { return m_ClTunedParametersFile; } GetClMLGOTunedParametersFile() const31*3e777be0SXin Li const std::string& GetClMLGOTunedParametersFile() const { return m_ClMLGOTunedParametersFile; } GetClTunedParametersMode() const32*3e777be0SXin Li armnn::IGpuAccTunedParameters::Mode GetClTunedParametersMode() const { return m_ClTunedParametersMode; } GetClTuningLevel() const33*3e777be0SXin Li armnn::IGpuAccTunedParameters::TuningLevel GetClTuningLevel() const { return m_ClTuningLevel; } IsGpuProfilingEnabled() const34*3e777be0SXin Li bool IsGpuProfilingEnabled() const { return m_EnableGpuProfiling; } IsFastMathEnabled() const35*3e777be0SXin Li bool IsFastMathEnabled() const { return m_FastMathEnabled; } GetFp16Enabled() const36*3e777be0SXin Li bool GetFp16Enabled() const { return m_fp16Enabled; } SetBackends(const std::vector<armnn::BackendId> & backends)37*3e777be0SXin Li void SetBackends(const std::vector<armnn::BackendId>& backends) { m_Backends = backends; } ShouldExit() const38*3e777be0SXin Li bool ShouldExit() const { return m_ShouldExit; } GetExitCode() const39*3e777be0SXin Li int GetExitCode() const { return m_ExitCode; } GetCachedNetworkFilePath() const40*3e777be0SXin Li const std::string& GetCachedNetworkFilePath() const { return m_CachedNetworkFilePath; } SaveCachedNetwork() const41*3e777be0SXin Li bool SaveCachedNetwork() const { return m_SaveCachedNetwork; } GetNumberOfThreads() const42*3e777be0SXin Li unsigned int GetNumberOfThreads() const { return m_NumberOfThreads; } isAsyncModelExecutionEnabled() const43*3e777be0SXin Li bool isAsyncModelExecutionEnabled() const { return m_EnableAsyncModelExecution; }; getNoOfArmnnThreads() const44*3e777be0SXin Li unsigned int getNoOfArmnnThreads() const { return m_ArmnnNumberOfThreads; }; isImportEnabled() const45*3e777be0SXin Li bool isImportEnabled() const { return m_EnableImport; }; isExportEnabled() const46*3e777be0SXin Li bool isExportEnabled() const { return m_EnableExport; }; 47*3e777be0SXin Li 48*3e777be0SXin Li private: 49*3e777be0SXin Li std::vector<armnn::BackendId> m_Backends; 50*3e777be0SXin Li bool m_VerboseLogging; 51*3e777be0SXin Li std::string m_RequestInputsAndOutputsDumpDir; 52*3e777be0SXin Li std::string m_ServiceName; 53*3e777be0SXin Li std::set<unsigned int> m_ForcedUnsupportedOperations; 54*3e777be0SXin Li std::string m_ClTunedParametersFile; 55*3e777be0SXin Li std::string m_ClMLGOTunedParametersFile; 56*3e777be0SXin Li armnn::IGpuAccTunedParameters::Mode m_ClTunedParametersMode; 57*3e777be0SXin Li armnn::IGpuAccTunedParameters::TuningLevel m_ClTuningLevel; 58*3e777be0SXin Li bool m_EnableGpuProfiling; 59*3e777be0SXin Li bool m_fp16Enabled; 60*3e777be0SXin Li bool m_FastMathEnabled; 61*3e777be0SXin Li bool m_ShouldExit; 62*3e777be0SXin Li int m_ExitCode; 63*3e777be0SXin Li std::string m_CachedNetworkFilePath; 64*3e777be0SXin Li bool m_SaveCachedNetwork; 65*3e777be0SXin Li unsigned int m_NumberOfThreads; 66*3e777be0SXin Li bool m_EnableAsyncModelExecution; 67*3e777be0SXin Li unsigned int m_ArmnnNumberOfThreads; 68*3e777be0SXin Li bool m_EnableImport; 69*3e777be0SXin Li bool m_EnableExport; 70*3e777be0SXin Li }; 71*3e777be0SXin Li 72*3e777be0SXin Li } // namespace armnn_driver 73