Dual-core Athlon64 and HyperThreading (???)

All about them.

Moderators: NeilBlanchard, Ralf Hutter, sthayashi, Lawrence Lee

Post Reply
Slaugh
Posts: 774
Joined: Thu Dec 02, 2004 2:27 am
Location: Quebec, Canada

Dual-core Athlon64 and HyperThreading (???)

Post by Slaugh » Fri Apr 15, 2005 2:38 am

I found this on x86-secret.com:
By attentively studying the behavior of a Dual Core Athlon 64, we realized that a very interesting characteristic of the upcoming Desktop Dual Core chip from AMD was hidden. In fact, if the K8 architecture cannot support the Intel's HyperThreading (HT) technology, it seems that the CPUID registers of the processor are not of this opinion. If we carefully study the response to instruction CPUID with EAX = 1, we obtain the following values:

Athlon 64 Simple Core - CPUID (EAX = 1)
Hex (EDX) : 0x078bfbff
Bin (EDX) : 0b00000111100010111111101111111111
Hex (EBX) : 0x00000800

Athlon 64 Dual Core - CPUID (EAX = 1)
Hex (EDX) : 0x178bfbff
Bin (EDX) : 0b00010111100010111111101111111111
Hex (EBX) : 0x00020800

The bit 28 in register EDX (which is emphasized in red here) corresponds to the support of HyperThreading. However, we can see clearly that this bit is now set to 1 whereas it was to 0 for a standard, Single Core, Athlon 64. In the same way, the bits [23:16] of register EBX, which indicate the number of logicals CPU supported on Intel CPUs with Hyperthreading enabled, are also set to "2" in the case of a DC Athlon 64.

So, It seems that AMD chose to activate the "HyperThreading" bit on those Athlon 64 Desktop CPUs in order to profit from optimizations already done by many programmers for HyperThreading technology. This will make possible for those upcoming Athlon 64 Dual Core to also benefit from work already carried out. For now, we do not know yet if the Dual Core Opterons will also have this bit active.
Last edited by Slaugh on Fri Apr 15, 2005 4:58 pm, edited 1 time in total.

Tobias
Posts: 530
Joined: Sun Aug 24, 2003 9:52 am

Post by Tobias » Fri Apr 15, 2005 3:05 am

Maybe I'm just plain dumb, but I don't see the big issue here... isn't it logical that a dual core cpu needs to be able to handle hyperthreading? I mean, if it wasn't it would really be a single core cpu, right?

Tzupy
*Lifetime Patron*
Posts: 1561
Joined: Wed Jan 12, 2005 10:47 am
Location: Bucharest, Romania

Post by Tzupy » Fri Apr 15, 2005 5:14 am

The dual-core Athlon 64 will handle two threads each thread using three pipes. The single-core P4 handles two threads using one pipe per thread. The Extreme dual-core P4 will handle four threads with 1 pipe per thread, the other dual-core P4s two threads with two pipes per thread.
As an AMD fan, I suspect that AMD processors will be at a disadvantage, since all existing HT-enabled software is optimized for the P4, so AMD loses 15-20% of its maximum performance.
But that doesn't worry me as much as the 64-bit optimizations, where - to my dismay - the same scenario seems to happen... :-(

hvengel
Posts: 205
Joined: Sat Oct 19, 2002 12:06 am
Location: Concord, Ca

Post by hvengel » Sat Apr 23, 2005 10:24 am

Tzupy wrote:The dual-core Athlon 64 will handle two threads each thread using three pipes. The single-core P4 handles two threads using one pipe per thread. The Extreme dual-core P4 will handle four threads with 1 pipe per thread, the other dual-core P4s two threads with two pipes per thread.
As an AMD fan, I suspect that AMD processors will be at a disadvantage, since all existing HT-enabled software is optimized for the P4, so AMD loses 15-20% of its maximum performance.
But that doesn't worry me as much as the 64-bit optimizations, where - to my dismay - the same scenario seems to happen... :-(
I am not sure what you are talking about. Tests I have seen with running 64 bit code indicate that the amd processors beneifit from 64 bit code way more than current Intel "64 bit" P4 processors. In other words if an amd64 processor will see an average 20% gain from going to 64 bit code the Intel "64 bit" P4 might see a 5% to 7% gain. The amd64 processors were designed from the ground up as 64 bit processors were as the "64 bit" P4s are 32 bit processors with 64 bit extensions tacked on. And it shows in how well the amd64s run 64 bit code and how little the P4s benefit from 64 bit code.

