blob: c84cdbbfcfb450b4eaac44894c7171bfec7cf407 [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#pragma once
6
7#include <armnn/backends/IBackendContext.hpp>
8
Sadik Armagandea8fb62020-11-26 10:38:11 +00009#include<string>
10
Sadik Armagan045f6be2020-09-10 13:37:32 +010011namespace armnn
12{
13
Mike Kellyf9f33a02020-10-14 11:48:21 +010014/// The ClBackendModelContext is used to pass in CL specific backend ModelOptions. The supported backend ModelOptions
15/// are:
16/// - "FastMathEnabled"\n
17/// Using the fast_math flag can lead to performance improvements in fp32 and fp16 layers but may result in\n
18/// results with reduced or different precision. The fast_math flag will not have any effect on int8 performance.
Sadik Armagan045f6be2020-09-10 13:37:32 +010019class ClBackendModelContext : public IBackendModelContext
20{
21public:
22 ClBackendModelContext(const ModelOptions& modelOptions);
23
Sadik Armagandea8fb62020-11-26 10:38:11 +000024 std::string GetCachedNetworkFilePath() const;
25
Sadik Armagan045f6be2020-09-10 13:37:32 +010026 bool IsFastMathEnabled() const;
27
Sadik Armagandea8fb62020-11-26 10:38:11 +000028 bool SaveCachedNetwork() const;
29
Sadik Armagan045f6be2020-09-10 13:37:32 +010030private:
Sadik Armagandea8fb62020-11-26 10:38:11 +000031 std::string m_CachedNetworkFilePath;
Sadik Armagan045f6be2020-09-10 13:37:32 +010032 bool m_IsFastMathEnabled;
Sadik Armagandea8fb62020-11-26 10:38:11 +000033 bool m_SaveCachedNetwork;
34
Sadik Armagan045f6be2020-09-10 13:37:32 +010035};
36
37} // namespace armnn