blob: 895af57426c39beb3d030b6af0196d586ca3f1a7 [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; }
34
35private:
Nattapat Chaimanowongd5fd9762019-04-04 13:33:10 +010036 std::vector<armnn::BackendId> m_Backends;
telsoa01ce3e84a2018-08-31 09:31:35 +010037 bool m_VerboseLogging;
38 std::string m_RequestInputsAndOutputsDumpDir;
39 std::set<unsigned int> m_ForcedUnsupportedOperations;
40 std::string m_ClTunedParametersFile;
41 armnn::IGpuAccTunedParameters::Mode m_ClTunedParametersMode;
Ruomei Yan689c6ee2019-04-25 17:48:41 +010042 armnn::IGpuAccTunedParameters::TuningLevel m_ClTuningLevel;
telsoa01ce3e84a2018-08-31 09:31:35 +010043 bool m_EnableGpuProfiling;
44 bool m_fp16Enabled;
45};
46
47} // namespace armnn_driver