hyperthreading worth it?

Alecanto11b

Honorable
Dec 28, 2013
9
0
10,510
0
I have an i7 4700k, and with HT on it got to about 4.2 ghz. I experimented with HT off, and now I can get 4.8 easily. Which is better for gaming? Im playing Crysis 3 with everything but AA maxed out and it runs 60 fps easily, I know its a CPU heavy game so I was wondering if HT actual makes a difference or if a higher clock is the way to go.
 

Pinhedd

Champion
Moderator


The beautiful part about HT is that it's a very dynamic technology.

What HT does is duplicate the front-end portion of each x86 core (which handles instruction decoding and state tracking) such that the back-end (which handles execution) can be kept busy.

The back-end of Intel's Core microprocessors, especially Haswell, is huge. On its own it can execute instructions just as fast as the front end can decode and issue them. When more complicated instructions are mixed in (such as floating point and vector operations) the backend is actually capable of executing instructions faster than the frontend can provide them. This leads to a degree of inefficiency which is solved by having two frontends feed the same backend.

I can't be bothered to do a detailed rundown right now but Intel's Haswell's backend approximately twice as capable as the backend of AMD's FX 8300 series microprocessors. This is why in a clock for clock battle on pure scalar integer number crunching a hyperthreaded Intel quad core i7 is on par with an FX-8300. AMD manages to gain a slight lead in some number heavy benchmarks thanks to a higher stock clock speed, but Intel's microprocessors have no issue matching that with a little bit of tweaking.

What Intel's Core series microprocessors can do, and AMD's FX series microprocessors cannot do, is work in the opposite direction and allow one thread to dominate the backend resources. This allows Intel's microprocessors to perform well in both single threaded, lightly multithreaded, and heavily multithreaded applications whereas AMD's microprocessors perform poorly in single threaded applications, passably in lightly multithreaded applications, and very well in only heavily multithreaded applications.

There are some drawbacks to running HT though, but those are almost always related to poor program design. Chiefly among them is that while HT gives the illusion of twice the core count, the physical capabilities of the microprocessor stay the same. Some applications will simply query the number of logical processors installed (which in the case of HT being enabled is twice the core count) and assign a quantity of work based on that. HT will almost always result in more work being done within the same time period, but the real time delay between the start of work and completion of work will be longer. In the case of workloads constrained by real time, such as resolving the physics in a game, this can have a detrimental effect on framerate (while resulting in a slightly prettier scene) simply because the game engine thinks that it has access to twice the quantity of resources as it actually does.

Fortunately many application developers have adapted to this and will only spawn as many threads as there are physical cores installed in the system regardless of how many logical processors are exposed.
 
Crysis 3? YES. YES.
http://www.techbuyersguru.com/ochtgaming2.php

*I don't know if the bad HT results still apply for BF4. There have been lots of CPU issues, and some of this apparently ties into "core parking" issues as well. A bit complicated. The game has also been patched a lot since then in part to address CPU issues, and WINDOWS 8 is apparently working better in BF4 currently as well though the reasons aren't quite clear.

1) HT doesn't make much difference for MOST games but increasingly is starting to.

2) OVERCLOCKING the CPU beyond 4.2GHz rarely matters

3) Some games benefit such as Crysis 3.

4) It makes a 30% difference in Handbrake when I convert videos.

So I vote you just leave it ON.
 

sabot00

Distinguished
May 4, 2008
2,387
0
19,860
48


That's actually the exact scenario I'm in, thinking about swapping out my 3570k for a 2600k. The Sandy Bridge has hyperthreading and OC's better, but uses more power, so in a cooler-limited situation it might actually not OC much more than the 3570k if at all.
 

Pinhedd

Champion
Moderator


The beautiful part about HT is that it's a very dynamic technology.

What HT does is duplicate the front-end portion of each x86 core (which handles instruction decoding and state tracking) such that the back-end (which handles execution) can be kept busy.

The back-end of Intel's Core microprocessors, especially Haswell, is huge. On its own it can execute instructions just as fast as the front end can decode and issue them. When more complicated instructions are mixed in (such as floating point and vector operations) the backend is actually capable of executing instructions faster than the frontend can provide them. This leads to a degree of inefficiency which is solved by having two frontends feed the same backend.

I can't be bothered to do a detailed rundown right now but Intel's Haswell's backend approximately twice as capable as the backend of AMD's FX 8300 series microprocessors. This is why in a clock for clock battle on pure scalar integer number crunching a hyperthreaded Intel quad core i7 is on par with an FX-8300. AMD manages to gain a slight lead in some number heavy benchmarks thanks to a higher stock clock speed, but Intel's microprocessors have no issue matching that with a little bit of tweaking.

What Intel's Core series microprocessors can do, and AMD's FX series microprocessors cannot do, is work in the opposite direction and allow one thread to dominate the backend resources. This allows Intel's microprocessors to perform well in both single threaded, lightly multithreaded, and heavily multithreaded applications whereas AMD's microprocessors perform poorly in single threaded applications, passably in lightly multithreaded applications, and very well in only heavily multithreaded applications.

There are some drawbacks to running HT though, but those are almost always related to poor program design. Chiefly among them is that while HT gives the illusion of twice the core count, the physical capabilities of the microprocessor stay the same. Some applications will simply query the number of logical processors installed (which in the case of HT being enabled is twice the core count) and assign a quantity of work based on that. HT will almost always result in more work being done within the same time period, but the real time delay between the start of work and completion of work will be longer. In the case of workloads constrained by real time, such as resolving the physics in a game, this can have a detrimental effect on framerate (while resulting in a slightly prettier scene) simply because the game engine thinks that it has access to twice the quantity of resources as it actually does.

Fortunately many application developers have adapted to this and will only spawn as many threads as there are physical cores installed in the system regardless of how many logical processors are exposed.
 

ASK THE COMMUNITY

TRENDING THREADS