In addition the tests that have been done so far on dual core processors indicate that the amd dual core processors are simply blowing away the Intel dual cores even running 32 bit code. Again this seems to fit. AMD designed this processors to be dual and quad core from the ground up. Intel is just tacking together two P4s on a single chip and guess which one is working better in the real world. In fact the tests I have seen indicate that the dual core amd64s will run slightly faster than two Opterons at the same clock speed. Also real world experience with Opteron processors are that they scale better (meaning that adding more processors will result in better performance) than any of the Intel CPUs.

As you rightly point out the amd dual core processors will run 2 processes with 3 pipe lines each. This is six active pipe lines. The Intel dual cores can have a max of four active pipe lines. Again advantage AMD.

cansan
Posts: 127
Joined: Thu Oct 28, 2004 1:33 pm
Location: Germany

Post by cansan » Sat Apr 23, 2005 11:06 am

Tzupy wrote:As an AMD fan, I suspect that AMD processors will be at a disadvantage, since all existing HT-enabled software is optimized for the P4, so AMD loses 15-20% of its maximum performance.
Have you seen the dual core opteron benchmarks? I am an AMD fan too, and I'm not worried with the performance. (I am worried with the price)

Also note that only the extreme edition will be using hyperthreading, the normal dual core pentiums do NOT have hyperthreading, and I think we all know what happens to P4's without hyperthreading...

The hyperthreading on AMD dual cores was discussed around here few days ago. No one came up with a particular reason why it was enabled. I've looked around a few forums and I gather that it has to do with a few old(er) programs that are optimized for hyperthreading but not multiple cpus. They check the hyperthreading capability, if verified use 2 threads, if no hyperthreading is present they don't check the number of actual cpus and use a single thread. It is there to boost performance on these (stupid in my eyes) programs.

Tzupy
*Lifetime Patron*
Posts: 1561
Joined: Wed Jan 12, 2005 10:47 am
Location: Bucharest, Romania

Post by Tzupy » Sun Apr 24, 2005 1:25 am

