blob: b685bc296cde49ece71faf3f63ac776e51ce26bf [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 "ClBackendModelContext.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
Sadik Armagandea8fb62020-11-26 10:38:11 +000020std::string ParseFile(const armnn::BackendOptions::Var& value, std::string defaultValue)
21{
22 if (value.IsString())
23 {
24 return value.AsString();
25 }
26 return defaultValue;
27}
28
Sadik Armagan045f6be2020-09-10 13:37:32 +010029} // namespace anonymous
30
31namespace armnn
32{
33
34ClBackendModelContext::ClBackendModelContext(const ModelOptions& modelOptions)
Sadik Armagandea8fb62020-11-26 10:38:11 +000035 : m_CachedNetworkFilePath(""), m_IsFastMathEnabled(false), m_SaveCachedNetwork(false)
Sadik Armagan045f6be2020-09-10 13:37:32 +010036{
37 if (!modelOptions.empty())
38 {
39 ParseOptions(modelOptions, "GpuAcc", [&](std::string name, const BackendOptions::Var& value)
40 {
41 if (name == "FastMathEnabled")
42 {
43 m_IsFastMathEnabled |= ParseBool(value, false);
44 }
Sadik Armagandea8fb62020-11-26 10:38:11 +000045 if (name == "SaveCachedNetwork")
46 {
47 m_SaveCachedNetwork |= ParseBool(value, false);
48 }
49 if (name == "CachedNetworkFilePath")
50 {
51 m_CachedNetworkFilePath = ParseFile(value, "");
52 }
Sadik Armagan045f6be2020-09-10 13:37:32 +010053 });
54 }
55}
56
Sadik Armagandea8fb62020-11-26 10:38:11 +000057std::string ClBackendModelContext::GetCachedNetworkFilePath() const
58{
59 return m_CachedNetworkFilePath;
60}
61
Sadik Armagan045f6be2020-09-10 13:37:32 +010062bool ClBackendModelContext::IsFastMathEnabled() const
63{
64 return m_IsFastMathEnabled;
65}
66
Sadik Armagandea8fb62020-11-26 10:38:11 +000067bool ClBackendModelContext::SaveCachedNetwork() const
68{
69 return m_SaveCachedNetwork;
70}
71
Sadik Armagan045f6be2020-09-10 13:37:32 +010072} // namespace armnn