E Cores vs P Cores in Home Servers

 

If you are thinking about a new mini PC for your home lab server and want to go the Intel CPU route, there are some considerations to be made when selecting a mini PC or any other computer with a “hybrid” processor. These hybrid processors have “e cores” and “p cores.” What are these? Let’s look at e cores vs p cores in home lab servers and the considerations you need to make.

What are E Cores (Efficiency cores)?

E cores, or Efficiency cores, are a shift in CPU core design, especially with modern Intel chips on the consumer side (AMD has yet to adopt this architecture). This new type of hybrid cores (hybrid architecture) are lower power processor cores and handling background tasks. Operating systems like Windows 11 have been designed to take advantage of these new CPUs.

These cores are not as powerful as their Performance (P) cores in the hybrid CPU layouts, but they add to the performance and energy efficiency at the same time. They can handle less demanding applications but still provide steady, low-power performance.

Modern intel consumer cpus have a hybrid architecture
Modern intel consumer cpus have a hybrid architecture

These types of cores present an interesting option when thinking about your home lab server for various tasks. If you have less intensive processes like file serving, media streaming, or running a web server, E cores, at least on paper, seem to shine for this use case. 

Since they can handle multiple tasks simultaneously without a significant power draw, this can be a benefit when running a home server that may be running 24×7 but where you want cooling and efficiency to be key.

 

Efficient Cores design

E cores are designed with a smaller physical footprint and simpler architecture than Performance cores. It allows for more E cores to be packed into a single CPU. Often multiple E cores will take up the same space as a single P core. It allows the CPU package as a whole to be able to handle a high number of threads for parallel processing.

In Intel’s design of E cores, they are engineered to run at lower clock speeds, leading to less heat generation and lower energy usage for power efficiency. In a home lab server, where the system might be running 24/7, having a set of cores that minimize energy consumption, lower the temperature it operates at, reduces noise, while still performing necessary tasks, again, is advantageous.

The Efficiency of Intel E Cores

Intel E cores, especially in their latest CPUs, are a testament to the advancements in efficient core technology. They are sometimes a large part of the overall CPU core count. When working with the P cores this can enhance the ability to handle parallel tasks.

What are P Cores (Performance cores)?

The Intel P core is really the type of processor that we have been used to for years, traditional multi-core processors. They are the high-performance cores, the workhorse of the CPU, and the muscle behind running applications, programs, and gaming.

The P core is designed for the most demanding tasks that need high clock speeds and advanced features and capabilities like hyper-threading. You need these cores for complex calculations, data processing, or running resource-intensive applications.

For self-hosting services and running virtual machines and tons of containers on a home lab server, P cores are the cores that will provide the performance you expect. With a hypervisor, P cores are the CPU cores you need for the speed and power required.

With this use case in mind, their architecture maximizes performance, especially in tasks that benefit from high single-thread performance.

Performance Cores: Under the Hood

Performance cores have advanced features. These include large cache sizes, high clock speeds, and can execute more instructions per cycle. They are quite a bit faster and more powerful than E cores.

One key aspect of P cores is their ability to boost performance for specific tasks when needed. For instance, when a home server needs to power on many VMs at the same time, P cores can ramp up their performance to chew through the work.

The use of P cores and E cores in a home lab server setup can potentially benefit from the benefits of each of the cores, with some considerations. While E cores handle the less demanding, ongoing tasks, P cores can be used when the workload becomes more intense. With this, your server can potentially operate more efficiently, handling a wide range of tasks without compromise.

E Cores vs P Cores

Let’s compare E Cores vs P Cores of Intel CPUs hybrid CPU architecture and see how the higher performance E cores compare with the lower powered E cores.

Performance cores (P-cores or Power cores) are characterized by:

  • Their larger physical size
  • They are engineered for high clock speed CPU cores performance
  • Optimization for high turbo frequencies and a high rate of instructions per cycle (IPC) for single core performance
  • Suitability for intensive single-threaded tasks, such as those demanded by many gaming engines.
  • Ability to perform hyper-threading, allowing them to handle two software threads simultaneously.

 

Efficiency Intel E core (E-cores), on the other hand, are:

  • Smaller in size, with the ability to fit multiple E-cores in the space occupied by one P-core.
  • Designed to optimize CPU efficiency, focusing on performance-per-watt.
  • Suitable for scalable, multi-threaded tasks. They work with P-cores to enhance performance in tasks like video rendering.
  • Tailored to manage background tasks, allowing them to handle smaller operations like running Discord or antivirus software, freeing up P-cores for more intensive tasks like gaming.
  • Capable of managing a single software thread effectively.
  • They offload tasks to allow P cores to run at lower frequencies and watts, helping with cooling

