aboutsummaryrefslogtreecommitdiff
path: root/arm_compute/runtime/CPP/CPPScheduler.h
diff options
context:
space:
mode:
authorGeorgios Pinitas <georgios.pinitas@arm.com>2019-07-25 13:31:10 +0100
committerGeorgios Pinitas <georgios.pinitas@arm.com>2019-09-09 11:22:01 +0000
commit12833d063259cb7809a97a4262f821efdc40554f (patch)
tree455333091c9eeba97079a385e0186f56076f5169 /arm_compute/runtime/CPP/CPPScheduler.h
parented0e35bfe15bad01387504afc15b8553e585bdb9 (diff)
downloadComputeLibrary-12833d063259cb7809a97a4262f821efdc40554f.tar.gz
COMPMID-2204: RuntimeContext interface for NEON functions.
This patch creates the interfaces for the runtime context for NEON. Only the Neon backend implements the context which currently only holds an instance of the scheduler. The NEActivationLayer function has been updated to use the new context interface and the corresponding validation tests ported. Change-Id: I32e7e6aa888796dcbbfc5039b1e7f784a24f47da Signed-off-by: Pablo Tello <pablo.tello@arm.com> Reviewed-on: https://review.mlplatform.org/c/1851 Comments-Addressed: Arm Jenkins <bsgcomp@arm.com> Tested-by: Arm Jenkins <bsgcomp@arm.com> Reviewed-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Diffstat (limited to 'arm_compute/runtime/CPP/CPPScheduler.h')
-rw-r--r--arm_compute/runtime/CPP/CPPScheduler.h21
1 files changed, 11 insertions, 10 deletions
diff --git a/arm_compute/runtime/CPP/CPPScheduler.h b/arm_compute/runtime/CPP/CPPScheduler.h
index 17ed8310a4..69cd25f994 100644
--- a/arm_compute/runtime/CPP/CPPScheduler.h
+++ b/arm_compute/runtime/CPP/CPPScheduler.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2016-2018 ARM Limited.
+ * Copyright (c) 2016-2019 ARM Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -26,14 +26,18 @@
#include "arm_compute/runtime/IScheduler.h"
-#include <list>
+#include <memory>
namespace arm_compute
{
/** C++11 implementation of a pool of threads to automatically split a kernel's execution among several threads. */
-class CPPScheduler : public IScheduler
+class CPPScheduler final : public IScheduler
{
public:
+ /** Constructor: create a pool of threads. */
+ CPPScheduler();
+ /** Default destructor */
+ ~CPPScheduler();
/** Sets the number of threads the scheduler will use to run the kernels.
*
* @param[in] num_threads If set to 0, then the maximum number of threads supported by C++11 will be used, otherwise the number of threads specified.
@@ -47,6 +51,7 @@ public:
/** Access the scheduler singleton
*
+ * @note this method has been deprecated and will be remover in the upcoming releases
* @return The scheduler
*/
static CPPScheduler &get();
@@ -69,12 +74,8 @@ protected:
void run_workloads(std::vector<Workload> &workloads) override;
private:
- class Thread;
- /** Constructor: create a pool of threads. */
- CPPScheduler();
-
- unsigned int _num_threads;
- std::list<Thread> _threads;
+ struct Impl;
+ std::unique_ptr<Impl> _impl;
};
-}
+} // namespace arm_compute
#endif /* __ARM_COMPUTE_CPPSCHEDULER_H__ */