Detect, through CPUID.1A, and show user different core types through KMP_AFFINITY=verbose mechanism. Offer future runtime optimizations __kmp_is_hybrid_cpu() to know whether running on a hybrid system or not.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Comment Actions
Addressed patch comments
Moved small fixup of RTM CPUID bit check into small commit that prefixes this one:
diff --git a/openmp/runtime/src/kmp_utility.cpp b/openmp/runtime/src/kmp_utility.cpp index bf3e6114e0c2..8118548c162c 100644 --- a/openmp/runtime/src/kmp_utility.cpp +++ b/openmp/runtime/src/kmp_utility.cpp @@ -247,15 +247,15 @@ void __kmp_query_cpuid(kmp_cpuinfo_t *p) { i, buf.eax, buf.ebx, buf.ecx, buf.edx)); } #endif -#if KMP_USE_ADAPTIVE_LOCKS p->flags.rtm = 0; if (max_arg > 7) { /* RTM bit CPUID.07:EBX, bit 11 */ __kmp_x86_cpuid(7, 0, &buf); p->flags.rtm = (buf.ebx >> 11) & 1; - KA_TRACE(trace_level, (" RTM")); + if (p->flags.rtm) { + KA_TRACE(trace_level, (" RTM")); + } } -#endif } { // Parse CPU brand string for frequency, saving the string for later.
Move this into the enum directly (as an enum value). Much easier to realize they belong together.