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

Intel vs. AMD

Atrye

Limp Gawd
Joined
Sep 11, 2004
Messages
222
Can someone please explain to me the differences between Intel and AMD processors? I know which AMDs are roughly equivilent to Intel's processors but I don't understand how performance can be so comparable when Intel's CPUs have such higher core speeds...
 
Intel has higher frequencies, but does less work in each clock cycle.

Think of it this way:

A huge weight lifter carries 100lbs of stuff and takes an hour to walk a mile.

A runner carries 10lbs of stuff and takes 6 minutes to go a mile.

At the end of an hour, each has the same amount of stuff at the end of the path (weightlifter, 100lbs...sprinter, 100lbs (10lbsx10trips/hour))

Intel is the runner, AMD is the weightlifter.
 
Good analogy, I understand it.

But what's different about them? Why is AMD more efficient with each clock cycle?
 
Atrye said:
Good analogy, I understand it.

But what's different about them? Why is AMD more efficient with each clock cycle?

To answer that I would take 4 years of computer engineering courses....
Thats what I did and i'm pretty sure a professor could it explain it in 4 years better than me.
 
In simplified terms (but not totally correct terms) it is mostly due to the lenght of the pipelines of the different procesors.

http://arstechnica.com/articles/paedia/cpu/pipelining-1.ars

Pentium 4 (Prescott) 31 stage pipeline
Athlon 64 17 stage pipeline

This means the Prescott takes 31 smaller steps to go the same distance that the athlon does in 17 steps. For each clock cycle you can only take one step. So for the same performance the Prescott needs to take faster steps. (higher clock speed)

It is not quite that simple though because the CPU tries to keep all the stages full in it's pipeline at once. (more than one runner on the path) If it was that simple the Prescott would have to be 2.583 times faster than the Athlon 64 to get the same performance, but the P4 is better than that.

edit: corrected pipeling length per: Josh_B

==>Lazn
 
Lazn_Work said:
In simplified terms (but not totally correct terms) it is mostly due to the lenght of the pipelines of the different procesors.

http://arstechnica.com/articles/paedia/cpu/pipelining-1.ars

Pentium 4 (Prescott) 31 stage pipeline
Athlon 64 12 stage pipeline

This means the Prescott takes 31 smaller steps to go the same distance that the athlon does in 12 steps. For each clock cycle you can only take one step. So for the same performance the Prescott needs to take faster steps. (higher clock speed)

It is not quite that simple though because the CPU tries to keep all the stages full in it's pipeline at once. (more than one runner on the path) If it was that simple the Prescott would have to be 2.583 times faster than the Athlon 64 to get the same performance, but the P4 is better than that.

==>Lazn


Yep, except that it is important to note that the Athlon's FPU pipelines are 15 stages, and the Athlon 64's are 17.
 
The length of the pipeline is generally only significant for branch mispredictions since when a wrong branch is taken, the pipeline is flushed of the incorrectly in flight instructions. It has little (see below) or nothing to do with the amount of work done per clock cycle otherwise.

So why is an Athlon or Pentium M faster than a P4 clock for clock? There are actually a few reasons:
1. The netburst core was optimized for clock speed, not throughput. That doesn't contradict the first paragraph. At a higher clock frequency each cache miss hurts more in terms of number of cycles and L2 cache access times go up (L1 also did by 1 cycle in Prescott). HyperThreading and larger caches were band aids on the pipeline bubbles from those problems. The result is a lower average throughput on single threads, much bigger than the slowdown from the small % mispredict/pipeline flush on average. This is the biggest problem.

2. The P-M and AthlonXP/A64 run P6 optimized software better than the P4 does. The P4 requires recompilation with different optimization rules to get maximum performance. That's not bad because those types of optimizations also help the P3/P-M and Athlons. The bad thing is that clock for clock, the P4 is still around 5% slower *with* recompilation.

3. The x87 FPU in the P4 is relatively weak. That seems to be a decision to kill x87 (8 value stack is very weak for modern processors) in favor of SSE2. It was also probably a jab at AMD like emphasizing clock speed in #1 and forcing software P4 optimization in #2.

4. Getting rid of the sweet instruction decoders from the P3 and moving to a trace cache (predecode to micro-ops and store in the instruction cache) was another problem. The P3 was, surprise, surprise, very good at running P6 optimized code. The thing that made the P3 so great was dumped as I hinted in #1 to optimize for speed. The trace cache was created to take a step out of the critical execution path (instruction decoding) to allow for higher frequencies. Dumb move, throwing out years of finely tuned optimization.

