diff options
author | Daniel Douglas <daniel_douglas+llvm@apple.com> | 2022-06-24 11:59:22 -0500 |
---|---|---|
committer | Jonathan Peyton <jonathan.l.peyton@intel.com> | 2022-06-24 12:02:16 -0500 |
commit | d4a7b8de527da9f3fa02a86c131b41ca52bb878c (patch) | |
tree | 15a40fdb7ea76b4d5d4796e68bc5acd727189f17 /clang/lib/Frontend/CompilerInvocation.cpp | |
parent | 42bb88e2aaee30372065d7704de4d99d4552cfb6 (diff) | |
download | llvm-d4a7b8de527da9f3fa02a86c131b41ca52bb878c.zip llvm-d4a7b8de527da9f3fa02a86c131b41ca52bb878c.tar.gz llvm-d4a7b8de527da9f3fa02a86c131b41ca52bb878c.tar.bz2 |
[OpenMP][libomp] avoid spin wait and yield on arm64 macOS
This patch changes the default behavior to avoid spin waiting and
yielding. (See “Don’t Keep Threads Active And Idle” section here:
https://developer.apple.com/documentation/apple-silicon/tuning-your-code-s-performance-for-apple-silicon)
We verified using instruments traces that the changes improve scheduling
behavior on macOS.
We also collected results using EPCC schedbench
(https://github.com/LangdalP/EPCC-OpenMP-micro-benchmarks) that are
attached here that show a reduction in standard deviation and max test
run time across all scheduling types. Static scheduling sees dramatic
improvements with these changes, we see a 2-4x average runtime
improvement in the benchmark.
Differential Revision: https://reviews.llvm.org/D126510
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions