// // Copyright © 2023 Arm Ltd and Contributors. All rights reserved. // SPDX-License-Identifier: MIT // #include "ArmComputeTuningUtils.hpp" namespace armnn { IGpuAccTunedParameters* IGpuAccTunedParameters::CreateRaw(IGpuAccTunedParameters::Mode mode, IGpuAccTunedParameters::TuningLevel tuningLevel) { return new ClTunedParameters(mode, tuningLevel); } IGpuAccTunedParametersPtr IGpuAccTunedParameters::Create(IGpuAccTunedParameters::Mode mode, IGpuAccTunedParameters::TuningLevel tuningLevel) { return IGpuAccTunedParametersPtr(CreateRaw(mode, tuningLevel), &IGpuAccTunedParameters::Destroy); } void IGpuAccTunedParameters::Destroy(IGpuAccTunedParameters* params) { delete params; } ClTunedParameters::ClTunedParameters(IGpuAccTunedParameters::Mode mode, IGpuAccTunedParameters::TuningLevel tuningLevel) : m_Mode(mode) , m_TuningLevel(tuningLevel) , m_Tuner(mode == ClTunedParameters::Mode::UpdateTunedParameters) { } void ClTunedParameters::Load(const char* filename) { try { m_Tuner.load_from_file(filename); } catch (const std::exception& e) { throw Exception(std::string("Failed to load tuned parameters file '") + filename + "': " + e.what()); } } void ClTunedParameters::Save(const char* filename) const { try { m_Tuner.save_to_file(filename); } catch (const std::exception& e) { throw Exception(std::string("Failed to save tuned parameters file to '") + filename + "': " + e.what()); } } }