How do I tell which cores are physical and which cores are logical?

Mar 8, 2018
2
0
10
So I want to start off by saying I'm a gamer so I'm planning to apply what I learn from this thread to games. Now the issue stems from my recently bought CPU, my ryzen 1800x, not the greatest for gaming but it was cheaper than any K skew i7 at the time. But certain games I play have an issue with using 100% utilization on what I assume to be a logical core instead of a physical one. Now this assumption is based on two things that I tested and one game in particular that faces this issue. In Farcry 4, the game utilizes 3 cores more than the rest and pegs one at almost 100% all the time when running. I assume the first 8 cores are physical and the last 8 are logical seeing as most programs will tend to cap out the first 8 cores instead of the last 8 and I remember reading somewhere that most programs tend to run on physical cores before allocating resources to other cores. In the case of farcry 4 though, the core that gets capped at 100% is always, at least every time I've monitored it, core #16 and the performance in game is terrible. Not unplayable but terrible given that I have a 1080 ti. I'm talking 60 FPS with regular dips to 30-40 even when standing still with shadow, AA, hairworks all on lowest settings and at 1440p. But when I go into bios and disable SMT so that the CPU runs only on physical cores I get FPS of 90+ and in certain places 140+ with a low of only 69. Now I know from reading tech journals and stuff that logical cores tend to be weaker and less efficient than physical ones, which is why I assumed that the game was capping out on a logical core. But I can't say for sure that core # 16 which farcry 4 gets capped by is in fact a logical core. With SMT disabled it displays cores 1 to 8 in both MSI afterburner and in taskmanage and CPUz but I don't know if it's because those are they physical cores or if the programs simply counts the number of cores and not their placement on the socket for example I heard that intel's physical and logical cores are in pairs where every other number is from zero is a physical core (0,2,4,6, etc.) and every other core from 1 is logical (1,3,5, etc.) but I don't know if when hyper threading is disabled that if MSI etc would still count 1,2,3,4,5 cores or if it would only count physical cores like 0,2,4,6. Additionally I don't know how cores are arranged for ryzen. SO here comes the question, HOW do I tell which cores are physical and logical because I want to be able to set affinity for certain games or programs such as farcry 4 to run only on physical cores without disabling SMT. Before you say it, I'm not a programmer or anything so I need something simple and pre existing. Like a windows function or something. Or if you know the layout of how Ryzen cores are presented on the socket like how I described above how intel's cores are organized I can hopefully use that info to. It would save me a ton of trouble and time if I didn't have to spend time testing a bunch of core affinities.
 
Windows is supposed to use physical before logical. The issue may not be that it's using a logical thread as even disabling ht on intel has been shown to increase or solve issues with game performance.

When you disable smt, I think software like hwmonitor will label the cores and skip the other numbers. I'm not sure though but it's worth a try.
 
I am pretty sure I said I did turn off virtual cores in the BIOS and DID get way better performance. Ninth line down, sentence starting on the right side. My problem is I don't want to run my PC indefinitely with the logical cores off so I'm looking for a way to identify which are logical and physical core so I can set a program to only use certain cores with the set affinity feature of task manager. Please do read the OP to understand what I'm asking.
 


If you are a gamer, having SMT enabled doesn't benefit you. You have demonstrated that. I don't understand why you "don't want to run my PC indefinitely" that way. It isn't indefinitely, it is just til you reboot and go into the BIOS. So if you have a bunch of video to render you could enable them. I don't know that it is more onerous to reboot than it is to have to set CPU affinity for individual applications.
 
With the test you did you can't tell if the increase is due to smt or due to the cross-ccx latency,if you have slow memory I would say it's because of the latency.
Also as long as there is only one thread running on the pair both the physical and the logical cores are the same speed because with only one thread they have access to all the core's resources,it's only if more then one thread is running where the threads start to interfere with each other.

Because it has two ccxs the layout is either 4+4 cores on each ccx or pairs of 1p/1l from start to finish,try using both and just see what runs better.