aboutsummaryrefslogtreecommitdiff
path: root/delegate/include/DelegateOptions.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'delegate/include/DelegateOptions.hpp')
-rw-r--r--delegate/include/DelegateOptions.hpp26
1 files changed, 24 insertions, 2 deletions
diff --git a/delegate/include/DelegateOptions.hpp b/delegate/include/DelegateOptions.hpp
index 0c8173d15f..daf20150be 100644
--- a/delegate/include/DelegateOptions.hpp
+++ b/delegate/include/DelegateOptions.hpp
@@ -17,19 +17,41 @@ namespace armnnDelegate
class DelegateOptions
{
public:
- DelegateOptions(armnn::Compute computeDevice);
+ DelegateOptions(armnn::Compute computeDevice, const std::vector<armnn::BackendOptions>& backendOptions = {});
- DelegateOptions(const std::vector<armnn::BackendId>& backends);
+ DelegateOptions(const std::vector<armnn::BackendId>& backends,
+ const std::vector<armnn::BackendOptions>& backendOptions = {});
const std::vector<armnn::BackendId>& GetBackends() const { return m_Backends; }
void SetBackends(const std::vector<armnn::BackendId>& backends) { m_Backends = backends; }
+ const std::vector<armnn::BackendOptions>& GetBackendOptions() const { return m_BackendOptions; }
+
private:
/// Which backend to run Delegate on.
/// Examples of possible values are: CpuRef, CpuAcc, GpuAcc.
/// CpuRef as default.
std::vector<armnn::BackendId> m_Backends = { armnn::Compute::CpuRef };
+
+ /// Pass backend specific options to Delegate
+ ///
+ /// For example, tuning can be enabled on GpuAcc like below
+ /// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ /// m_BackendOptions.emplace_back(
+ /// BackendOptions{"GpuAcc",
+ /// {
+ /// {"TuningLevel", 2},
+ /// {"TuningFile", filename}
+ /// }
+ /// });
+ /// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ /// The following backend options are available:
+ /// GpuAcc:
+ /// "TuningLevel" : int [0..3] (0=UseOnly(default) | 1=RapidTuning | 2=NormalTuning | 3=ExhaustiveTuning)
+ /// "TuningFile" : string [filenameString]
+ /// "KernelProfilingEnabled" : bool [true | false]
+ std::vector<armnn::BackendOptions> m_BackendOptions;
};
} // namespace armnnDelegate