From 4cdd6b80754b3abbf54650d9359cf940a4aaf772 Mon Sep 17 00:00:00 2001 From: Dana Zlotnik Date: Thu, 7 Oct 2021 15:31:54 +0300 Subject: 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 Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/6412 Tested-by: Arm Jenkins Reviewed-by: SiCong Li Comments-Addressed: Arm Jenkins --- arm_compute/core/CPP/ICPPKernel.h | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'arm_compute/core/CPP/ICPPKernel.h') 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 -- cgit v1.2.1