5. All the P3/P-M/Athlon and P4 processors have out of order execution. This is where the little part of pipeline length does matter. The P4 doesn't have the ability to keep many more instructions "in flight" than the Athlon. There are actually several sets of registers that keep track of states for things running speculatively and when execution order isn't important (i.e. instruction 2 isn't dependent on instruction 1). Steps in the pipeline and the instruction retire stage gets everything straight, including when one instruction has to wait until another is completed, discarding a result from a path that wasn't supposed to be taken, setting flags for the final results, etc. The problem is with such a deep pipeline, speculative resources run out much quicker, blocking what could otherwise be higher throughput. This also hurts performance, especially in branch heavy code, but is not as big a problem as the pipeline bubbles in #1.

The Pentium-M is not just a P3 with minor changes. It shares some things with both the P3 and P4. The reason I mention the P-M is because clock for clock it's just as good as the Athlon 64, excluding x87 FPU performance of course. The Athlon 64 is a beast in that way... so fast in fact the memory bus limits performance in pure x87 FPU code.

See the ars article above for a very detailed example of pipelining. I'm sure they have another article that examines the P4 in more detail.
 
The upshot of all this is that AMD processors are better at some things, and Intel processors are better at others. AMD 64 and FX-5x processors are considerably faster than their Intel equivalents at almost all games, for instance, but P4E's are very good for audio/video encoding. You really should by the CPU based on what it will be used for.

http://www.community.tomshardware.c..._cpu&Number=527673&page=0&view=collapsed&sb=5
 
workingnonstop said:
Intel has higher frequencies, but does less work in each clock cycle.

Think of it this way:

A huge weight lifter carries 100lbs of stuff and takes an hour to walk a mile.

A runner carries 10lbs of stuff and takes 6 minutes to go a mile.

At the end of an hour, each has the same amount of stuff at the end of the path (weightlifter, 100lbs...sprinter, 100lbs (10lbsx10trips/hour))

Intel is the runner, AMD is the weightlifter.
make it simple, man.

The P4's got less "torque", the AMD has more torque@ low HP.

but do not underestimate the power of P4's high RPM... with some souped up clock and tight a$$ timing, it can be deadly fast plain n simple, Case closed. Where is the hammer?
 
Yea, AMD is doing amazing when it comes to games.
 
My question.. how the hell does a branch misprediction occur???

i'm taking a micro processors applications course.. and well... at least in this CPU we're using... you just have what's in your code.. if there's a branch you branch.. if not.. you don't lol

i don't know.. i don't get it.. how can a CPU correctly guess what will happen next??

I'm using the Motorola M68HC12 CPU

With a 2Mhz of raw computing power baby..
 
wasn't it somehting along the lines where the most used code would be placed in the easiest to access area because chances are that's what's going to be called.

I really have no idea. That's just a wild guess. :D
 
RancidWAnnaRIot said:
My question.. how the hell does a branch misprediction occur???

i'm taking a micro processors applications course.. and well... at least in this CPU we're using... you just have what's in your code.. if there's a branch you branch.. if not.. you don't lol

i don't know.. i don't get it.. how can a CPU correctly guess what will happen next??

I'm using the Motorola M68HC12 CPU

With a 2Mhz of raw computing power baby..

Branch Prediction came about because CPU's are so much faster than the rest of the system (even memory) so when a branching instruction comes in, rather than have the CPU just sit around waiting for the next instruction from memory, it will "guess" at what the next instructions will be, and starts to execute them, then as the instructions come in from memory if it guessed right it can continue with those instructions from further in along the pipeline. If it guessed wrong it throws away the work it guessed wrong on and starts again with the correct instruction.

http://www.x86.org/articles/branch/branchprediction.htm

==>Lazn
 
Lazn_Work said:
Branch Prediction came about because CPU's are so much faster than the rest of the system (even memory) so when a branching instruction comes in, rather than have the CPU just sit around waiting for the next instruction from memory, it will "guess" at what the next instructions will be, and starts to execute them, then as the instructions come in from memory if it guessed right it can continue with those instructions from further in along the pipeline. If it guessed wrong it throws away the work it guessed wrong on and starts again with the correct instruction.

Right... I believe I read once that this 'guessing' is usually about 90% efficient which more than makes up for the overhead when it does guess wrong.



mayakindaguy said:
wasn't it somehting along the lines where the most used code would be placed in the easiest to access area because chances are that's what's going to be called.

That would be temporal locality. It's the same sort of thing but a little different because it's based on data saying that the code is being used the most whereas the other thing is just educated guessing.
 
Don't forget hyperthreading, really the main reason to own an Intel right now (unless you are a video encoder, then there are two reasons). Intels multitask a lot better. For games, AMD wins, by an increasing margin, unless your Pentium is clocked to 5.5 GHz under phase change.

BTW, kudos to the thread contributors for not turning this into a phanboy flamefest. :p
 
hyperthreading improves intels multithreading over prior non-ht chips, but I don't think you can compare it to amd chips....
 
uclajd said:
BTW, kudos to the thread contributors for not turning this into a phanboy flamefest. :p

Agreed... it is nice to see intelligent conversation.
 
ya, I'm going to an fx-55 with a vapochill from a 4ghz 3.0C on water and I'm kinda worried about the lack of hyperthreading....my downstairs 2.2ghz hp machine has no hyperthreading and its DEFINETLEY noticable....
 
potroast said:
hyperthreading improves intels multithreading over prior non-ht chips, but I don't think you can compare it to amd chips....
Sure I can, since it's the one reason I haven't switched to Athlons. I've used AMD systems, and they stutter when doing multiple, CPU-intensive things. :p

Actually, If I had the room and money, I'd have two systems, AMD for gaming and benching, Intel for workstation. Man, don't even tempt me, I cannot afford to do that. :eek:

See also, computerpro3's post (and his insightful sig). ;)
 
uclajd said:
Actually, If I had the room and money, I'd have two systems, AMD for gaming and benching, Intel for workstation.

That looks like the best way to do it.
 
intel does better at video encoding, but amd has almost cought up with the athlon64
and amd does betetr with gaming

people should look at cpus based on ther needs and what they use their computer for.
 
Good to see little or no flamage. If you game go A64. If you do a lot of task intensive video or audio encoding go Intel. they have less compatibility issues and will be more stable for those types of programs as long as you stick to Intel based chipsets (i.e. 865, 875, etc)

Both chips are great, and best of all it keeps prices in line so we enthusiasts can enjoy breakneck performance without breaking our wallets...

Stay [H]ard... :D :D :D
 
Back
Top