aboutsummaryrefslogtreecommitdiff
path: root/arm_compute/runtime/IScheduler.h
diff options
context:
space:
mode:
authorDana Zlotnik <dankir01@e109190.kfn.arm.com>2021-11-10 11:50:58 +0200
committerDana Zlotnik <dana.zlotnik@arm.com>2021-11-16 11:54:34 +0000
commitd7154dbf0f4a347f2f35f2475a893f1631c5ee1a (patch)
tree2a9e3d6ef6eff030f6bccb43650884a7aa3c1941 /arm_compute/runtime/IScheduler.h
parente7a5b0e133b977ef80d31e86f4eb6e94eae5ba17 (diff)
downloadComputeLibrary-d7154dbf0f4a347f2f35f2475a893f1631c5ee1a.tar.gz
Implement 1D Adaptive Workload Splitting in CPPScheduler
Resolves COMPMID-4649 Change-Id: I941d2f8a40737ff05c49f6695a42884731ef2dc9 Signed-off-by: Dana Zlotnik <dana.zlotnik@arm.com> Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/6656 Tested-by: Arm Jenkins <bsgcomp@arm.com> Reviewed-by: SiCong Li <sicong.li@arm.com> Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'arm_compute/runtime/IScheduler.h')
-rw-r--r--arm_compute/runtime/IScheduler.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/arm_compute/runtime/IScheduler.h b/arm_compute/runtime/IScheduler.h
index 3759fee8a8..f67357dcfd 100644
--- a/arm_compute/runtime/IScheduler.h
+++ b/arm_compute/runtime/IScheduler.h
@@ -215,6 +215,19 @@ protected:
*/
void schedule_common(ICPPKernel *kernel, const Hints &hints, const Window &window, ITensorPack &tensors);
+ /** Adjust the number of windows to the optimize performance
+ * (used for small workloads where smaller number of threads might improve the performance)
+ *
+ * @param[in] window Window to use for kernel execution
+ * @param[in] split_dimension Axis of dimension to split
+ * @param[in] init_num_windows Initial number of sub-windows to split
+ * @param[in] kernel Kernel to execute
+ * @param[in] cpu_info The CPU platform used to create the context.
+ *
+ * @return Adjusted number of windows
+ */
+ std::size_t adjust_num_of_windows(const Window &window, std::size_t split_dimension, std::size_t init_num_windows, const ICPPKernel &kernel, const CPUInfo &cpu_info);
+
private:
unsigned int _num_threads_hint = {};
};