| // |
| // Copyright © 2020 Arm Ltd and Contributors. All rights reserved. |
| // SPDX-License-Identifier: MIT |
| // |
| |
| #include "ClBackendModelContext.hpp" |
| |
| namespace |
| { |
| |
| bool ParseBool(const armnn::BackendOptions::Var& value, bool defaultValue) |
| { |
| if (value.IsBool()) |
| { |
| return value.AsBool(); |
| } |
| return defaultValue; |
| } |
| |
| std::string ParseFile(const armnn::BackendOptions::Var& value, std::string defaultValue) |
| { |
| if (value.IsString()) |
| { |
| return value.AsString(); |
| } |
| return defaultValue; |
| } |
| |
| } // namespace anonymous |
| |
| namespace armnn |
| { |
| |
| ClBackendModelContext::ClBackendModelContext(const ModelOptions& modelOptions) |
| : m_CachedNetworkFilePath(""), m_IsFastMathEnabled(false), m_SaveCachedNetwork(false) |
| { |
| if (!modelOptions.empty()) |
| { |
| ParseOptions(modelOptions, "GpuAcc", [&](std::string name, const BackendOptions::Var& value) |
| { |
| if (name == "FastMathEnabled") |
| { |
| m_IsFastMathEnabled |= ParseBool(value, false); |
| } |
| if (name == "SaveCachedNetwork") |
| { |
| m_SaveCachedNetwork |= ParseBool(value, false); |
| } |
| if (name == "CachedNetworkFilePath") |
| { |
| m_CachedNetworkFilePath = ParseFile(value, ""); |
| } |
| }); |
| } |
| } |
| |
| std::string ClBackendModelContext::GetCachedNetworkFilePath() const |
| { |
| return m_CachedNetworkFilePath; |
| } |
| |
| bool ClBackendModelContext::IsFastMathEnabled() const |
| { |
| return m_IsFastMathEnabled; |
| } |
| |
| bool ClBackendModelContext::SaveCachedNetwork() const |
| { |
| return m_SaveCachedNetwork; |
| } |
| |
| } // namespace armnn |