Home

Awesome

CpuTopologyRebuild

An experimental Lilu plugin that optimizes Alder Lake / Raptor Lake's heterogeneous core configuration.

For example, this kext is possible to recognize the Core i9-12900K's topology as 16 cores 24 threads or 8 cores 24 threads.

Background

OpenCore's ProvideCurrentCpuInfo quirk enables Alder Lake's both P-Cores and E-Cores, but all cores and threads are recognized as equivalent. This can cause potentially single thread or real world performance degradation.

This kext aims to improve performance by rebuild the topology for these cores and threads.

The effect of this kext is not yet clear, but I've seen not only a cosmetic effect, but also some performance improvements. For example, the Geekbench 5 score on the Windows VM have increased in the case of allocating a small number of cores to VMware Fusion.
Other examples : Japanese / English(Translated)

Usage

Topology examples

ProvideCurrentCpuInfoProvideCurrentCpuInfo<br>+ CpuTopologyRebuildProvideCurrentCpuInfo<br>+ CpuTopologyRebuild<br>+ -ctrsmt
Core i9-13900K8P+16E+HT32c32t24c32t8c32t
Core i9-12900K8P+8E+HT24c24t16c24t8c24t
8P+8E16c16t8c16t8c16t
Core i7-12700K8P+4E+HT20c20t12c20t8c20t
8P+4E12c12t8c12t8c12t
Core i5-12600K6P+4E+HT16c16t10c16t6c16t
6P+4E10c10t6c10t6c10t

About patches.plist

patches_ht.plist

With ProvideCurrentCpuInfo, Hyper Threading is recognized as disabled due to that core and thread count are considered equal while initializing. patches_ht.plist forces the kernel to recognize that Hyper Threading is enabled.
(Performance effect is currenlty uncertain.)

patches_legacy.plist

patches_legacy.plist can be used instead of ProvideCurrentCpuInfo quirk. It is not needed normally, but ProvideCurrentCpuInfo doesn't work for High Sierra and earlier, so you can use this patch for older macOS.

Current problems

Credits