Sadik Armagan | 045f6be | 2020-09-10 13:37:32 +0100 | [diff] [blame] | 1 | // |
| 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 Armagan | dea8fb6 | 2020-11-26 10:38:11 +0000 | [diff] [blame] | 9 | #include<string> |
| 10 | |
Sadik Armagan | 045f6be | 2020-09-10 13:37:32 +0100 | [diff] [blame] | 11 | namespace armnn |
| 12 | { |
| 13 | |
Mike Kelly | f9f33a0 | 2020-10-14 11:48:21 +0100 | [diff] [blame] | 14 | /// 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. |
Matthew Sloyan | 9d7a332 | 2021-01-12 16:19:43 +0000 | [diff] [blame] | 19 | /// - "SaveCachedNetwork"\n |
| 20 | /// Using the save_cached_network flag enables saving the cached network\n |
| 21 | /// to a file given with the cached_network_file_path option. |
| 22 | /// - "CachedNetworkFilePath"\n |
| 23 | /// If the cached_network_file_path is a valid file and the save_cached_network flag is present\n |
| 24 | /// then the cached network will be saved to the given file.\n |
| 25 | /// If the cached_network_file_path is a valid file and the save_cached_network flag is not present\n |
| 26 | /// then the cached network will be loaded from the given file.\n |
| 27 | /// This will remove the time taken for initial compilation of kernels and speed up the first execution. |
Sadik Armagan | 045f6be | 2020-09-10 13:37:32 +0100 | [diff] [blame] | 28 | class ClBackendModelContext : public IBackendModelContext |
| 29 | { |
| 30 | public: |
| 31 | ClBackendModelContext(const ModelOptions& modelOptions); |
| 32 | |
Sadik Armagan | dea8fb6 | 2020-11-26 10:38:11 +0000 | [diff] [blame] | 33 | std::string GetCachedNetworkFilePath() const; |
| 34 | |
Sadik Armagan | 045f6be | 2020-09-10 13:37:32 +0100 | [diff] [blame] | 35 | bool IsFastMathEnabled() const; |
| 36 | |
Sadik Armagan | dea8fb6 | 2020-11-26 10:38:11 +0000 | [diff] [blame] | 37 | bool SaveCachedNetwork() const; |
| 38 | |
Sadik Armagan | b7851f9 | 2021-10-06 16:37:02 +0100 | [diff] [blame] | 39 | int GetCachedFileDescriptor() const; |
| 40 | |
Sadik Armagan | 045f6be | 2020-09-10 13:37:32 +0100 | [diff] [blame] | 41 | private: |
Sadik Armagan | dea8fb6 | 2020-11-26 10:38:11 +0000 | [diff] [blame] | 42 | std::string m_CachedNetworkFilePath; |
Sadik Armagan | 045f6be | 2020-09-10 13:37:32 +0100 | [diff] [blame] | 43 | bool m_IsFastMathEnabled; |
Sadik Armagan | dea8fb6 | 2020-11-26 10:38:11 +0000 | [diff] [blame] | 44 | bool m_SaveCachedNetwork; |
Sadik Armagan | b7851f9 | 2021-10-06 16:37:02 +0100 | [diff] [blame] | 45 | int m_CachedFileDescriptor; |
Sadik Armagan | dea8fb6 | 2020-11-26 10:38:11 +0000 | [diff] [blame] | 46 | |
Sadik Armagan | 045f6be | 2020-09-10 13:37:32 +0100 | [diff] [blame] | 47 | }; |
| 48 | |
| 49 | } // namespace armnn |