This is an archive of the discontinued LLVM Phabricator instance.

[OpenMP][libomp] Improve Windows Processor Group handling within topology
ClosedPublic

Authored by jlpeyton on Oct 21 2021, 2:33 PM.

Details

Summary

The current implementation of Windows Processor Groups has
a separate topology method to handle them. This patch deprecates
that specific method and uses the regular CPUID topology
method by default and inserts the Windows Processor Group objects
in the topology manually.

Notes:

  • The preference for processor groups is lowered to a value less than socket so that the user will see sockets in the KMP_AFFINITY=verbose output instead of processor groups when sockets=processor groups.
  • The topology's capacity is modified to handle additional topology layers without the need for reallocation.
  • If a user asks for a granularity setting that is "above" the processor group layer, then the granularity is adjusted "down" to the processor group since this is the coarsest layer available for threads.

Diff Detail

Event Timeline

jlpeyton created this revision.Oct 21 2021, 2:33 PM
jlpeyton requested review of this revision.Oct 21 2021, 2:33 PM
This revision is now accepted and ready to land.Nov 12 2021, 7:37 AM