Pinning / Isolation core 5950x


Recommended Posts

I just went from 3700x to 5950x. I runa daily driver/gaming win10 VM with a passed red devil rx 6900 xt.

When I was on the 3700x I isolated cores 2,3,6,7 because of how the cpu is builed. I got tips from here that this was the way to go. 

Now with the 5950x I´m kind of lost. I think i undersland that 5950x is builed diffrent.

Right now I have cores 2,3,6,7,10,11,14,15 isolated and choosen in the gui for win10. 

But maybe thats not the best way to have it? Maybe isolate 8-15 instead. 

Or 8-15 plus 4 more that are shared with the rest for a 12 core vm?

I want to have a fast stable win10 but also some headroom for the rest. I think I have a cpu that can manage :) 

Other then win10 I run about 20 dockers, Plex, shinobi, nextcloud, glances, the *arr ones etc
I also run Home Assistant as a vm and have given it 8 cores (non of the isloated ones) 

Link to comment
8 hours ago, Micro553 said:

When I was on the 3700x I isolated cores 2,3,6,7 because of how the cpu is builed. I got tips from here that this was the way to go.

 

I'm not sure why you chose the isolate those four (virtual) cores. The 3700X has eight actual cores, each of which can run two threads, giving 16 virtual cores. For each core you want to dedicate to a VM you need to specify the two virtual cores for maximum efficiency. The GUI helps you with this. For the 3700X you'll see that physical core 0 is represented by virtual cores 0 (labelled "CPU" in the GUI) and 8 (labelled "HT" in the GUI), physical core 1 is represented by virtual cores 1 and 9, and so on, finishing with physical core 7 being represended by virtual cores 7 and 15. So isolating virtual cores 2, 3, 6 and 7 isn't optimal. If you want to isolate two physical cores 2 and 3, you should isolate virtual cores 2, 3, 10 and 11. If you want to isolate four physical cores 2, 3, 6 and 7, you should isolate virtual cores 2, 3, 6, 7, 10, 11, 14 and 15.

 

9 hours ago, Micro553 said:

Now with the 5950x I´m kind of lost. I think i undersland that 5950x is builed diffrent.

 

It is constructed differently, with two core chiplets instead of one but the same principle applies. The 5950X has 16 actual cores, each of which can run two threads, giving 32 virtual cores. Again the GUI helps you when it comes to allocating the pairs of virtual cores. For the 5950X you'll see that physical core 0 is represented by virtual cores 0 (labelled "CPU" in the GUI) and 16 (labelled "HT" in the GUI), physical core 1 is represented by virtual cores 1 and 17, and so on, finishing with physical core 15 being represended by virtual cores 15 and 31.

 

9 hours ago, Micro553 said:

Right now I have cores 2,3,6,7,10,11,14,15 isolated and choosen in the gui for win10. 

 

That is not optimal. If you want to isolate four actual cores you need to specify eight virtual cores, such as 2, 3, 4, 5, 18, 19, 20 and 21. If you want to isolate eight actual cores you need to spacify 16 virtual cores and in the case of the 5950X you will get a little bit of extra performance by specifying all the cores on the same chiplet, like this: 8, 9, 10, 11, 12, 13, 14, 15, 24, 25, 26, 27, 28, 29, 30 and 31.

 

The following tables might help

 

3700X:
Physical      Virtual Cores
  Core        "CPU"    "HT"
    0           0       8
    1           1       9
    2           2       10
    3           3       11
    4           4       12
    5           5       13
    6           6       14
    7           7       15

 

5850X:
Physical      Virtual Cores
  Core        "CPU"    "HT"
    0           0       16
    1           1       17
    2           2       18
    3           3       19
    4           4       20
    5           5       21
    6           6       22
    7           7       23

    8           8       24
    9           9       25
    10          10      26
    11          11      27
    12          12      28
    13          13      29
    14          14      30
    15          15      31

 

Link to comment

Thank u so much for the great explanation. I have now changed and pinned 8 - 15 as u said. So 8 cores / 16 threds on the same chiplet pinned for win10. 

Are there any perfomece benefits to assign 4 more cores like non pinned core 4,5,6,7? 

