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:

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.

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?

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...

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.

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.

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...

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.

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.

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.

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.

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)!"

Who is online

Users browsing this forum: No registered users and 2 guests

You cannot post new topics in this forumYou cannot reply to topics in this forumYou cannot edit your posts in this forumYou cannot delete your posts in this forumYou cannot post attachments in this forum