Description
I propose the inclusion of CPU cluster information in order to enhance the recognition of heterogeneous architectures on macOS. My recent observation on Windows revealed distinct clusters based on core types, with Cluster 1 for Performance Cores and Cluster 2 for Efficiency Cores.
Though I lack deep insight into Intel's new core configuration, I suggest investigating the feasibility of introducing cluster information as it might not only offer potential performance benefits but also serve as a valuable cosmetic feature for people like me who seek a more detailed view of their CPU architecture.
As an example, CpuTopologyRebuild currently places 8 cores in Cluster 1 with the -ctrsmt boot argument (acknowledging that it involves 8 cores with the efficiency cores being logical threads of the performance cores) for my Intel Core i9-14900KF. In Windows (non-OpenCore, standard boot), Cluster 1 encompasses the performance cores (8 of them), while Cluster 2 comprises the efficiency cores (16 of them).
Cluster information in macOS using Geekbench
Cluster information in Windows using Geekbench
While Apple's M series chips have native support for clusters, it raises questions about whether macOS inherently supports clusters based on specific processor types. It's conceivable that cluster support is embedded in the kernel, as the kernel needs to adeptly handle different core types and configurations. However, this might just be locked to M series chips. If not, then this would be absolutely amazing for use with Intel's newer CPU's as then macOS would be able to differentiate Performance Cores from Efficiency Cores and actually handle them accordingly (potentially)
Cluster information about an M3 Max in macOS using Geekbench
Again, my knowledge on how the CPU topology is handled in macOS is limited, and especially Intel's new Performance+Efficiency cores. - this is just a very (probably stupid) suggestion
If this isnt a stupid suggestion though, I'm open to providing my system as a testing platform.
Intel Core i9-14900KF (8 Performance + 16 Efficiency (24c total), 32 threads)
AMD Radeon RX 6900 XT (XTXH Variant)
Full specifications available on GitHub
Also I looked up how macOS manages the performance and efficiency cores with the M series chips and found some interesting information.
https://mjtsai.com/blog/2022/04/25/how-macos-manages-m1-cpu-cores/
macOS doesn’t provide direct access to cores, core types, or clusters, at least not in public APIs. Instead, these are normally managed through Grand Central Dispatch using Quality of Service (QoS) settings, which macOS then uses to determine thread management policies.
macOS strategy is to load E cores heavily with system tasks, and spare P cores for user tasks. This ensures the user is unaware of and unaffected by heavy system workloads. It also minimises battery use in notebooks.