• We should now be fully online following an overnight outage. Apologies for any inconvenience, we do not expect there to be any further issues.

Hyperthreading questions

Jim Bancroft

Senior member
Nov 9, 2004
212
2
81
I have a buddy who's going to build a new gaming machine. He wants to go with Intel because when you have a hyperthreaded CPU "it's like having two CPUs for the price of one-- just look at the XP task manager."

I'm trying to convince him that it's not like that, that you still only have one bus and CPU, but I don't know the ins and outs of hyperthreading well enough to give definitive arguments. Can someone help me by explaining in layman's terms what hyperthreading does and doesn't do? I know it'll work fairly well for apps designed with it in mind but you're sure as shootin' not getting an extra CPU for free. Thanks :beer:
 

LTC8K6

Lifer
Mar 10, 2004
28,520
1,576
126
It's more like 1.25 cpus rather than 2, and only with applications and situations that take advantage of it. It definitely helps out a lot if you are multitasking.

It gives little advantage if you are just playing one game, or doing one thing, unless the program supports multithreading. Not much out there supports multithreading.

Remember that even a dual CPU system does not run like 2X the speed. A dual CPU system also suffers the same limitations of programs that don't support multithreading.

Overall, I think it makes the computer feel considerably more responsive when I have more than 1 thing going at a time. Personally, I really like it.

Is it that great and powerful and should it cause you to overlook AMD? Absolutely not.

AMD A64 remains the king of gaming. Any gamer should be getting an A64.

 

Jeff7181

Lifer
Aug 21, 2002
18,368
11
81
Hyper-Threading allows instructions from multiple threads to be executed at the same time. For that to happen, the program must be multi-threaded, otherwise there won't be more than one thread to execute at the same time. You also must have Windows XP Professional, as Windows XP Home doesn't support multiple processors.

The reason it won't be two CPU's for the price of one is because you still only have one processor, if a multi-threaded program has two instructions ready to be executed, but they both require the same part of the processor, one will stall and wait for the other to finish, so you get almost no benefit in that situation.

People have said that Hyper-Threading's purpose in Pentium 4's is more to hide latency than to run multiple threads. Since the processor is capable of scheduling instructions from multiple threads, when one thread stalls, another is waiting in the wings ready to go. It doesn't always have to take the time to access the L2 cache, which has relatively high latency compared to the Athlon-64's L2 cache... or memory, which is very high latency compared to the Athlon-64 since it's memory controller is part of the CPU now which greatly reduces memory latency. This helps the Pentium 4 because it's long pipeline causes it to take a big performance penalty for stalls or "bubbles" in the pipeline... a stall, or bubble is basically wasted clock cycles... it's periods of time where the CPU has no instructions to execute. Those bubbles, or idle stages in the pipeline, have to move their way through the stages in the pipeline... this causes the average completed instructions per clock cycle to decline.
 

Jeff7181

Lifer
Aug 21, 2002
18,368
11
81
Originally posted by: LTC8K6
XP Home does in fact support HT processors.

Can you find something that supports that? Because I've always read that if you expect to use Hyper-Threading you need a Pro version of either WinXP or 2k.

*EDIT* I'm trying to find something on Microsoft's website that talks about it, but their site sucks so bad... I can never find anything I'm looking for with their search feature.
 

MDE

Lifer
Jul 17, 2003
13,199
1
81
Originally posted by: Jeff7181
Originally posted by: LTC8K6
XP Home does in fact support HT processors.

Can you find something that supports that? Because I've always read that if you expect to use Hyper-Threading you need a Pro version of either WinXP or 2k.

*EDIT* I'm trying to find something on Microsoft's website that talks about it, but their site sucks so bad... I can never find anything I'm looking for with their search feature.
XP Home does support one physical CPU but XP sees a HT P4 as two virtual CPUs which XP Home does support.

EDIT: Intel link
 

clarkey01

Diamond Member
Feb 4, 2004
3,419
1
0
Wait for Dual core, Hyperthreading wont be needed then.

Nor will Intel have it implemented in its dual cores (smithfield).
 

Deskstar

Golden Member
Mar 26, 2001
1,254
0
0
If I remember correctly, XP Prof is required for true dual (2) processor motherboards. Dual processors is different from Hyperthreading. Dual means two CPUs on the same motherboard.
 

Duvie

