blob: f77b1fbdd4c636ff6242cb6d1da53ed538105f80 [file] [log] [blame]
David Monahan8a570462023-11-22 13:24:25 +00001//
2// Copyright © 2023 Arm Ltd and Contributors. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5#pragma once
6
7#include <aclCommon/ArmComputeTuningUtils.hpp>
8
9namespace armnn
10{
11
12// ARM Compute OpenCL context control.
13class GpuFsaContextControl
14{
15public:
16
17 GpuFsaContextControl(arm_compute::CLTuner* = nullptr,
18 arm_compute::CLGEMMHeuristicsHandle* = nullptr,
19 bool profilingEnabled = false);
20
21 virtual ~GpuFsaContextControl();
22
23 void LoadOpenClRuntime();
24
25 // Users should call this (after freeing all of the cl::Context objects they use)
26 // to release the cached memory used by the compute library.
27 void UnloadOpenClRuntime();
28
29 // Clear the CL cache, without losing the tuned parameter settings.
30 void ClearClCache();
31
32private:
33
34 void DoLoadOpenClRuntime(bool updateTunedParameters);
35
36 arm_compute::CLTuner* m_Tuner;
37 arm_compute::CLGEMMHeuristicsHandle* m_HeuristicsHandle;
38
39 bool m_ProfilingEnabled;
40};
41
42} // namespace armnn