aboutsummaryrefslogtreecommitdiff
path: root/arm_compute/runtime/IScheduler.h
diff options
context:
space:
mode:
authorMoritz Pflanzer <moritz.pflanzer@arm.com>2017-09-07 09:48:04 +0100
committerAnthony Barbier <anthony.barbier@arm.com>2018-11-02 16:35:24 +0000
commitc186b574e52b81c75e551cee46a6c4cc7d500c90 (patch)
tree682add7d1b705eb6d0b79b1f9a7a039dbaa4287b /arm_compute/runtime/IScheduler.h
parent3e05e4e85912e745b8555102e1bcef13478d2ceb (diff)
downloadComputeLibrary-c186b574e52b81c75e551cee46a6c4cc7d500c90.tar.gz
COMPMID-481: Add thread info parameter
Change-Id: Iebb50a88d017445b6b37a86563ebd4abd86c5cf5 Reviewed-on: http://mpd-gerrit.cambridge.arm.com/86788 Tested-by: Kaizen <jeremy.johnson+kaizengerrit@arm.com> Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
Diffstat (limited to 'arm_compute/runtime/IScheduler.h')
-rw-r--r--arm_compute/runtime/IScheduler.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/arm_compute/runtime/IScheduler.h b/arm_compute/runtime/IScheduler.h
index 39c027c6b7..6078abd06b 100644
--- a/arm_compute/runtime/IScheduler.h
+++ b/arm_compute/runtime/IScheduler.h
@@ -24,6 +24,8 @@
#ifndef __ARM_COMPUTE_ISCHEDULER_H__
#define __ARM_COMPUTE_ISCHEDULER_H__
+#include "arm_compute/core/CPP/CPPTypes.h"
+
namespace arm_compute
{
class ICPPKernel;
@@ -32,6 +34,12 @@ class ICPPKernel;
class IScheduler
{
public:
+ /** Default constructor. */
+ IScheduler()
+ : _target(CPUTarget::INTRINSICS)
+ {
+ }
+
/** Destructor. */
virtual ~IScheduler() = default;
/** Sets the number of threads the scheduler will use to run the kernels.
@@ -50,6 +58,31 @@ public:
* @param[in] split_dimension Dimension along which to split the kernel's execution window.
*/
virtual void schedule(ICPPKernel *kernel, unsigned int split_dimension) = 0;
+
+ /** Sets the target CPU architecture.
+ *
+ * @param[in] target Target CPU.
+ */
+ void set_target(CPUTarget target);
+
+ /** Return the current CPU target.
+ *
+ * @return Target CPU.
+ */
+ CPUTarget target() const;
+
+protected:
+ CPUTarget _target;
};
+
+inline void IScheduler::set_target(CPUTarget target)
+{
+ _target = target;
+}
+
+inline CPUTarget IScheduler::target() const
+{
+ return _target;
+}
}
#endif /* __ARM_COMPUTE_ISCHEDULER_H__ */