• Some users have recently had their accounts hijacked. It seems that the now defunct EVGA forums might have compromised your password there and seems many are using the same PW here. We would suggest you UPDATE YOUR PASSWORD and TURN ON 2FA for your account here to further secure it. None of the compromised accounts had 2FA turned on.
    Once you have enabled 2FA, your account will be updated soon to show a badge, letting other members know that you use 2FA to protect your account. This should be beneficial for everyone that uses FSFT.

Disable HyperThreading

Then feel free to explain. :rolleyes:

Hyperthreading, contrary to your misinformed belief doesn't "split" the core, nor it's resources, in a static way. What you're seeing as another "core" is just a convenient analogy given to you so you can feel good about how busy the system is staying.

What's ACTUALLY happening is that, instead of waiting for one instruction to make it's way down the "pipeline" BEFORE working the next, the processor is starting another one down the same pipeline, keeping more of the various stages of the instruction pipeline busy.
 
This thread is awesome :)

The way windows task manager displays the cores with HT confuses a lot of people. In the end task manager in relation to how hyperthreading works really over simplifies it.

I'll try explaining it in a non-tech way. Although it'll still be simplified. Also Hyperthreading is dynamic, the example I am showing you is NOT dynamic.

Think of a person...a person has two arms/hands. Now without "hyperthreading" this person can only pick up one thing at a time regardless of how large/heavy the object is.

With hyperthreading turned on, if the first object can be picked up by one hand, the other hand is free to pick up another object that can be picked up by the free hand picking up two objects instead of one. But if the object requires use of both hands, even with hyperthreading turned on, it'll still only do one thing using both hands or "100%" of the person.

Lets do another example with math. Trying to be more dynamic. Still simplified. Now frequency (ghz, mhz etc) is a measurement of cycles, how many cycles/second.

Say one processor core can handle something that is upto 24 (no unit of measurement, keeping it simple) long per cycle. With hyperthreading off, regardless of the size (1-24), the processor can only do one task per cycle, this is how processors work.

Turning on hyperthreading changes this physical core that can do something upto 24 long into two logical cores which COMBINED can do something upto 24 longper cycle. So if say logical core #1 does something that is 20 long in a cycle, logical core #2 still can do something that is 4 long in that same cycle. Or if logical core #1 is doing something that is 10 long in a cycle, logical core #2 can do something that is 14 long in the same cycle. So hyperthreading just allows the physical core to do upto two things per cycle, instead of just one, to better utilize the total resources the physical core has. Obviously, if logical core #1 is doing something that is 21 long in that cycle, and the only other things are at least 5 long, logical core #2 can't do anything, because logical core #2 can only do something that is upto 3 long, therefore it still only does one thing. Hyperthreading only gives the potential to do two things at once. Obviously having multiple physical cores is a better way to get performance than hyperthreading because they don't share a resource pool, (note AMD's bulldozer's cores arn't technically true cores either...but depending on benchmarks, I think it should be better than hyperthreading at least, but that's a whole other topic)

Does this make it easier to understand? I hope so. So all hyperthreading does is give the physical core the potential to do two things at once, but not always. It doesn't split the physical resources in half, the resources are all still there, but they are shared between the two logical cores, and each can take as much as each one needs per cycle, just not exceeding the total.

Please any other questions ask away in this thread,
 
Last edited:
This thread is awesome :)

The way windows task manager displays the cores with HT confuses a lot of people. In the end task manager in relation to how hyperthreading works really over simplifies it.

I'll try explaining it in a non-tech way. Although it'll still be simplified. Also Hyperthreading is dynamic, the example I am showing you is NOT dynamic.

Think of a person...a person has two arms/hands. Now without "hyperthreading" this person can only pick up one thing at a time regardless of how large/heavy the object is.

With hyperthreading turned on, if the first object can be picked up by one hand, the other hand is free to pick up another object that can be picked up by the free hand picking up two objects instead of one. But if the object requires use of both hands, even with hyperthreading turned on, it'll still only do one thing using both hands or "100%" of the person.

