From f5053f782daa942126bd61ac1bcfc0af627b7b31 Mon Sep 17 00:00:00 2001 From: Omar Al Khatib Date: Thu, 9 May 2024 16:06:23 +0100 Subject: Update logic in the OpenMP scheduler to exclude LITTLE cores On systems with BIG/MID/LITTLE cores, we need to exclude the LITTLE cores. This is make changes to CPUInfo to detect number of LITTLE cores and set the num_threads to TOTAL_CORES-NUM_LITTLE cores Resolves [COMPMID-7014] Signed-off-by: Omar Al Khatib Change-Id: I3e1772e5b64d1c45304860be43233b7e5dd8dba1 Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/11565 Reviewed-by: Pablo Marquez Tello Tested-by: Arm Jenkins Comments-Addressed: Arm Jenkins Benchmark: Arm Jenkins --- src/core/CPP/CPPTypes.cpp | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'src/core/CPP/CPPTypes.cpp') diff --git a/src/core/CPP/CPPTypes.cpp b/src/core/CPP/CPPTypes.cpp index f6761f27b0..ef0518ed3d 100644 --- a/src/core/CPP/CPPTypes.cpp +++ b/src/core/CPP/CPPTypes.cpp @@ -145,5 +145,20 @@ unsigned long CPUInfo::get_sme2_vector_length() const return 0; #endif // ARM_COMPUTE_ENABLE_SME2 } - +bool CPUInfo::cpu_has_little_mid_big() const +{ +#if defined(__ANDROID__) + return _impl->info.has_little_mid_big(); +#else /* defined(__ANDROID__) */ + return false; +#endif /* defined(__ANDROID__) */ +} +unsigned int CPUInfo::get_cpu_num_excluding_little() const +{ +#if defined(__ANDROID__) + return _impl->info.not_little_num_cpus(); +#else /* defined(__ANDROID__) */ + return get_cpu_num(); +#endif /* defined(__ANDROID__) */ +} } // namespace arm_compute -- cgit v1.2.1