As I´m running now is this the same as running a 5800x BM? 

Link to comment
8 hours ago, Micro553 said:

Are there any perfomece benefits to assign 4 more cores like non pinned core 4,5,6,7? 

 

Every additional core you add (even if they are not pinned, and therefore potentially shared with other processes) will bring a performance increase to your VM if the workload can make use of the extra cores. If the workload can't use the extra cores then you'll probably see a slight increase in latency as the cores on one chiplet can't access the L3 cache on the other chiplet. It's a question of balance.

 

8 hours ago, Micro553 said:

As I´m running now is this the same as running a 5800x BM? 

 

Yes, by dedicating an entire chiplet to your VM you have something similar to a 5800X running bare metal. It isn't quite the same because the base and boost core frequencies are different between the 5800X and the 5950X due to the power budget per core being less for the latter, which is only partly offset by the higher binned silicon, and because the resources of the I/O chiplet are shared between the VM and the host.

Link to comment
  • 2 weeks later...

So been running your proposal for a while. I mean pinning 8 -15 for a 8 core VM. It seems stable but the thing thats bugging me (not a big deal but still) is that with the old pinning I got alot better FPS playing warzone. 

With 8 core (2,3,67,10,11,14,15) and my Rx 6900 xt I got over 200 fps. Now I´m at 150-160 fps. Not the end of the world but been reading other having problems with the RX 6900 xt where the cpu was the bottleneck. I will try to give my VM 4 more cores (non pinned) and see if that helps. 

Link to comment
  • 1 year later...
  • 1 year later...

Just wanted to post this here.  But from the following console commands the CPU lay seems to have CCD 0 on CPU 0 through 15 and CCD 1 on CPU 16 through 31.  From the below information it looks like I should do CPU isolation on 16 thru 31.  Then pin those to my gaming VM.  Am I missing something here?
 

----------------lstopo command--------------------------------------------------------

Machine (126GB total)
  Package L#0
    NUMANode L#0 (P#0 126GB)
    L3 L#0 (32MB)
      L2 L#0 (512KB) + L1d L#0 (32KB) + L1i L#0 (32KB) + Core L#0
        PU L#0 (P#0)
        PU L#1 (P#16)
      L2 L#1 (512KB) + L1d L#1 (32KB) + L1i L#1 (32KB) + Core L#1
        PU L#2 (P#1)
        PU L#3 (P#17)
      L2 L#2 (512KB) + L1d L#2 (32KB) + L1i L#2 (32KB) + Core L#2
        PU L#4 (P#2)
        PU L#5 (P#18)
      L2 L#3 (512KB) + L1d L#3 (32KB) + L1i L#3 (32KB) + Core L#3
        PU L#6 (P#3)
        PU L#7 (P#19)
      L2 L#4 (512KB) + L1d L#4 (32KB) + L1i L#4 (32KB) + Core L#4
        PU L#8 (P#4)
        PU L#9 (P#20)
      L2 L#5 (512KB) + L1d L#5 (32KB) + L1i L#5 (32KB) + Core L#5
        PU L#10 (P#5)
        PU L#11 (P#21)
      L2 L#6 (512KB) + L1d L#6 (32KB) + L1i L#6 (32KB) + Core L#6
        PU L#12 (P#6)
        PU L#13 (P#22)
      L2 L#7 (512KB) + L1d L#7 (32KB) + L1i L#7 (32KB) + Core L#7
        PU L#14 (P#7)
        PU L#15 (P#23)
    L3 L#1 (32MB)
      L2 L#8 (512KB) + L1d L#8 (32KB) + L1i L#8 (32KB) + Core L#8
        PU L#16 (P#8)
        PU L#17 (P#24)
      L2 L#9 (512KB) + L1d L#9 (32KB) + L1i L#9 (32KB) + Core L#9
        PU L#18 (P#9)
        PU L#19 (P#25)
      L2 L#10 (512KB) + L1d L#10 (32KB) + L1i L#10 (32KB) + Core L#10
        PU L#20 (P#10)
        PU L#21 (P#26)
      L2 L#11 (512KB) + L1d L#11 (32KB) + L1i L#11 (32KB) + Core L#11
        PU L#22 (P#11)
        PU L#23 (P#27)
      L2 L#12 (512KB) + L1d L#12 (32KB) + L1i L#12 (32KB) + Core L#12
        PU L#24 (P#12)
        PU L#25 (P#28)
      L2 L#13 (512KB) + L1d L#13 (32KB) + L1i L#13 (32KB) + Core L#13
        PU L#26 (P#13)
        PU L#27 (P#29)
      L2 L#14 (512KB) + L1d L#14 (32KB) + L1i L#14 (32KB) + Core L#14
        PU L#28 (P#14)
        PU L#29 (P#30)
      L2 L#15 (512KB) + L1d L#15 (32KB) + L1i L#15 (32KB) + Core L#15
        PU L#30 (P#15)
        PU L#31 (P#31)
 

