diff options
author | Hamza Butt <hamza.butt@arm.com> | 2024-05-17 12:11:55 +0000 |
---|---|---|
committer | Hamza Butt <hamza.butt@arm.com> | 2024-05-23 12:47:33 +0000 |
commit | f1723a0f1fb04ab1dc34f3d36b32f73e8817822d (patch) | |
tree | 87139b91c171a135274c0b6e4cfc8733bfa91151 /src/runtime/OMP | |
parent | 9c902b78faec3abebc269690ddced28c494315fd (diff) | |
download | ComputeLibrary-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.cpp | 10 |
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) { |