// // Copyright © 2020 Arm Ltd and Contributors. All rights reserved. // SPDX-License-Identifier: MIT // #pragma once #include #include namespace armnn { /// The ClBackendModelContext is used to pass in CL specific backend ModelOptions. The supported backend ModelOptions /// are: /// - "FastMathEnabled"\n /// Using the fast_math flag can lead to performance improvements in fp32 and fp16 layers but may result in\n /// results with reduced or different precision. The fast_math flag will not have any effect on int8 performance. /// - "SaveCachedNetwork"\n /// Using the save_cached_network flag enables saving the cached network\n /// to a file given with the cached_network_file_path option. /// - "CachedNetworkFilePath"\n /// If the cached_network_file_path is a valid file and the save_cached_network flag is present\n /// then the cached network will be saved to the given file.\n /// If the cached_network_file_path is a valid file and the save_cached_network flag is not present\n /// then the cached network will be loaded from the given file.\n /// This will remove the time taken for initial compilation of kernels and speed up the first execution. class ClBackendModelContext : public IBackendModelContext { public: ClBackendModelContext(const ModelOptions& modelOptions); std::string GetCachedNetworkFilePath() const; bool IsFastMathEnabled() const; bool SaveCachedNetwork() const; int GetCachedFileDescriptor() const; private: std::string m_CachedNetworkFilePath; bool m_IsFastMathEnabled; bool m_SaveCachedNetwork; int m_CachedFileDescriptor; }; } // namespace armnn