Daily Usage Issues

Core assignment with P-Cores / E-Cores

Started by Axima on 1,947 views

Are there any recommendations for assigning cores between VS and NCrunch when using an Intel CPU with Performance (P) and Efficiency (E) cores?

An i5 12600K has 16 logical cores, assigned as follows:

0: P0-0
1: P0-1
2: P1-0
3: P1-1
4: P2-0
5: P2-1
6: P3-0
7: P3-1
8: P4-0
9: P4-1
10: P5-0
11: P5-1
12: E6-0
13: E7-0
14: E8-0
15: E9-0

In the past I have always split the cores evenly between VS and NCrunch, but for this CPU it generates the following assignment:

CPU cores assigned to NCrunch: 0,1,2,3,4,5,6,7
CPU cores assigned to Visual Studio: 8,9,10,11,12,13,14,15

Would it be better to split the P and E cores evenly?
Or perhaps reverse the above and give VS only P-Cores, and NCrunch a mix of P and E?

Edited

We've been experimenting with this ourselves, having recently moved to CPU with this architecture.

The NCrunch settings wizard is ignorant of the characteristics of the cores, so it's probably best to set this manually in the configuration window.

Assuming you're running VS2022, I would recommend giving this a healthy share of the performance cores, since most of the work this process does is very time sensitive.

In theory, as long as you have at least one performance core assigned to NCrunch, the O/S should give it preference for any work that NCrunch does. This would allow you to get fast returns on tests executed with priority with an otherwise idle engine. In this situation I am making an assumption that the O/S would favour the PCores over the ECores (which we would all expect it to).

Edited

Post a reply

Log in to reply.