[Openmp-commits] [PATCH] D126510: [OpenMP][libomp] avoid spin wait and yield on arm64 macOS
Jonathan Peyton via Phabricator via Openmp-commits
openmp-commits at lists.llvm.org
Fri Jun 24 10:02:32 PDT 2022
This revision was automatically updated to reflect the committed changes.
Closed by commit rGd4a7b8de527d: [OpenMP][libomp] avoid spin wait and yield on arm64 macOS (authored by danieljdouglas-deco, committed by jlpeyton).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D126510/new/
https://reviews.llvm.org/D126510
Files:
openmp/runtime/src/kmp.h
openmp/runtime/src/kmp_global.cpp
openmp/runtime/src/kmp_runtime.cpp
Index: openmp/runtime/src/kmp_runtime.cpp
===================================================================
--- openmp/runtime/src/kmp_runtime.cpp
+++ openmp/runtime/src/kmp_runtime.cpp
@@ -8300,7 +8300,7 @@
break;
case library_throughput:
if (__kmp_dflt_blocktime == KMP_MAX_BLOCKTIME)
- __kmp_dflt_blocktime = 200;
+ __kmp_dflt_blocktime = KMP_DEFAULT_BLOCKTIME;
break;
default:
KMP_FATAL(UnknownLibraryType, arg);
Index: openmp/runtime/src/kmp_global.cpp
===================================================================
--- openmp/runtime/src/kmp_global.cpp
+++ openmp/runtime/src/kmp_global.cpp
@@ -425,7 +425,13 @@
// 0 = never yield;
// 1 = always yield (default);
// 2 = yield only if oversubscribed
+#if KMP_OS_DARWIN && KMP_ARCH_AARCH64
+// Set to 0 for environments where yield is slower
+kmp_int32 __kmp_use_yield = 0;
+#else
kmp_int32 __kmp_use_yield = 1;
+#endif
+
// This will be 1 if KMP_USE_YIELD environment variable was set explicitly
kmp_int32 __kmp_use_yield_exp_set = 0;
Index: openmp/runtime/src/kmp.h
===================================================================
--- openmp/runtime/src/kmp.h
+++ openmp/runtime/src/kmp.h
@@ -3061,6 +3061,8 @@
#if KMP_ARCH_X86 || KMP_ARCH_X86_64
extern kmp_cpuinfo_t __kmp_cpuinfo;
static inline bool __kmp_is_hybrid_cpu() { return __kmp_cpuinfo.flags.hybrid; }
+#elif KMP_OS_DARWIN && KMP_ARCH_AARCH64
+static inline bool __kmp_is_hybrid_cpu() { return true; }
#else
static inline bool __kmp_is_hybrid_cpu() { return false; }
#endif
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D126510.439809.patch
Type: text/x-patch
Size: 1551 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/openmp-commits/attachments/20220624/6d83ac73/attachment.bin>
More information about the Openmp-commits
mailing list