Lets do another example with math. Trying to be more dynamic. Still simplified. Now frequency (ghz, mhz etc) is a measurement of cycles, how many cycles/second.

Say one processor core can handle something that is upto 24 (no unit of measurement, keeping it simple) long per cycle. With hyperthreading off, regardless of the size (1-24), the processor can only do one task per cycle, this is how processors work.

Turning on hyperthreading changes this physical core that can do something upto 24 long into two logical cores which COMBINED can do something upto 24 longper cycle. So if say logical core #1 does something that is 20 long in a cycle, logical core #2 still can do something that is 4 long in that same cycle. Or if logical core #1 is doing something that is 10 long in a cycle, logical core #2 can do something that is 14 long in the same cycle. So hyperthreading just allows the physical core to do upto two things per cycle, instead of just one, to better utilize the total resources the physical core has. Obviously, if logical core #1 is doing something that is 21 long in that cycle, and the only other things are at least 5 long, logical core #2 can't do anything, because logical core #2 can only do something that is upto 3 long, therefore it still only does one thing. Hyperthreading only gives the potential to do two things at once. Obviously having multiple physical cores is a better way to get performance than hyperthreading because they don't share a resource pool, (note AMD's bulldozer's cores arn't technically true cores either...but depending on benchmarks, I think it should be better than hyperthreading at least, but that's a whole other topic)

Does this make it easier to understand? I hope so. So all hyperthreading does is give the logical core the potential to do two things at once, but not always. It doesn't split the physical resources in half, the resources are all still there, but they are shared between the two logical cores, and each can take as much as each one needs per cycle, just not exceeding the total.

Please any other questions ask away in this thread,

Very good explenation btw =) , hope this guy gets it now...gosh...hes getting annoying lol!
BTW the part I bolded I think you meant to say "physical"

Red if you want a way to disprove your way of thinking yourself is... startup 2 timed tasks.. such as encoding / transcoding the same video files from 2 different locations at the same time, assign one process to one core and the other process to the other core. Do this only on a single core machine w/ HT to keep it simple.
Now, in task manager set priority of one of the processes to below normal or and set the priority to the other process to higher than normal.
Now if what you are stating is true, no matter what the priority is, each process so run relatively equal in speed - meaning the same video (2 diff locations) will finish at the same time.
If what we are stating is true, then the transcoding process w/ the higher priority will finish ahead of the one w/ the lower priority. (despite the task manager showing each logical processor at 100% the entire time)

Now, if what your saying is true, the nice value wont affect the speed of the threads
All HT tries to do is cram stages of the pipeline where normally would be empty ... with something useful to work on from part of another thread.
It works really well for really shitty written code, cuz if you have code thats creating thread stalls and slowass memory accesses all over the place, at least the core can be working on a different thread that can try to fill up those pipeline bubbles / gaps.
Really well written / effiecient code doesnt benefit much from HT because it can fill the pipelines pretty dang good.
 
Last edited:
You didn't read my post above, I suggest you do so. :rolleyes:

What are you suggesting I read? Your endless walls of text? You have about 49 post above mine.

I made a blanket statement. It has nothing to do about the technology or how the shit it works.

They need to just get rid of HT and just start pounding out physical cores. Did you know the Human brain doesnt HT? It consist of trillions of cores called neurons. So lets go all bio and stuff. Okay back to Deus Ex HR. Took a break and this thread has become another debate on Intel vs. the world.
 
To really understand HT you have to really understand how a CPU processes information. The vast majority of information processing in a CPU isn't done on contents of memory it's done on registers which are about a dozen or so 32 or 64 bit memory cells located fairly deep in the CPU. They were talking about penalties for accessing cache or memory earlier, with registers there is ZERO penalty because they are literally right there in the heart of the CPU. When you do a = b + c in a program the CPU will most likely copy the contents of b to register 1, then copy c to register 2, add the two together and store the result in register 1, then copy the contents of register 1 back out to a in main memory. The problem is, as was stated before, memory reads and writes are glacial compared to the clock speed CPUs run at.

