How to Enable Hyper-Threading Technology on Intel Alder Lake and above CPUs
This guide describes how to enable Hyper-Threading Technology on Alder Lake and above CPUs on macOS. This guide works for both, Clover and OpenCore. By following the guide, you'll be able to enable Hyper-Threading Technology on macOS. This supports macOS High Sierra and later.Overview
Since the release of Alder Lake CPUs (12th Gen.), Intel has introduced the concept ofP Cores
(Performance Cores) and E Cores
(Efficiency Cores). Due to this architecture design, there has been a massive increase in terms of performance in the recent CPU generations, as compared to its previous generations.Although widely supported by the Windows Operating System and other OS in the industry, there is an underlying issue on the macOS side due to such architecture. On macOS side, the Hyper-Threading status in the System Report seems to be absent.
However, this is not the case with the previous generations and they do not have any such issue with the reporting. Typically, for Hyper-Threading to work, the threads are double the core count and the reporting is normal on the macOS side. Being a complex configuration of the CPU, which is new to macOS, the macOS fails to report the Hyper-Threading correcting as there has been no such implementation on the macOS side. This is because Apple is no longer using Intel CPUs in their Mac lineups. The last CPU in the Desktop lineups were Intel Comet Lake (10th Gen.) and Intel Ice Lake (10th Gen.) for Mobile.
Initially, it was not possible to even boot the installer for which two fixes were made available. One was to fix the CPU objects declared as Device instead of Processors, with the help of SSDT-PLUG-ALT. Second was the introduction of
ProvideCurrentCpuInfo
Quirk which aims to enable both P-Cores
and E-Cores
but all cores and threads are recognized as equivalent. This causes the error in reporting and also causes single thread performance degradation up to an extent and to just mention, on an Intel 12700KF CPU running macOS Sonoma, the Geekbench 6 Scores are almost 2K less without the fix. Although the installation was possible and the system was stable, we also came to know that the Hyper-Threading status was missing from the System Report as shown below:To fix this issue, a new kext has been introduced which aims to fix the heterogeneous configuration. By using
CPUTopologyRebuild.kext
, it rebuilds the topology for these cores and threads and also aims to improve the performance. The fix works on Alder Lake, Raptor Lake, and Raptor Lake Refresh and possibly should work on the new lineup as well.The steps mentioned below are valid only if you're using an Intel Alder Lake or above CPUs and will not work for the prior generation, and is not recommended at all to use it for the previous generation.
Requirements
Following are the requirements for enabling Hyper-Threading on macOS. Please ensure you meet the requirements before proceeding with this guide.CPU |
|
macOS |
|
Bootloader |
|
Kexts |
|
Tools |
|
STEP 1: Setup BIOS
The very first step is to set up BIOS to have the Hyper-Threading Enabled on your System. If you have followed the BIOS Setup Guide, you will not require this step. However, If you haven't, follow the steps below to set up your BIOS for enabling Hyper-Threading.1. On your target computer, boot to BIOS. Refer to your user manual for the BIOS Key
2. Set the following parameters as shown.
STEP 2: Add Kext
The next step is to install the CPUTopologyRebuild.kext in order to enable the Hyper-Threading on macOS. Please note that CPUTopoligyRebuild.kext requires Lilu.kext to function.1. Download CPUTopologyRebuild.kext.
2. Mount your ESP.
For Clover
1. Copy
CPUTopologyRebuild.kext
to the EFI/CLOVER/Kexts/Other
directory.For OpenCore
1. Copy
CPUTopologyRebuild.kext
to the EFI/OC/Kexts
directory.2. Open your
config.plist
and add CPUTopologyRebuild.kext
entry in the Kernel>Add
section of your config.plist
.STEP 3: Add Boot Args
Once you have added the kext, the next step is to add the required boot args. To add the boot args, follow the steps below:For Clover
1. Open your config.plist using any XML editor from
EFI/Clover
directory2. Add
-ctrsmt
under Arguments in the Boot section of your config.plist.3. Save
config.plist
.For OpenCore
1. Open your config.plist using any XML editor from the
EFI/OC
directory.2. Add
-ctrsmt
in the boot-args key under the 7C436110-AB2A-4BBB-A880-FE41995C9F82
UUID list in the NVRAM
section of your config.plist.3. Save
config.plist
.3. Restart your system for the applied changes to take effect. It is recommended to reset NVRAM twice at least.
Verifying Hyper-Threading
The next step is to verify whether the Hyper-Threading is working or not. Follow the steps below to verify the Hyper-Threading:System Report
- Verify the Processor Name in About This Mac>System Report
Last edited: