Canadian Mac Forums at ehMac banner

P4 vs G5 vs G3

10K views 41 replies 12 participants last post by  Macaholic 
#1 ·
I've been doing a bit of work lately on cross-platform benchmarks, and I thought it might be interesting to share some of the results I've collected so far. I've run the benchmarks on three different machines (one PC, two Macs) and here are the results. Higher numbers, as always, are better.

Dell Dimension 4500 (P4 2.26GHz)

<pre>cpu (float) mandelbrot (sqrt) 800.53 megaflops<br />cpu (float) mandelbrot (nosqrt) 720.65 megaflops<br /><br />cpu (integer) blowfish (cache) 37.32 megabytes/sec<br />cpu (integer) blowfish (memory) 27.98 megabytes/sec<br />cpu (integer) emulate 6502 275.00 megahertz<br /><br />memory (stdlib) fill 575.69 megabytes/sec<br />memory (stdlib) sequential access 542.38 megabytes/sec<br />memory (stdlib) random access 658.40 megabytes/sec<br />memory (stdlib) copy 448.52 megabytes/sec<br /><br />memory (stream) copy 957.93 megabytes/sec<br />memory (stream) scale 893.63 megabytes/sec<br />memory (stream) add 1010.30 megabytes/sec<br />memory (stream) triad 1011.56 megabytes/sec<br /></pre>

Power Mac G5 (G5 1.6GHz)

<pre>cpu (float) mandelbrot (sqrt) 441.54 megaflops<br />cpu (float) mandelbrot (nosqrt) 697.13 megaflops<br /><br />cpu (integer) blowfish (cache) 32.52 megabytes/sec<br />cpu (integer) blowfish (memory) 24.07 megabytes/sec<br />cpu (integer) emulate 6502 193.07 megahertz<br /><br />memory (stdlib) fill 2.13 gigabytes/sec<br />memory (stdlib) sequential access 2.14 gigabytes/sec<br />memory (stdlib) random access 2.21 gigabytes/sec<br />memory (stdlib) copy: 1.02 gigabytes/sec<br /><br />memory (stream) copy 1.43 gigabytes/sec<br />memory (stream) scale 1.39 gigabytes/sec<br />memory (stream) add 1.51 gigabytes/sec<br />memory (stream) triad 1.50 gigabytes/sec</pre>

Power Mac G3 (G3 450MHz)

<pre>cpu (float) mandelbrot (sqrt) 49.51 megaflops<br />cpu (float) mandelbrot (nosqrt) 198.20 megaflops<br /><br />cpu (integer) blowfish (cache) 11.50 megabytes/sec<br />cpu (integer) blowfish (memory) 9.74 megabytes/sec<br />cpu (integer) emulate 6502 52.85 megahertz<br /><br />memory (stdlib) fill 284.41 megabytes/sec<br />memory (stdlib) sequential access 283.53 megabytes/sec<br />memory (stdlib) random access 288.61 megabytes/sec<br />memory (stdlib) copy 81.90 megabytes/sec<br /><br />memory (stream) copy 165.33 megabytes/sec<br />memory (stream) scale 165.04 megabytes/sec<br />memory (stream) add 168.51 megabytes/sec<br />memory (stream) triad 168.48 megabytes/sec</pre>
 
See less See more
G
#4 ·
As always though it comes down to the tools used and how well they are (or are not) optimized for the arch in question. Things like MMX/SSE/Altivec make HUGE differences! Also hardware differences (such as FSB speed, hyperthreading, chipsets used, etc) make huge differences in things like ram access. It's like comparing a Camaro to a Volkswagon ;)
 
#5 ·
Ooooh, lots of big beautiful numbers!

Yes, I believe you are right Chealion, I think the 970 is best at integer operations, while the P4 and I believe G4 is best at floating point operations. With the proviso that you don't take Altivec into consideration. If you put floating point ops through Altivec, then of course the 970 wins overall, I believe.
 
#7 ·
so long story short.

P4 is a speed demon

G5 is a beast of burden

G3 is a royal waste of time



eh?

how can i get about benchmarking my sawtooth? lol...just for fun? or is it not a matter of fun?

i wouldn't mind seeing what difference in floating point operations the "AltiVec" engine makes...

When would a person ever use a Floating Point Operation?
 
#10 ·
The Pentium 4 has a 533MHz FSB (it's an older machine).

The floating point tests aren't optimized for any particular platform; they don't use SSE or Altivec instructions. I might tweak the benchmarks to use SIMD instructions (if available), but I'm more keen on getting the benchmark suite out the door first.
 
#11 ·
jfpoole - Am I to assume you're near completion of the fabled GeekBench? Designed to test apples to oranges by comparing a fruit to a fruit? It will be too bad people will get stuck on an apple having black seeds, and the orange having white seeds, or do you have someway to explain it?
 
#13 ·
Just for comparison's sake, here are the Geek Bench results for my Athlon64 3200+ (1 GB PC3200)

cpu (float) mandelbrot (sqrt) 944.05 megaflops
cpu (float) mandelbrot (nosqrt) 1.06 gigaflops

CPU (float) scores are better than the P4 and the G5.

cpu (integer) blowfish 57.87 megabytes/sec
cpu (integer) blowfish (memory) 53.00 megabytes/sec
cpu (integer) emulate 6502 319.11 megahertz

CPU (intetger) scores are better than the P4 and the G5.

memory (stdlib) fill 1001.19 megabytes/sec
memory (stdlib) sequential access 951.53 megabytes/sec
memory (stdlib) random access 1.00 gigabytes/sec
memory (stdlib) copy 636.16 megabytes/sec

memory (stlib) scores are roughly 2x the P4, but only roughly 1/2x the G5.

memory (stream) copy 1.30 gigabytes/sec
memory (stream) scale 1.26 gigabytes/sec
memory (stream) add 1.36 gigabytes/sec
memory (stream) triad 1.36 gigabytes/sec

memory (stream) scores are roughly 30% better than the P4, and only slightly lower than the G5.

jfpoole said:
I've been doing a bit of work lately on cross-platform benchmarks, and I thought it might be interesting to share some of the results I've collected so far. I've run the benchmarks on three different machines (one PC, two Macs) and here are the results. Higher numbers, as always, are better.

Dell Dimension 4500 (P4 2.26GHz)

<pre>cpu (float) mandelbrot (sqrt) 800.53 megaflops<br />cpu (float) mandelbrot (nosqrt) 720.65 megaflops<br /><br />cpu (integer) blowfish (cache) 37.32 megabytes/sec<br />cpu (integer) blowfish (memory) 27.98 megabytes/sec<br />cpu (integer) emulate 6502 275.00 megahertz<br /><br />memory (stdlib) fill 575.69 megabytes/sec<br />memory (stdlib) sequential access 542.38 megabytes/sec<br />memory (stdlib) random access 658.40 megabytes/sec<br />memory (stdlib) copy 448.52 megabytes/sec<br /><br />memory (stream) copy 957.93 megabytes/sec<br />memory (stream) scale 893.63 megabytes/sec<br />memory (stream) add 1010.30 megabytes/sec<br />memory (stream) triad 1011.56 megabytes/sec<br /></pre>

Power Mac G5 (G5 1.6GHz)

<pre>cpu (float) mandelbrot (sqrt) 441.54 megaflops<br />cpu (float) mandelbrot (nosqrt) 697.13 megaflops<br /><br />cpu (integer) blowfish (cache) 32.52 megabytes/sec<br />cpu (integer) blowfish (memory) 24.07 megabytes/sec<br />cpu (integer) emulate 6502 193.07 megahertz<br /><br />memory (stdlib) fill 2.13 gigabytes/sec<br />memory (stdlib) sequential access 2.14 gigabytes/sec<br />memory (stdlib) random access 2.21 gigabytes/sec<br />memory (stdlib) copy: 1.02 gigabytes/sec<br /><br />memory (stream) copy 1.43 gigabytes/sec<br />memory (stream) scale 1.39 gigabytes/sec<br />memory (stream) add 1.51 gigabytes/sec<br />memory (stream) triad 1.50 gigabytes/sec</pre>

Power Mac G3 (G3 450MHz)

<pre>cpu (float) mandelbrot (sqrt) 49.51 megaflops<br />cpu (float) mandelbrot (nosqrt) 198.20 megaflops<br /><br />cpu (integer) blowfish (cache) 11.50 megabytes/sec<br />cpu (integer) blowfish (memory) 9.74 megabytes/sec<br />cpu (integer) emulate 6502 52.85 megahertz<br /><br />memory (stdlib) fill 284.41 megabytes/sec<br />memory (stdlib) sequential access 283.53 megabytes/sec<br />memory (stdlib) random access 288.61 megabytes/sec<br />memory (stdlib) copy 81.90 megabytes/sec<br /><br />memory (stream) copy 165.33 megabytes/sec<br />memory (stream) scale 165.04 megabytes/sec<br />memory (stream) add 168.51 megabytes/sec<br />memory (stream) triad 168.48 megabytes/sec</pre>
 
#17 ·
CPU (intetger) scores are better than the P4 and the G5.

amd 64

memory (stdlib) fill 1001.19 megabytes/sec
memory (stdlib) sequential access 951.53 megabytes/sec
memory (stdlib) random access 1.00 gigabytes/sec
memory (stdlib) copy 636.16 megabytes/sec

ppc g5

memory (stdlib) fill 2.13 gigabytes/sec
memory (stdlib) sequential access 2.14 gigabytes/sec
memory (stdlib) random access 2.21 gigabytes/sec
memory (stdlib) copy: 1.02 gigabytes/sec



Am i missing something? is smaller better? or else, how else is the athlon better than the g5 in that test?
 
#18 ·
Athlon64 3200+

PosterBoy said:
cpu (float) mandelbrot (sqrt) 944.05 megaflops
cpu (float) mandelbrot (nosqrt) 1.06 gigaflops

cpu (integer) blowfish 57.87 megabytes/sec
cpu (integer) blowfish (memory) 53.00 megabytes/sec
cpu (integer) emulate 6502 319.11 megahertz
PPC G5 1.6

jfpoole said:
cpu (float) mandelbrot (sqrt) 441.54 megaflops
cpu (float) mandelbrot (nosqrt) 697.13 megaflops

cpu (integer) blowfish (cache) 32.52 megabytes/sec
cpu (integer) blowfish (memory) 24.07 megabytes/sec
cpu (integer) emulate 6502 193.07 megahertz
Athlon64s CPU scores are all better than the the G5s scores in the same area. The numbers you are comparing gnatsum are memory scores.

And for what it's worth, the actual clock speed of an Athlon64 3200+ is 2.2 GHz.
 
G
#20 ·
gnatsum said:
alright...so g5's are memory monsters???

but slow....


so how do you translate that into performance that an avg. user can grasp?
That's the problem ... you can't translate it. As I said earlier in the thread.. due to radical diffrences in operating systems, compilers, etc, etc ... these tests don't even accurately show the differences in the hardware. That's part of it, they do show differences in the compilers, code used, etc etc though LOL

The only way to do a real comparison will be on MacIntels. That's what I'm waiting to see ... OSX vs. Windows on the same hardware :eek:
 
#21 ·
mgeurtin - Sure you can get better performance by tailoring the way the program is made and compiled for a specific processor, but if you just use generic code and a standard compiler with no biases towards any processor, then can you not get a benchmark that you can actually compare the computers to each other because they are on a level playing field. It's not the end all and be all, but it's the first try I've seen to make something that doesn't bias one end or the other.

On a sidenote, jfpoole's program compares hardware, not the difference in speed between OS X and Windows.
 
G
#22 ·
well yes and no .. the thing is that not all compilers are created equal, so it all comes back down to the toolchain. With gcc the x86 version, in general is _much_ more optimized then the PowerPC version ... alot of which comes back down to compatibility, etc.

The short answer is that yes it's a comparison, but it's not necessarily very accurate. This is a long running argument (of many many years, usenet has threads that are hundreds of posts long on just this part of things alone). There are (potentially) big differences in the compiler versions right down to assembly level and beyond.

Not saying the application is biased really, but it's not necessarily an "apples to apples" comparison .. there is really no such thing going across multiple architectures that exists. They are _an_ indication but not necessarily _the_ indication.

Not trying to be a party pooper or anything! Just trying to be the devil's advocate!
 
#24 ·
GeekBench isn't meant to be an exact processor or hardware benchmark, but rather a "computing ecosystem" benchmark (which includes the hardware, but also the operating system and developer tools). We're not interested in determining whether the P4 is better than the G5 (or vice-versa); we're interested in determining what application performance is like under Windows compared to Mac OS X.

We're using the standard development tools (Visual C++ on Windows, Xcode on Mac OS X) with the standard settings, and writing processor agnostic code. We're not doing anything particularily fancy, but most application code doesn't do anything fancy either, and that's what most people run day in and day out.
 
#26 ·
Geek Bench on a PowerBook 12" 1.33 w/ 768 MB of RAM

cpu (float) mandelbrot (sqrt): 124.94 megaflops
cpu (float) mandelbrot (nosqrt): 435.87 megaflops
cpu (float) mandelbrot (thread): 436.69 megaflops

cpu (integer) blowfish (cache): 35.04 megabytes/sec
cpu (integer) blowfish (memory): 30.84 megabytes/sec
cpu (integer) blowfish (thread): 34.90 megabytes/sec
cpu (integer) emulate 6502: 127.09 megahertz

memory (stdlib) fill: 592.27 megabytes/sec
memory (stdlib) sequential access: 601.27 megabytes/sec
memory (stdlib) random access: 614.96 megabytes/sec
memory (stdlib) copy: 401.21 megabytes/sec

memory (stream) copy: 520.42 megabytes/sec
memory (stream) scale: 507.40 megabytes/sec
memory (stream) add: 586.58 megabytes/sec
memory (stream) triad: 579.61 megabytes/sec
 
This is an older thread, you may not receive a response, and could be reviving an old thread. Please consider creating a new thread.
Top