Another thing to keep in mind is that your computer can only process as many different threads or applications at a time as it has physical cores, HT or no. Now if you open up task manager you'll notice that there's dozens, possibly even hundreds of applications going at once and if you do as someone suggested earlier and show threads you'll see that there's hundreds even thousands of threads all running "at once". Windows handles this situation through what's called pre-emptive multi-tasking, where several thousand times a second windows forces all those different threads to take turn on the ever popular CPU ride. The problem with this is every time you switch tasks you have to save the internal CPU state of the running task to memory, which is slow, and then you have to restore the running state of the new task from memory, which is also slow.

Back to a = b + c, reading b and c from memory is slow and wastes CPU cycles while they're fetched but due to the overhead of task switching it's even less efficient to switch to another thread because of all the reading and writing that has to be done to make a different thread active requires more time than just waiting for b and c to be fetched. So unless you're running very small, very fast, very efficient code that can completely run from registers, your programs are going to be spending some amount of time with the cpu doing nothing but waiting for memory calls. It's not unrealistic to expect certain types of program workloads to spend tens to hunderds of millions of cpu cycles per second waiting for memory.

So lets say your 1.6GHz atom is doing some sort of program that is causing the cpu to wait 320 million cycles per second, what is your CPU load % going to be? Nope not 80%, because waiting is doing something because that thread CAN'T do anything else other than wait and thread swapping would just slow things down even more. You're sitting there with the CPU pegged at 100% even tho it's techically wasting 20% of its CPU time.

Now what if some crafty engineer somewhere realized "Hey, the circuitry to store a threads state such as registers and pointers is really a fairly small % of the actual CPU core circuitry... what if we made 2 copies of this thread state data in each core, that way when a thread stalls the CPU for whatever reason we can just switch to the other set of registers and keep processing some other thread that does have data available to process, that way instead of the CPU sitting there in an idle state waiting on data for 20% of the time maybe it only sits idle 5% of the time..."

Now if some CPU were to have such a system then it's definitely not letting the CPU do double the work as one without it, it's not even going to necessarily let a CPU reach 100% of its potential on a regular basis, but it would let it get much closer more regularly than with out it.

If only such a system existed.

Oh wait, it's called Hyper-Threading

So when you see your CPU stuck there at 50%, it's not really at 50%, it's your physical core being pegged at 100%, and when you see it suddenly spike to 60%, that just means your physical CPU is actually doing 20% more than it could without HT, something in that first 50% was so horribly inefficient that it would have wasted 20% or more of your CPU cycles, but because you just left shit alone, the magic of HT managed to recover a good chunk of that.
 
Many times, an app or service on my system will show that it is running on only one logical processor, aka half of the physical processor.

This is where your confusion seems to be coming from.

Even if something is only using one logical processor, it's still using the entire physical processor. The 2nd logical processor going unused does NOT mean your physical processor isn't fully loaded. Think of the 2nd logical processor as a bonus. It doesn't take anything away from one process being able to make full use of one physical processor via the loading of one logical processor.
 
Guys, thank you all for the detailed explanations, this makes way more sense to me.

Sorry about acting so badly toward you all, I really appreciate your help in explaining it to me in layman's terms and your analogies.

+1 to you all. :)

hope this guy gets it now...gosh...hes getting annoying lol!
Yeah, I was, sorry about that, and thanks again for your help. :)


There really isn't a reason for me to want to turn off HT any more, and it's all your fault! :p
 
Glad we could be of help dude! Glad you understand it better now =)... so in short dont believe the lies your system monitor is telling you hahahaha!
 
I have so much hope for bulldozer. From everything I have seen and read it will be much better at multitasking than my 930 or the ivy bridge chips, but I dont wanna be the first one to buy one and find out!
 