Elite Member
Feb 5, 2001
16,215
0
71
Originally posted by: Jeff7181
Originally posted by: LTC8K6
XP Home does in fact support HT processors.

Can you find something that supports that? Because I've always read that if you expect to use Hyper-Threading you need a Pro version of either WinXP or 2k.

*EDIT* I'm trying to find something on Microsoft's website that talks about it, but their site sucks so bad... I can never find anything I'm looking for with their search feature.

yeah me!!! cause I ran it for over a year...it see one physical cpu but will recognize 2 logical cpus...

 

VirtualLarry

No Lifer
Aug 25, 2001
56,587
10,225
126
Originally posted by: Jim Bancroft
I have a buddy who's going to build a new gaming machine. He wants to go with Intel because when you have a hyperthreaded CPU "it's like having two CPUs for the price of one-- just look at the XP task manager."

I'm trying to convince him that it's not like that, that you still only have one bus and CPU, but I don't know the ins and outs of hyperthreading well enough to give definitive arguments. Can someone help me by explaining in layman's terms what hyperthreading does and doesn't do? I know it'll work fairly well for apps designed with it in mind but you're sure as shootin' not getting an extra CPU for free. Thanks :beer:

It's still just one chip, with one core. It's sort of split in half. So he doesn't have two CPUs, he has two half-CPUs. Which still only adds up to a single whole CPU.

