diff options
Diffstat (limited to 'arm_compute')
-rw-r--r-- | arm_compute/core/CPP/ICPPKernel.h | 3 | ||||
-rw-r--r-- | arm_compute/runtime/IScheduler.h | 13 |
2 files changed, 14 insertions, 2 deletions
diff --git a/arm_compute/core/CPP/ICPPKernel.h b/arm_compute/core/CPP/ICPPKernel.h index af4a896a6c..4697316379 100644 --- a/arm_compute/core/CPP/ICPPKernel.h +++ b/arm_compute/core/CPP/ICPPKernel.h @@ -38,8 +38,7 @@ 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 */ + static constexpr size_t default_mws = 1; /* Default minimum workload size value - no impact */ /** Default destructor */ virtual ~ICPPKernel() = default; 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 = {}; }; |