I have so much hope for bulldozer. From everything I have seen and read it will be much better at multitasking than my 930 or the ivy bridge chips, but I dont wanna be the first one to buy one and find out!

...and since when has your 930 been too slow at multitasking for you? ;)
Bulldozer seems to follow AMD's paradigm of "we suck at designing cores, but we can give you more of them". As the core count grows and grows, and as the core clocks become faster and faster, it becomes less and less meaningful. The extreme example would probably be Fermi; it has hundreds of cores operating at 1.6 GHz and can handle tens of thousands of threads in-flight, yet is extremely inflexible because of the enormous performance penalty a memory access incurs.
Bulldozer's architecture is already a bit disturbing, with its "compute units" that are more than one core, but not quite two.
For your average enthusiast, four cores of Sandy/Ivy Bridge will probably still be superior; according to current pricing rumors, the i7-2600K and the 4CU Bulldozer will cost roughly the same, and the 2600K appears to have faster cores. In the server/HPC market, where applications are embarrassingly parallel, Bdozer might be better, especially if enterprise Bulldozer costs less than enterprise Sandy Bridge.
 
meh, yes and no. My 930 is still fast enough, but gets bogged down easily when I start heavily multitasking. Multitasking of this sort would really be better handled by more cores, in theory anyway. HT, explained pretty accurately above is basically just utilizing the extra clock cycle's. The bulldozer architecture, as I understand it, will be sharing a floating point, which amd has always been way ahead on anyway, and a memory pool between each set of cores on the module, which they say(although I would like to see) does not/cannot be saturated anyway.

Usually my multitasking habits are compiling video/audio while running 1-2 vm's (never less than 1 lol) and watching a movie while surfing the web and usually playing a game at the same time. Oh, and I am a folder... As you can understand, my other 4 Logical cores are usually standing around with their dick in their hands... I usually run out/low on ram as well but don't want to take the performance hit of upgrading to 24gb.

Typically it's better to have more cores than less, but faster cores. Like I said, I have hopes.
 
Dude, no, it doesn't. I can watch it on the CPU monitor app I use, only half of one physical processor is used, aka one logical processor, aka half of 1.6GHz, aka 800MHz.

Get over yourself and do some research.

Actually, you should do the research. I'll give you a little advise. Task Manager isn't research. HT does not make your processor act like it's running at half speed, in any scenario. You're wrong.

Yes, there are scenarios where HT will reduce performance, but not to the level you're suggesting.
 
Last edited:
Actually, you should do the research. I'll give you a little advise. Task Manager isn't research. HT does not make your processor act like it's running at half speed, in any scenario. You're wrong.

Yeah, I didn't understand how it worked before, the system monitor lies! :p
Thanks for your input though.
 
Bet you feel like a bit of a dumbass..... lol

At least I'm man enough to admit I was wrong.
Can't say the same for those who are currently acting like assholes. ;)

Seriously though, yeah I was being douchy, thinking I knew it all.

Once again, sorry to everyone, I appreciate all of your help and it has really opened my eyes to how this tech actually works. :)
 
Last edited:
Takes a big man to hear (and truly think about) others' arguments, and then admit he was wrong. Most people wouldn't, even those posting here. :cool:
 
Actually, you should do the research. I'll give you a little advise. Task Manager isn't research. HT does not make your processor act like it's running at half speed, in any scenario. You're wrong.

Yes, there are scenarios where HT will reduce performance, but not to the level you're suggesting.

Not to be rude...but I wish people would read til the end of the thread before posting things like this...because he already admitted he was wrong before your post.

It looks like people are quick to jump down other people's throats.
 
Even if you can it's not going to make a difference. Here's one of many tests you can find on the P4 and HT.

http://www.authorstream.com/Presentation/aSGuest39229-335247-792e-prsntn-1-entertainment-ppt-powerpoint/

DeadHorse.jpg
 
Back
Top