How to tell amount of threads a game utilizes?

Jan 3, 2019
19
1
15
I am new to the computer world so note that I'm not a programmer or anything but I'm trying to figure out how many threads certain games use. How do I go about doing so? My debate comes with the fact that I'm debating between getting a 6 multithreaded core CPU or an 8 single threaded core CPU.

I know this won't make much of a difference but how do I go about determining which games will utilize the additional threads and which won't?
 
Solution


HTT is NOT a scheduling trick,just like OoO or ILP it takes instructions from more then one thread and runs them on the same core,it has not much to do with interruptions or I/O. (just look at the below video,how do you get double the performance if it works only on interruptions? )
http://www.cslab.ece.ntua.gr/courses/advcomparch/2007/material/readings/Intel%20Hyper-Threading%20Technology.pdf

Rookie, you can use process hacker or process explorer both...

kanewolf

Titan
Moderator
Your two choices, of 6 hyperthreaded or 8 non-hyperthreaded really won't make any difference in games for quite a while. Games have to be written for the widest audience. So unless a specific game identifies more than quad core, you will be perfectly fine. The next "step up" will be 6 cores. Either CPU will cover that. The 8 physical core will almost always be better than the 6 hyperthreaded cores. It still has more REAL resources. Hyperthreading (or SMT as AMD calls it) is a scheduling trick the CPU plays with the OS to try and get more work done when there is a lot of interruptions, like I/O. Some things CAN benefit from hyperthreaded hardware. But more physical resources will work in all situations.
 
Jan 3, 2019
19
1
15


I understand it won't really make a difference but I'm building a setup for VR and people say it's heavily thread dependent based on the game you play. Besides the game stating the amount of cores needed, is there a way to analyze a games criteria to determine if the presence of those additional threads will ensure a smoother gameplay?
 

kanewolf

Titan
Moderator
A smart game designer will interrogate the hardware at initialization and scale appropriately. Unless you could find someone that has benchmarked with different numbers of physical CPUs with and without hyperthreading, I don't know of a way.
 


HTT is NOT a scheduling trick,just like OoO or ILP it takes instructions from more then one thread and runs them on the same core,it has not much to do with interruptions or I/O. (just look at the below video,how do you get double the performance if it works only on interruptions? )
http://www.cslab.ece.ntua.gr/courses/advcomparch/2007/material/readings/Intel%20Hyper-Threading%20Technology.pdf

Rookie, you can use process hacker or process explorer both are free and pretty similar they show you the game threads in real time,here for example is titanfall 2 and if you look at the top bar of process hacker you will see that it runs 34 threads but looking at the actual threads window,by just double clicking on the game process in the list,you can see that only two threads run at a higher percentage then the rest.
[video="https://www.youtube.com/watch?v=rJmIvYDPJiA"][/video]
 
Solution
If you are comparing something like the 8700k and 9700k, the 8 physical cores is more powerful still than 6 cores and 12 threads. This won't matter in strictly gaming for a while as games are going to continue to be written for the majority of CPUs in customers computers still, which are largely 4 cores as they have been around for years.

Intel Hyperthreading essentially just tries to multitask between the cores where there's a lull in an instruction set. If you've got background stuff running, like a stream or video conversion or...something else while gaming, 2 more cores will probably be beneficial in most scenarios instead of 6 more virtual threads.

If you are comparing different CPU architectures (Ryzen vs Intel), it gets more complicated since they work a bit differently.
 

kanewolf

Titan
Moderator


A G4560 (and limited to a single core), which is what that video uses, is not comparable to the CPUs discussed here. But, I will disagree that hyperthreadiing is not just a scheduling trick. It is, IMO. It fools the OS into thinking there are more physical resources than there are. By doing this, and by maintaining the extra thread contexts in CPU registers, the CPU can very quickly transition between threads. But it only does that if a thread hits an interrupt, or hits a time limit on execution. Sending data to/from a graphics card generates LOTS of interrupts. That allows the CPU to switch threads.
 
I would go 9700k unless you are going to stream or have other software besides the game running - then 8700k for sure.

Can only speak to Battlefield V, but it likes 12 threads. I disabled HT and fired it up - all six cores were pushing 100% utilization way too often. A bit of headroom is your friend, so 8 cores should be good for now. Im glad I went 6/12 but that is highly game dependent.
 


Think about it,titanfall has to consist out of 100% interrupts for the one core of the g4560 to be able to run it twice as fast with htt enabled,how do you get ~70fps out of 100% interrupts? how do you get ~140fps out of two times 100% interrupts?

What you are talking about is called Switch on Event Multithreading and has been around since amiga times it's something that doesn't even need htt.