blob: 141ca8a2fe029d9725cd087423bbb7b0795f0a6d [file] [log] [blame]
telsoa01ce3e84a2018-08-31 09:31:35 +01001//
2// Copyright © 2017 Arm Ltd. All rights reserved.
David Beck93e48982018-09-05 13:05:09 +01003// SPDX-License-Identifier: MIT
telsoa01ce3e84a2018-08-31 09:31:35 +01004//
5
6#pragma once
7
8#include <armnn/ArmNN.hpp>
9
10#include <set>
11#include <string>
Nattapat Chaimanowongd5fd9762019-04-04 13:33:10 +010012#include <vector>
telsoa01ce3e84a2018-08-31 09:31:35 +010013
14namespace armnn_driver
15{
16
17class DriverOptions
18{
19public:
Nikhil Raj77605822018-09-03 11:25:56 +010020 DriverOptions(armnn::Compute computeDevice, bool fp16Enabled = false);
Nattapat Chaimanowongd5fd9762019-04-04 13:33:10 +010021 DriverOptions(const std::vector<armnn::BackendId>& backends, bool fp16Enabled);
telsoa01ce3e84a2018-08-31 09:31:35 +010022 DriverOptions(int argc, char** argv);
23 DriverOptions(DriverOptions&& other) = default;
24
Nattapat Chaimanowongd5fd9762019-04-04 13:33:10 +010025 const std::vector<armnn::BackendId>& GetBackends() const { return m_Backends; }
telsoa01ce3e84a2018-08-31 09:31:35 +010026 bool IsVerboseLoggingEnabled() const { return m_VerboseLogging; }
27 const std::string& GetRequestInputsAndOutputsDumpDir() const { return m_RequestInputsAndOutputsDumpDir; }
28 const std::set<unsigned int>& GetForcedUnsupportedOperations() const { return m_ForcedUnsupportedOperations; }
29 const std::string& GetClTunedParametersFile() const { return m_ClTunedParametersFile; }
30 armnn::IGpuAccTunedParameters::Mode GetClTunedParametersMode() const { return m_ClTunedParametersMode; }
Ruomei Yan689c6ee2019-04-25 17:48:41 +010031 armnn::IGpuAccTunedParameters::TuningLevel GetClTuningLevel() const { return m_ClTuningLevel; }
telsoa01ce3e84a2018-08-31 09:31:35 +010032 bool IsGpuProfilingEnabled() const { return m_EnableGpuProfiling; }
33 bool GetFp16Enabled() const { return m_fp16Enabled; }
Narumol Prangnawarat856d1c92019-05-03 16:42:52 +010034 void SetBackends(const std::vector<armnn::BackendId>& backends) { m_Backends = backends; }
telsoa01ce3e84a2018-08-31 09:31:35 +010035
36private:
Nattapat Chaimanowongd5fd9762019-04-04 13:33:10 +010037 std::vector<armnn::BackendId> m_Backends;
telsoa01ce3e84a2018-08-31 09:31:35 +010038 bool m_VerboseLogging;
39 std::string m_RequestInputsAndOutputsDumpDir;
40 std::set<unsigned int> m_ForcedUnsupportedOperations;
41 std::string m_ClTunedParametersFile;
42 armnn::IGpuAccTunedParameters::Mode m_ClTunedParametersMode;
Ruomei Yan689c6ee2019-04-25 17:48:41 +010043 armnn::IGpuAccTunedParameters::TuningLevel m_ClTuningLevel;
telsoa01ce3e84a2018-08-31 09:31:35 +010044 bool m_EnableGpuProfiling;
45 bool m_fp16Enabled;
46};
47
48} // namespace armnn_driver