diff options
Diffstat (limited to 'src/backends/gpuFsa/GpuFsaContextControl.hpp')
-rw-r--r-- | src/backends/gpuFsa/GpuFsaContextControl.hpp | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/backends/gpuFsa/GpuFsaContextControl.hpp b/src/backends/gpuFsa/GpuFsaContextControl.hpp new file mode 100644 index 0000000000..f77b1fbdd4 --- /dev/null +++ b/src/backends/gpuFsa/GpuFsaContextControl.hpp @@ -0,0 +1,42 @@ +// +// Copyright © 2023 Arm Ltd and Contributors. All rights reserved. +// SPDX-License-Identifier: MIT +// +#pragma once + +#include <aclCommon/ArmComputeTuningUtils.hpp> + +namespace armnn +{ + +// ARM Compute OpenCL context control. +class GpuFsaContextControl +{ +public: + + GpuFsaContextControl(arm_compute::CLTuner* = nullptr, + arm_compute::CLGEMMHeuristicsHandle* = nullptr, + bool profilingEnabled = false); + + virtual ~GpuFsaContextControl(); + + void LoadOpenClRuntime(); + + // Users should call this (after freeing all of the cl::Context objects they use) + // to release the cached memory used by the compute library. + void UnloadOpenClRuntime(); + + // Clear the CL cache, without losing the tuned parameter settings. + void ClearClCache(); + +private: + + void DoLoadOpenClRuntime(bool updateTunedParameters); + + arm_compute::CLTuner* m_Tuner; + arm_compute::CLGEMMHeuristicsHandle* m_HeuristicsHandle; + + bool m_ProfilingEnabled; +}; + +} // namespace armnn |