It is good on paper but leads to some challenges with home labs

While the strengths of both the p cores and e cores in the hybrid architecture of modern Intel consumer CPUs would seem to combine to form the perfect CPU, most modern hypervisors are yet to be written to handle this hybrid architecture well. Compatibility with your hypervisor is a consideration and factor when you choose a motherboard, hybrid CPU, RAM, and other hardware to upgrade your home server.

The hybrid architecture of the Intel CPUs works great when the operating system understands how to handle the hybrid architecture and which workloads to place where. However, from my own testing and what I have read from others, there are many considerations to make since hypervisors don’t really use them in the way you would want or expect.

Disable efficient cores

You can disable the efficiency cores on these hybrid CPUs, which provides the most consistent performance with virtualization since you know all workloads are running on the performance cores. Also, by disabling the efficient cores, you don’t have to manage pinning CPUs to specific cores, as I will discuss below.

Below is a screenshot of the BIOS of the recent Beelink SEi12 Core i7-12650H review. Under the Advanced CPU configuration, you will see the setting Active Efficient Cores. Here, you can choose how many e cores you want to be active. You can set this to 0, effectively disabling the E cores.

Disabling the e cores on a hybrid core i7 12650h processor
Disabling the e cores on a hybrid core i7 12650h processor

Challenges with VMware ESXi

VMware has issues unless you enter a special boot parameter or you disable the efficiency cores. If you want to run a VMware ESXi host or cluster of ESXi hosts in your lab with vCenter, and you have hosts that are configured with the hybrid CPU architecture, you will have to apply these workarounds.

VMware, arguably the most popular hypervisor in the enterprise data center, currently doesn’t work with hybrid CPUs since this architecture has yet to make it into the enterprise processor SKUs (Xeons) for the data center.

Currently, with VMware vSphere, you have to introduce some boot parameters to allow ESXi not to encounter a purple screen on boot when it sees dissimilar processors in the CPU package. It will fail with the error “Fatal CPU mismatch on feature…“.

Vmware purple screen of death
Vmware purple screen of death

 

When VMware is booting, either during the install or after installation and enabling the Efficiency cores, you can press SHIFT+O when prompted and enter the following boot kernel option:

cpuUniformityHardCheckPanic=FALSE

After installation, go through the same process to enter the boot configuration parameter a second time.

After you have installed/booted into VMware ESXi, you can then make this permanent with the following command:

esxcli system settings kernel set -s cpuUniformityHardCheckPanic -v FALSE

Proxmox and E cores

Proxmox can “see” all the cores without any special configuration. However, it doesn’t intelligently handle placing workloads and giving background tasks vs performance tasks to one or the other type of core, at least in my testing.

Proxmox recognizes all cpus in the hybrid architecture
Proxmox recognizes all cpus in the hybrid architecture

Interestingly, you can view the P cores and E cores in Proxmox from the command line using the command:

lscpu -e

You can see below the E cores are the last cores listed, and you only see one CPU for each CPU identifier. If you notice, the CPU identifiers 0-5, you see two numbers of each. This is the performance cores with hyperthreading.

Viewing the performance and efficiency cores in proxmox
Viewing the performance and efficiency cores in proxmox

 

You can pin VMs to a specific CPU identifier under the advanced options for the CPU hardware properties of the virtual machine in Proxmox:

Pinning cpus to specific cores in proxmox
Pinning cpus to specific cores in proxmox

Doing this will allow you to control which VMs use the efficiency cores and which ones are pinned to the performance cores.

Key takeaways

There are some definite key takeaways when considering a home server with hybrid CPU chip architecture with the e-core. Can these processors run virtualization? Yes, they can, and they provide benefits in their architecture for performance and efficiency. However, the problem with these processors is that most hypervisors have not fully introduced support for all the features of these hybrid processors when it comes to CPU scheduling.

With VMware there are challenges even getting it to boot or install without the special boot parameter. You can also disable the E cores to get around this issue. Proxmox handles the E cores just fine with the recent Linux kernel. However, by default, you have no control over how these cores are used unless you pin VMs to specific cores with affinity settings. Keep these things in mind when considering the use of Intel’s hybrid architecture CPUs found in many of the mini PCs, desktop configurations being considered for home labs.

Post a Comment

0 Comments