aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/OMP
diff options
context:
space:
mode:
authorHamza Butt <hamza.butt@arm.com>2024-05-17 12:11:55 +0000
committerHamza Butt <hamza.butt@arm.com>2024-05-23 12:47:33 +0000
commitf1723a0f1fb04ab1dc34f3d36b32f73e8817822d (patch)
tree87139b91c171a135274c0b6e4cfc8733bfa91151 /src/runtime/OMP
parent9c902b78faec3abebc269690ddced28c494315fd (diff)
downloadComputeLibrary-main.tar.gz
Fix OpenMP thread scheduling for large machinesHEADrelease_candidatemain
Resolves ONCPUML-1648 and ONCPUML-1539 Signed-off-by: Hamza Butt <hamza.butt@arm.com> Change-Id: Ib70a4f8cef61c2979dfd265c0755c541930ee563 Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/11575 Comments-Addressed: Arm Jenkins <bsgcomp@arm.com> Tested-by: Arm Jenkins <bsgcomp@arm.com> Reviewed-by: Pablo Marquez Tello <pablo.tello@arm.com> Benchmark: Arm Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'src/runtime/OMP')
-rw-r--r--src/runtime/OMP/OMPScheduler.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/runtime/OMP/OMPScheduler.cpp b/src/runtime/OMP/OMPScheduler.cpp
index aba5ff2902..baffa8cbb2 100644
--- a/src/runtime/OMP/OMPScheduler.cpp
+++ b/src/runtime/OMP/OMPScheduler.cpp
@@ -118,9 +118,15 @@ void OMPScheduler::run_workloads(std::vector<arm_compute::IScheduler::Workload>
}
ThreadInfo info;
- info.cpu_info = &cpu_info();
+ info.cpu_info = &cpu_info();
+
+#if !defined(__ANDROID__)
+ info.num_threads = _num_threads;
+#else /* !__ANDROID__ */
info.num_threads = num_threads_to_use;
-#pragma omp parallel for firstprivate(info) num_threads(num_threads_to_use) default(shared) proc_bind(close) \
+#endif /* __ANDROID__ */
+
+#pragma omp parallel for firstprivate(info) num_threads(info.num_threads) default(shared) proc_bind(close) \
schedule(static, 1)
for (unsigned int wid = 0; wid < amount_of_work; ++wid)
{