------------------lscpu -e--------------------------------------------------------

 

CPU NODE SOCKET CORE L1d:L1i:L2:L3 ONLINE    MAXMHZ    MINMHZ       MHZ
  0    0      0    0 0:0:0:0          yes 5083.3979 2200.0000 3696.7129
  1    0      0    1 1:1:1:0          yes 5083.3979 2200.0000 3838.7380
  2    0      0    2 2:2:2:0          yes 5083.3979 2200.0000 4712.8442
  3    0      0    3 3:3:3:0          yes 5083.3979 2200.0000 4323.0791
  4    0      0    4 4:4:4:0          yes 5083.3979 2200.0000 4716.0020
  5    0      0    5 5:5:5:0          yes 5083.3979 2200.0000 4095.6111
  6    0      0    6 6:6:6:0          yes 5083.3979 2200.0000 4717.2632
  7    0      0    7 7:7:7:0          yes 5083.3979 2200.0000 4715.3799
  8    0      0    8 8:8:8:1          yes 5083.3979 2200.0000 3594.2419
  9    0      0    9 9:9:9:1          yes 5083.3979 2200.0000 3400.0000
 10    0      0   10 10:10:10:1       yes 5083.3979 2200.0000 3581.8450
 11    0      0   11 11:11:11:1       yes 5083.3979 2200.0000 3400.0000
 12    0      0   12 12:12:12:1       yes 5083.3979 2200.0000 3400.0000
 13    0      0   13 13:13:13:1       yes 5083.3979 2200.0000 3746.9951
 14    0      0   14 14:14:14:1       yes 5083.3979 2200.0000 3400.0000
 15    0      0   15 15:15:15:1       yes 5083.3979 2200.0000 3400.0000
 16    0      0    0 0:0:0:0          yes 5083.3979 2200.0000 3787.1699
 17    0      0    1 1:1:1:0          yes 5083.3979 2200.0000 4684.5049
 18    0      0    2 2:2:2:0          yes 5083.3979 2200.0000 4675.6758
 19    0      0    3 3:3:3:0          yes 5083.3979 2200.0000 4415.8789
 20    0      0    4 4:4:4:0          yes 5083.3979 2200.0000 4704.3140
 21    0      0    5 5:5:5:0          yes 5083.3979 2200.0000 4511.8540
 22    0      0    6 6:6:6:0          yes 5083.3979 2200.0000 4669.6411
 23    0      0    7 7:7:7:0          yes 5083.3979 2200.0000 4663.3330
 24    0      0    8 8:8:8:1          yes 5083.3979 2200.0000 3400.0000
 25    0      0    9 9:9:9:1          yes 5083.3979 2200.0000 3400.0000
 26    0      0   10 10:10:10:1       yes 5083.3979 2200.0000 3400.0000
 27    0      0   11 11:11:11:1       yes 5083.3979 2200.0000 3400.0000
 28    0      0   12 12:12:12:1       yes 5083.3979 2200.0000 3400.0000
 29    0      0   13 13:13:13:1       yes 5083.3979 2200.0000 3400.0000
 30    0      0   14 14:14:14:1       yes 5083.3979 2200.0000 3593.3479
 31    0      0   15 15:15:15:1       yes 5083.3979 2200.0000 3400.0000

 

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.