The advantage of "splitting" the CPU like that (in layman's terms), is that instead of the whole CPU acting as one, and when an outside access to memory causes the CPU to stall - a hyper-threading CPU runs as alternating "half-CPUs" (running two tasks, alternatively), and if one one half is stalled, the other half can keep running. That's the biggest difference. So it's not any "faster", overall, but it can be more efficient at using the speed that it has.

If the HT-enabled CPU doesn't have two tasks to run, then it can sort of disable the "split-mode", and run as just a single whole CPU again, running a single task. This is also the case if you disable HT support in the BIOS settings.

Imagine an assembly-line. If there's only a single worker putting parts into whatever comes down the line, then if that worker needs to take a break to use the restroom, the entire assembly-line has to pause and wait. (Equivalent to a CPU pipeline stall, waiting to access main memory.) If instead of one worker, you have two workers on either side of the assembly-line (but still only a single assembly-line), and if each works on every-other board coming down the line, the overall assembly-line still only has the same output, but if one of them has to use the restroom, then the line can keep running, and the other worker will end up doing all of the work for a while. So there are less pauses in the assembly-line's output. (A modern CPU's "pipeline" is indeed much like an assembly-line inside, in terms of how it works.)

A dual-core CPU, on the other hand, would have double the theoretical output, because it would be like two whole sepeperate assembly-lines, not just one assembly-line with multiple workers. But two assembly-lines requires double the floor-space, double the power to run it, and creates double the heat/noise output, and costs more as well.

The reason that the entire CPU industry is moving towards multiple cores, is because they've been able to speed-up the "assembly-line" to nearly the max, and the workers simply can't go any faster anymore. So in order to increase the output further, they simply have no other choice to build more assembly-lines, even with the size/cost issues involved.
 

ddviper

Golden Member
Dec 15, 2004
1,411
0
0
wow great explination virtual

a few questions about AMD's soon to be dual core

will it be s939?

will current mobos support it?

will it b super expensive?

is it worth it?

do u think AMD's dual core will be better than intels dual core?
 

RussianSensation

Elite Member
Sep 5, 2003
19,458
765
126
If he is going to be doing video encoding or editing work and play games at the same time or have multiple programs in the background while playing games, P4 is the way to go. Otherwise A64 it is. Still, MOST important component should be the videocard since no gamer plays games at 1024x768 with a 3000+ rating cpu.
 

IntelUser2000

Elite Member
Oct 14, 2003
8,686
3,787
136
People have said that Hyper-Threading's purpose in Pentium 4's is more to hide latency than to run multiple threads. Since the processor is capable of scheduling instructions from multiple threads, when one thread stalls, another is waiting in the wings ready to go. It doesn't always have to take the time to access the L2 cache, which has relatively high latency compared to the Athlon-64's L2 cache... or memory, which is very high latency compared to the Athlon-64 since it's memory controller is part of the CPU now which greatly reduces memory latency. This helps the Pentium 4 because it's long pipeline causes it to take a big performance penalty for stalls or "bubbles" in the pipeline... a stall, or bubble is basically wasted clock cycles... it's periods of time where the CPU has no instructions to execute. Those bubbles, or idle stages in the pipeline, have to move their way through the stages in the pipeline... this causes the average completed instructions per clock cycle to decline.

That's more likely a description for kind of multi-threading called Switch on Event Multithreading or SoEMT. Hyperthreading is Intel's form of SMT, or Simultaneous Multithreading, which basically takes advantage of the fact that CPU's units like FPU, ALUs are never fully utilized, not even close to it, but by making it execute two threads SIMULTANEOUSLY, it makes it more fully utilize it(One processor I can recall that will use SoEMT is Itanium code-named Montecito).

Pentium 4 Northwood has lower L2 cache latency than Athlon64, Prescott almost doubles the Northwood's L2 latency, so yeah if you are talking about Prescott, indeed A64 has lower L2 cache latency.
 

zakee00

Golden Member
Dec 23, 2004
1,949
0
0
Originally posted by: ddviper
wow great explination virtual

a few questions about AMD's soon to be dual core

will it be s939?

will current mobos support it?

will it b super expensive?

is it worth it?

do u think AMD's dual core will be better than intels dual core?

this is based on info ive heard:
it WILL be s939 and support current mobos. as far as the price goes, i would guess the low end one will start at about $500. thats just a guess though.
it will be worth it for sure, its two processors man! games won't see much of an improvement though because most arent multithreaded (they dont know how to utilize the 2nd processor, so it just sits idle).
yeah amd's dualcore will for sure be better then intels...intel is using two preshotts for theirs, which arent that great by themselves...
 

IntelUser2000

Elite Member
Oct 14, 2003
8,686
3,787
136
Analogy of Hyperthreading:

Say there is a person(say its an ALU) who is cleaning up a desk with paper, books, pencils, pens all over the place(some program to execute). Because of the daunting amount of work the person needs to do, and the fact he is a bit lazy, makes him not work at 100% of his potential. He obviously sees that he can't finish in any forseeable future, so he calls in a friend to clean up with him. But the two people tend to get into argument of what is right and wrong often. The person may want the books to go onto the first shelf, but the friend wants it go to the second shelf, which then they go into an argument(which is why two person working necessarily doesn't equal 2x speed). The work is still finished faster, which is the result you want, unless the two REALLY disagrees with each other for the whole time(poor implementation of multithreading).

That is in layman's terms how HT works, except in hyperthreading or SMT implementations, say you have an ALU working at 30% efficiency, hyperthreading feeds the ALU with more 'threads'(instances of the program), in HT its 2 rather than 1. But due to conflicts with the threads fighting over each other for the same ALU, you get more like 20%x2 rather than 30%x1. Hyperthreading isn't that bad in performance losses(you should have looked at Windows 2000 performance with unoptimized apps), but it isn't exactly fantastic either. For the amount of extra die space it takes(+2%), its very good.

 

cockeyed

Senior member
Dec 8, 2000
777
0
0
Some things I found when playing around with my 3.0 Prescott. Running the 3Dmark01 and 3Dmark03, I get lower scores (2%-4%) when HT is enabled in the BIOS and the CPU temp runs a little hotter. The idle temp is 38c wo/HT and 46c w/HT. Running prime95 max heat, the temps are virtually the same at 48-49c. Why HT being enabled would cause a higher idle temp is a mystery to me. It seems to me that I'm better off running with HT dis-abled.
 

n7

Elite Member
Jan 4, 2004
21,281
4
81
Hyperthreading is a whole lotta hype.

Very few people will ever notice the difference between an HT CPU or a non-HT CPU, since they won't be using applications that really tax the CPU.

The only time i would like to have HT is when i am encoding video, since it tends to suck up 100% of my CPU & working on other things at the same time could interfere with the encoding process.

/my $0.02
 

Sc4freak

Guest
Oct 22, 2004
953
0
0
It depends. I often have something taxing in the background, like F@H. Here HT really helps. And while encoding video, I see a healthy 30% improvement with HT enabled. I guess it would be pretty useless to someone who just doesn't use lots of programs at once.
 

IntelUser2000

Elite Member
Oct 14, 2003
8,686
3,787
136
Hyperthreading is whole lot of hype?? That's the one that made the Northwood C's fly. Remember how the first HT enabled P4, 3.06GHz started outrunning AXPs because of HT?

And cockeyed, 2-4% is enough to disable hyperthreading? It seems that thanks to Prescott's performance and its heat reputation causing bad reputation to ENTIRE line of Pentium 4's(more than before), people see it more negative than they did before.

Look at the first article: http://www.anandtech.com/cpuchipsets/showdoc.aspx?i=1746&p=22

"We have to hand it to Intel, we honestly expected Hyper-Threading to be a big flop initially on the desktop because of losses in performance. It seems as if Intel has worked out virtually all of the issues we ran into when we first looked at Hyper-Threading on the Xeon processors several months ago. With the 3.06GHz Pentium 4 you thankfully won't even have to worry about whether you should enable Hyper-Threading or not, the technology does more good than harm."

Most of you disable HT because of 2-4% on select applications? That is just plain ridiculous.
 

VirtualLarry

No Lifer
Aug 25, 2001
56,587
10,225
126
Originally posted by: cockeyed
Some things I found when playing around with my 3.0 Prescott. Running the 3Dmark01 and 3Dmark03, I get lower scores (2%-4%) when HT is enabled in the BIOS and the CPU temp runs a little hotter. The idle temp is 38c wo/HT and 46c w/HT. Running prime95 max heat, the temps are virtually the same at 48-49c. Why HT being enabled would cause a higher idle temp is a mystery to me. It seems to me that I'm better off running with HT dis-abled.

You probably are then. Some tasks are better off with HT disabled. Primarily single-threaded tasks like games are one of those categories.

The reason that the idle temps are higher, is because with HT active, the existing functional units in the CPU's core are being utilized a higher percent of time; hence the greater efficiency of multi-threaded workloads with a HT CPU. Less idle units = more work done per unit time overall, but also more power utilized which has to be given off as heat.
 

VirtualLarry

No Lifer
Aug 25, 2001
56,587
10,225
126
Originally posted by: IntelUser2000
Hyperthreading is whole lot of hype?? That's the one that made the Northwood C's fly. Remember how the first HT enabled P4, 3.06GHz started outrunning AXPs because of HT?
Are you talking about media benchmarks? That had little to do with HT, and a lot to do with the much greater memory and L2 cache bandwidth of the P4, and because many of those media-encoding apps were optimized for SSE2, which the Athlon didn't have. HT barely factored into the picture.

Originally posted by: IntelUser2000
And cockeyed, 2-4% is enough to disable hyperthreading? It seems that thanks to Prescott's performance and its heat reputation causing bad reputation to ENTIRE line of Pentium 4's(more than before), people see it more negative than they did before.
Strange that you should say that, since Prescotts should be more efficient with HT than Northwoods. The real problem is resource-contention on the CPU between the threads, things like TLBs and write-/write-combine buffers. With HT enabled, each thread sees a CPU with only *half* of those resources that it would normally see, compared to if the thread had the entire CPU to itself. Certain applications are greatly hobbled when that happens, similar to how some applications perform much worst on a P3 Celly (!28KB L2) than a P3 (256KB L2), because of their L2 cache usage. They simply thrash on a Celly. Some apps do the same thing on an HT-enabled P4 Northwood. I personlly disable HT, I do think it's 99% hype. The only thing that I can see it being useful for, is running a largely FPU-dependent distributed-computing app in the background, while running normal integer-dependent desktop apps in the foreground. It's a major win there.
 

Accord99

Platinum Member
Jul 2, 2001
2,259
172
106
Originally posted by: VirtualLarry
Some apps do the same thing on an HT-enabled P4 Northwood. I personlly disable HT, I do think it's 99% hype. The only thing that I can see it being useful for, is running a largely FPU-dependent distributed-computing app in the background, while running normal integer-dependent desktop apps in the foreground. It's a major win there.
There are very few apps that show significant loss of performance. The vast majority of applications show no loss in performance when running by itself and show noticeable throughput increase whenever two CPU intensive applications are running simultaneously. Having one program be FP heavy and another integer heavy is not necessary.
 

Jeff7181

Lifer
Aug 21, 2002
18,368
11
81
Why are people saying HyperThreading is just hype? How can it just be hype when there are documented performance increases with it enabled? How can you deny it increases performance when the numbers are right there in your face... and there are hundreds, probably thousands of sources on the internet that will show you the same thing?