AFAIK the M$ compiler favors the Intel architecture, doesn't use the third pipe of the AMD processors. And from some benchmarks I've seen it seems that the 64-bit Visual C++ is going to do the same (I hope I'm wrong...). In the dual-core competition, the Intel CPUs are limited by the FSB, but I bet in many official benchmarks we'll see that won't show much (the tests that show the FSB limitation will be given a lower significance by the benchmark maker).
And we shouldn't forget that Intel has its own optimizing compiler, a pretty good one, but try to use it to optimize for an AMD64 processor... ;-)

Mikael
Posts: 206
Joined: Mon Dec 06, 2004 3:12 am
Location: Gothenburg, Sweden

Post by Mikael » Tue Apr 26, 2005 11:17 am

Tobias wrote:Maybe I'm just plain dumb, but I don't see the big issue here... isn't it logical that a dual core cpu needs to be able to handle hyperthreading? I mean, if it wasn't it would really be a single core cpu, right?
HyperThreading is used to enable simultaneous execution of two threads on a single core. It accomplishes this by picking instructions from both threads when it's filling it's execution slots. The threads don't really compete for the execution units, since only those that can't be utilised by the first thread are used by the second thread. Well, seeing how there are some performance issues with HyperThreading enabled I would guess that there probably is some competition going on between the threads anyway. Maybe to make sure that both threads get somewhat equal execution speed?

Point is, there's no HyperThreading needed to take advantage of a dual core CPU. :)

Zhentar
Patron of SPCR
Posts: 918
Joined: Thu Mar 27, 2003 4:00 pm
Location: Madison, WI, USA

Post by Zhentar » Tue Apr 26, 2005 1:41 pm

Tobias wrote:Point is, there's no HyperThreading needed to take advantage of a dual core CPU. :)
Yes, but only since the release of hyperthreading have many software developers really paid attention to multithreading. Because of this, pretending to have hyperthreading will cause some (I have no idea how many) programs to run multi-threaded, in which case dual core CPUs will see a huge benefit.

edit: wow, this is my first post here in a little over a year. I need to start stopping by more often.

halcyon
Patron of SPCR
Posts: 1115
Joined: Wed Mar 26, 2003 3:52 am
Location: EU

Post by halcyon » Wed Apr 27, 2005 10:36 pm

1. Hyperthreading support or not, multicores bring benefits when running multiple simultaneous apps or properly multi-threaded apps

2. AMD does NOT need or benefit (under most scenarios) from hyperthreading. This has been debated before, use the search. Thus, AMD does NOT need hyperthreading, because the CPU design is different from that of Intel's P4. In fact, it can in fact hurt the performance in some cases (as outlined above)

3. Hyperthreading speed impact and 64-bit speed impact are separate issue. One can have both 32-bit and 64-bit cpus with and without hyperthreading. The benefits are additive (to some degree and can also be negative in some cases). Also, do remember that most 32-bit apps perform poorly under 64bit windows & 64-bit CPU than under 32-bit Windows (check the benchmarks, if you don't believe me, this is particulary true of games).

4. If AMD has not enabled support for hyperthreading in A64 CPUs while having built it in them, I'm sure there's a reason other than just marketing (I'm suspecting the same speed hit issue myself).

In summary: stop waiting for hyperthreading onto the AMD platform like some holy grail. It's basically a forced kludge on Intel P4s (to put it meanly), because the P4 design has such a high clock rate, forcing deep pipes and suffering from huge stalls with misses. It needs dual pipes to feed each core, in order to get anywhere near the max performance out of them, hence hyperthreading. It's not some superinnovation that makes all CPUs go faster. It's born out of necessity and without it P4 CPUs would be so apalling that even Dell would be using AMD CPUs.

If you design the CPU properly, you don't need hyperthreading ;)


regards,
halcyon

Straker
Posts: 657
Joined: Fri Jul 23, 2004 11:10 pm
Location: AB, Canada
Contact:

Post by Straker » Fri Apr 29, 2005 12:01 am

halcyon wrote:<stuff>
Er, no one said anything about AMD needing HT, or confused HT/64 bit speed impacts or anything else about AMD CPUs having some sort of latent, inactivated form of HT. You read the first post? From the sounds of things it's more or less just an interim hack to get better performance out of apps that don't properly use multiple threads/processes (since if they did, HT would be irrelevant). If that's the only reason, then it makes sense; look how long A64s have been around for, and still almost noone is taking advantage of them (aside from the fact that they still generally run 32-bit sw faster and cooler than P4s). I'm probably at least a bit off on that, but if I am it's only because I agree that anything more would be silly. :P

halcyon
Patron of SPCR
Posts: 1115
Joined: Wed Mar 26, 2003 3:52 am
Location: EU

Post by halcyon » Fri Apr 29, 2005 11:48 am

Well, then I misunderstood the other posts (wouldn't be the first time) :)

Still, after having seen about a gazillion "hyperthreading for A64" threads, I'm beginning to think I wasn't completely off the base...

Tibors
Patron of SPCR
Posts: 2674
Joined: Sun Jul 04, 2004 6:07 am
Location: Houten, The Netherlands, Europe

Post by Tibors » Fri Apr 29, 2005 1:41 pm

halcyon wrote:after having seen about a gazillion "hyperthreading for A64" threads, I'm beginning to think I wasn't completely off the base...
I know what type of threads you refer too. Luckilly most (regular) posters here are to smart to make that mistake. But if I am reading another one of those on e.g. tweakers.net, I get this urge to yell "Wake up (sensored)!"

Post Reply