blob: 270592e94dc9dc9b38ca767d8c91f7b95fba5715 [file] [log] [blame]
Sadik Armagan045f6be2020-09-10 13:37:32 +01001//
2// Copyright © 2020 Arm Ltd and Contributors. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5
6#include "NeonBackendModelContext.hpp"
7
8namespace
9{
10
11bool ParseBool(const armnn::BackendOptions::Var& value, bool defaultValue)
12{
13 if (value.IsBool())
14 {
15 return value.AsBool();
16 }
17 return defaultValue;
18}
19
Matthew Sloyan0a7dc6b2021-02-10 16:50:53 +000020unsigned int ParseUnsignedInt(const armnn::BackendOptions::Var& value, unsigned int defaultValue)
21{
22 if (value.IsUnsignedInt())
23 {
24 return value.AsUnsignedInt();
25 }
26 return defaultValue;
27}
28
Sadik Armagan045f6be2020-09-10 13:37:32 +010029} // namespace anonymous
30
31namespace armnn
32{
33
34NeonBackendModelContext::NeonBackendModelContext(const ModelOptions& modelOptions)
Matthew Sloyan0a7dc6b2021-02-10 16:50:53 +000035 : m_IsFastMathEnabled(false), m_NumberOfThreads(0)
Sadik Armagan045f6be2020-09-10 13:37:32 +010036{
37 if (!modelOptions.empty())
38 {
39 ParseOptions(modelOptions, "CpuAcc", [&](std::string name, const BackendOptions::Var& value)
40 {
41 if (name == "FastMathEnabled")
42 {
43 m_IsFastMathEnabled |= ParseBool(value, false);
44 }
Matthew Sloyan0a7dc6b2021-02-10 16:50:53 +000045 if (name == "NumberOfThreads")
46 {
47 m_NumberOfThreads |= ParseUnsignedInt(value, 0);
48 }
Sadik Armagan045f6be2020-09-10 13:37:32 +010049 });
50 }
51}
52
53bool NeonBackendModelContext::IsFastMathEnabled() const
54{
55 return m_IsFastMathEnabled;
56}
57
Matthew Sloyan0a7dc6b2021-02-10 16:50:53 +000058unsigned int NeonBackendModelContext::GetNumberOfThreads() const
59{
60 return m_NumberOfThreads;
61}
62
Sadik Armagan045f6be2020-09-10 13:37:32 +010063} // namespace armnn