aboutsummaryrefslogtreecommitdiff
path: root/arm_compute/core/CPP/ICPPKernel.h
diff options
context:
space:
mode:
authorDana Zlotnik <dana.zlotnik@arm.com>2021-10-07 15:31:54 +0300
committerDana Zlotnik <dana.zlotnik@arm.com>2021-10-18 09:37:41 +0000
commit4cdd6b80754b3abbf54650d9359cf940a4aaf772 (patch)
tree6f0096f6d2abbc8410d4aec59f96263a05af5c2e /arm_compute/core/CPP/ICPPKernel.h
parent6d9c982a5aec543d1f7f198f0fee10a7a3a78ddb (diff)
downloadComputeLibrary-4cdd6b80754b3abbf54650d9359cf940a4aaf772.tar.gz
Implement Minimum Workload Size (MWS) in all CPPKernels used by small networks
* create get_mws method in ICPPKernel class that retuns default value for all kernels * overwrite the default value for all the kernels used by small networks (according to banchmark case) Resolves COMPMID-4648 Change-Id: I46d7cae61217213279d2ee740edc73f600b6d576 Signed-off-by: Dana Zlotnik <dana.zlotnik@arm.com> Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/6412 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/core/CPP/ICPPKernel.h')
-rw-r--r--arm_compute/core/CPP/ICPPKernel.h19
1 files changed, 18 insertions, 1 deletions
diff --git a/arm_compute/core/CPP/ICPPKernel.h b/arm_compute/core/CPP/ICPPKernel.h
index ab369ffe1d..af4a896a6c 100644
--- a/arm_compute/core/CPP/ICPPKernel.h
+++ b/arm_compute/core/CPP/ICPPKernel.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2016-2020 Arm Limited.
+ * Copyright (c) 2016-2021 Arm Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -38,6 +38,9 @@ class ITensor;
class ICPPKernel : public IKernel
{
public:
+ static constexpr size_t default_mws = 128; /* Default minimum workload size value */
+ static constexpr size_t small_network_mws = 256; /* Default Minimum workload size value for small networks */
+
/** Default destructor */
virtual ~ICPPKernel() = default;
@@ -88,6 +91,20 @@ public:
ARM_COMPUTE_UNUSED(tensors, window, info);
}
+ /** Return minimum workload size of the relevant kernel
+ *
+ * @param[in] platform The CPU platform used to create the context.
+ * @param[in] thread_count Number of threads in the execution.
+ *
+ * @return[out] mws Minimum workload size for requsted configuration.
+ */
+ virtual size_t get_mws(const CPUInfo &platform, size_t thread_count) const
+ {
+ ARM_COMPUTE_UNUSED(platform, thread_count);
+
+ return default_mws;
+ }
+
/** Name of the kernel
*
* @return Kernel name