| // |
| // Copyright © 2020 Arm Ltd and Contributors. All rights reserved. |
| // SPDX-License-Identifier: MIT |
| // |
| |
| #include "NeonBackendModelContext.hpp" |
| |
| namespace |
| { |
| |
| bool ParseBool(const armnn::BackendOptions::Var& value, bool defaultValue) |
| { |
| if (value.IsBool()) |
| { |
| return value.AsBool(); |
| } |
| return defaultValue; |
| } |
| |
| unsigned int ParseUnsignedInt(const armnn::BackendOptions::Var& value, unsigned int defaultValue) |
| { |
| if (value.IsUnsignedInt()) |
| { |
| return value.AsUnsignedInt(); |
| } |
| return defaultValue; |
| } |
| |
| } // namespace anonymous |
| |
| namespace armnn |
| { |
| |
| NeonBackendModelContext::NeonBackendModelContext(const ModelOptions& modelOptions) |
| : m_IsFastMathEnabled(false), m_NumberOfThreads(0) |
| { |
| if (!modelOptions.empty()) |
| { |
| ParseOptions(modelOptions, "CpuAcc", [&](std::string name, const BackendOptions::Var& value) |
| { |
| if (name == "FastMathEnabled") |
| { |
| m_IsFastMathEnabled |= ParseBool(value, false); |
| } |
| if (name == "NumberOfThreads") |
| { |
| m_NumberOfThreads |= ParseUnsignedInt(value, 0); |
| } |
| }); |
| } |
| } |
| |
| bool NeonBackendModelContext::IsFastMathEnabled() const |
| { |
| return m_IsFastMathEnabled; |
| } |
| |
| unsigned int NeonBackendModelContext::GetNumberOfThreads() const |
| { |
| return m_NumberOfThreads; |
| } |
| |
| } // namespace armnn |