• Become a Premium Member for $25/year with no ads to improve your community experience.

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 of P 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
  • Intel Alder Lake and above.
macOS
  • macOS High Sierra or later.
Bootloader
  • Clover or OpenCore. Please ensure to use the latest version to avoid issues.
Kexts
  • Vanilla kexts in L/E and S/L/E
  • Lilu
  • VirtualSMC
  • CpuTopologyRebuild
Tools
  • OCAT or any equivalent .plist editor
  • Geekbench


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 directory
2. 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:

Trending Threads

Latest posts

Forum statistics

Threads
1,713
Messages
16,062
Members
24,901
Latest member
gitomiko