aboutsummaryrefslogtreecommitdiff
path: root/src/armnn/backends/ClContextControl.hpp
diff options
context:
space:
mode:
authorsurmeh01 <surabhi.mehta@arm.com>2018-05-18 16:31:43 +0100
committertelsoa01 <telmo.soares@arm.com>2018-05-23 13:09:07 +0100
commit3537c2ca7ebf31c1673b9ec2bb0c17b0406bbae0 (patch)
tree5950603ad78ec3fe56fb31ddc7f4d52a19f5bc60 /src/armnn/backends/ClContextControl.hpp
parentbceff2fb3fc68bb0aa88b886900c34b77340c826 (diff)
downloadarmnn-3537c2ca7ebf31c1673b9ec2bb0c17b0406bbae0.tar.gz
Release 18.05
Diffstat (limited to 'src/armnn/backends/ClContextControl.hpp')
-rw-r--r--src/armnn/backends/ClContextControl.hpp60
1 files changed, 60 insertions, 0 deletions
diff --git a/src/armnn/backends/ClContextControl.hpp b/src/armnn/backends/ClContextControl.hpp
new file mode 100644
index 0000000000..8098e30b75
--- /dev/null
+++ b/src/armnn/backends/ClContextControl.hpp
@@ -0,0 +1,60 @@
+//
+// Copyright © 2017 Arm Ltd. All rights reserved.
+// See LICENSE file in the project root for full license information.
+//
+#pragma once
+
+#include "armnn/IRuntime.hpp"
+
+#ifdef ARMCOMPUTECL_ENABLED
+#include <arm_compute/runtime/CL/CLTuner.h>
+#endif
+
+namespace armnn
+{
+
+class IClTunedParameters;
+class ClTunedParameters;
+
+// ARM Compute OpenCL context control
+class ClContextControl
+{
+public:
+
+ ClContextControl(IClTunedParameters* clTunedParameters = nullptr);
+
+ virtual ~ClContextControl();
+
+ 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 useTunedParameters);
+
+ ClTunedParameters* m_clTunedParameters;
+
+};
+
+class ClTunedParameters : public IClTunedParameters
+{
+public:
+ ClTunedParameters(armnn::IClTunedParameters::Mode mode);
+
+ virtual void Load(const char* filename);
+ virtual void Save(const char* filename) const;
+
+ Mode m_Mode;
+
+#ifdef ARMCOMPUTECL_ENABLED
+ arm_compute::CLTuner m_Tuner;
+#endif
+};
+
+} // namespace armnn