# P4 vs G5 vs G3



## jfpoole (Sep 26, 2002)

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>


----------



## DBerG (May 24, 2005)

As expected the G5 exceed by far in memory operations.


----------



## Chealion (Jan 16, 2001)

jfpoole - What's the bus speed on the P4?

I was under the impression that the G5/G4s were better at integer operations while the P4 was better at floating point operations. (Or was it vice versa?)


----------



## Guest (Aug 3, 2005)

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


----------



## Kosh (May 27, 2002)

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.


----------



## comprehab (May 28, 2005)

Glad to see all those powermacs are going to good use! Hehehe


----------



## gnatsum (Apr 10, 2005)

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?


----------



## Guest (Aug 3, 2005)

I wouldn't say the G3 is a waste of time ... but it you compare it to the PC world you would be comparing it to P2 processors and the G3 will likely come up much nicer in that comparison


----------



## someone (Jun 14, 2005)

I don't think the float point tests are fair. I believe the P4 ones are optimized for SSE. while the G5 ones are *not* optimized for Altivec.


----------



## jfpoole (Sep 26, 2002)

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.


----------



## Chealion (Jan 16, 2001)

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?


----------



## jfpoole (Sep 26, 2002)

GeekBench will be done when it's done. The benchmarks are coming together nicely but there's still a lot of work to be done, especially with the UI and multi-processor benchmarks.


----------



## PosterBoy (Jan 22, 2002)

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


----------



## jfpoole (Sep 26, 2002)

I wonder what the scores would look like on a dual PowerMac G5 2.7GHz? Anyone have one and want to be a guinea pig?


----------



## PosterBoy (Jan 22, 2002)

Oooh, that would be interesting.


----------



## Chealion (Jan 16, 2001)

Any intention for making a public download or something I can try out?


----------



## gnatsum (Apr 10, 2005)

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?


----------



## PosterBoy (Jan 22, 2002)

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


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


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.


----------



## gnatsum (Apr 10, 2005)

alright...so g5's are memory monsters???

but slow....


so how do you translate that into performance that an avg. user can grasp?


----------



## Guest (Aug 12, 2005)

gnatsum said:


> alright...so g5's are memory monsters???
> 
> but slow....
> 
> ...


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


----------



## Chealion (Jan 16, 2001)

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.


----------



## Guest (Aug 12, 2005)

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!


----------



## PosterBoy (Jan 22, 2002)

mguertin said:


> They are _an_ indication but not necessarily _the_ indication.


In all fairness, I don't think that any benchmark is _the_ indication.

But jfpoole would have to be the one to discuss the development of this tool, as he's the one developing it.


----------



## jfpoole (Sep 26, 2002)

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.


----------



## jfpoole (Sep 26, 2002)

Oh, I'm hoping to have a version of GeekBench available soon for people who want to try it out. Drop me a line if you're interested in trying it out.


----------



## PosterBoy (Jan 22, 2002)

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


----------



## jfpoole (Sep 26, 2002)

Some more results from dual-processor machines.

Power Mac G4 Dual 1.0GHz
<pre>os: Version 10.2.8 (Build 6R73)<br />cpu: G4 (7450) x 2<br />cpu frequency: 1000 MHz<br />bus frequency: 167 MHz<br />memory: 2048 MB<br /><br />cpu (float) mandelbrot (sqrt) 1 thread 95.67 megaflops<br />cpu (float) mandelbrot (sqrt) 4 threads 171.24 megaflops<br />cpu (float) mandelbrot (nosqrt) 1 thread 319.97 megaflops<br />cpu (float) mandelbrot (nosqrt) 4 threads 632.27 megaflops<br />cpu (integer) blowfish (cache) 1 thread 22.51 megabytes/sec<br />cpu (integer) blowfish (cache) 4 threads 44.79 megabytes/sec<br />cpu (integer) blowfish (memory) 1 thread 19.90 megabytes/sec<br />cpu (integer) blowfish (memory) 4 threads 38.24 megabytes/sec<br />cpu (integer) emulate 6502 1 thread 76.01 megahertz<br />memory (stdlib) fill 1 thread 683.67 megabytes/sec<br />memory (stdlib) sequential access 1 thread 685.96 megabytes/sec<br />memory (stdlib) random access 1 thread 685.75 megabytes/sec<br />memory (stdlib) copy 1 thread 478.04 megabytes/sec<br />memory (stream) copy 1 thread 576.12 megabytes/sec<br />memory (stream) scale 1 thread 561.92 megabytes/sec<br />memory (stream) add 1 thread 675.27 megabytes/sec<br />memory (stream) triad 1 thread 675.74 megabytes/sec<br /></pre>
Xserve G5 Dual 2.0GHz
<pre>os: Version 10.4.1 (Build 8B17)<br />cpu: G5 (970) x 2<br />cpu frequency: 2000 MHz<br />bus frequency: 1000 MHz<br />memory: 2048 MB<br /><br />cpu (float) mandelbrot (sqrt) 1 thread 655.52 megaflops<br />cpu (float) mandelbrot (sqrt) 4 threads 1.23 gigaflops<br />cpu (float) mandelbrot (nosqrt) 1 thread 887.97 megaflops<br />cpu (float) mandelbrot (nosqrt) 4 threads 1.74 gigaflops<br />cpu (integer) blowfish (cache) 1 thread 34.45 megabytes/sec<br />cpu (integer) blowfish (cache) 4 threads 68.36 megabytes/sec<br />cpu (integer) blowfish (memory) 1 thread 31.50 megabytes/sec<br />cpu (integer) blowfish (memory) 4 threads 60.21 megabytes/sec<br />cpu (integer) emulate 6502 1 thread 162.62 megahertz<br />memory (stdlib) fill 1 thread 2.78 gigabytes/sec<br />memory (stdlib) sequential access 1 thread 2.78 gigabytes/sec<br />memory (stdlib) random access 1 thread 2.85 gigabytes/sec<br />memory (stdlib) copy 1 thread 1.37 gigabytes/sec<br />memory (stream) copy 1 thread 1.65 gigabytes/sec<br />memory (stream) scale 1 thread 1.67 gigabytes/sec<br />memory (stream) add 1 thread 1.80 gigabytes/sec<br />memory (stream) triad 1 thread 1.79 gigabytes/sec<br /></pre>
Power Mac G5 Dual 1.8GHz
<pre>model: PowerMac7,2<br />os: Version 10.3.9 (Build 7W98)<br />cpu: G5 (970) x 2<br />cpu frequency: 1800 MHz<br />bus frequency: 900 MHz<br />memory: 1024 MB<br /><br />cpu (float) mandelbrot (sqrt) 1 thread 492.03 megaflops<br />cpu (float) mandelbrot (sqrt) 4 threads 1.05 gigaflops<br />cpu (float) mandelbrot (nosqrt) 1 thread 801.75 megaflops<br />cpu (float) mandelbrot (nosqrt) 4 threads 1.55 gigaflops<br />cpu (integer) blowfish (cache) 1 thread 36.60 megabytes/sec<br />cpu (integer) blowfish (cache) 4 threads 72.03 megabytes/sec<br />cpu (integer) blowfish (memory) 1 thread 31.88 megabytes/sec<br />cpu (integer) blowfish (memory) 4 threads 61.00 megabytes/sec<br />cpu (integer) emulate 6502 1 thread 135.13 megahertz<br />memory (stdlib) fill 1 thread 2.52 gigabytes/sec<br />memory (stdlib) sequential access 1 thread 2.52 gigabytes/sec<br />memory (stdlib) random access 1 thread 2.59 gigabytes/sec<br />memory (stdlib) copy 1 thread 1.29 gigabytes/sec<br />memory (stream) copy 1 thread 1.70 gigabytes/sec<br />memory (stream) scale 1 thread 1.69 gigabytes/sec<br />memory (stream) add 1 thread 1.70 gigabytes/sec<br />memory (stream) triad 1 thread 1.70 gigabytes/sec<br /></pre>


----------



## Guest (Aug 15, 2005)

PosterBoy said:


> In all fairness, I don't think that any benchmark is _the_ indication.
> 
> But jfpoole would have to be the one to discuss the development of this tool, as he's the one developing it.



Yep agreed. I just wanted to make that very clear that we are basically not only testing the hardware's performance, but also the compiler's optimization level for each platform!  As I have said, this is something that has been argued over for years on usenet


----------



## pdksh (Aug 15, 2005)

i am coming into this post way too late with nothing really important to say, but...

CPU performance is a lot like the Raw Horse Power of a car engine. It gives you useles bragging rights and takes very little in to consideration if you are using it to gage overall speed of the car.

Rear wheel horse power is a better start but still a useless

To judge the speed of a car you have to take many factors into account;
- suspension
- gross weight
- gear ratios
- break system
and most important the driver...

If the computer feels "fast" then its "fast". If the computer does what you want it to do when you want it to do it, then its "fast". Just yestarday i fired up my G3 B&W with a G4-500. For the first time since I got that mac it seamed slow. Why, I have been using a G4 power book with a 867 MHz G4 for the past 6 months.

I do not wish to insult the posters of this thread, and I do not wish to take steam from this thread. Benchmark tests are extremely usefull for optimising a system but they are in no way a true indication of REAL-WORLD usage.

- said more then i should -


----------



## jfpoole (Sep 26, 2002)

Unearthing old threads is fun!

Anyway, you can download <a href="http://www.geekpatrol.ca/article/97/geekbench-preview">Geekbench</a> if you're interested in running these benchmarks on your own computer.


----------



## Strimkind (Mar 31, 2005)

there seems to be a lot of that recently.
To add to the old conversation I believe the G4/G5 are designed to be fast in professional tasks...perhaps as competition to the itanium or xeon intel...while the P4 was designed purely for games.


----------



## Macaholic (Jan 7, 2003)

*Heeeeeeeer's FRANKIE!*

Last login: Thu Jan 12 02:27:55 on console
Welcome to Darwin!
/Users/XX/Desktop/geekbench; exit
Frankenmac:~ XX$ /Users/XX/Desktop/geekbench; exit
model: PowerMac3,3
os: Version 10.4.3 (Build 8F46)
cpu: G4 (7450) x 2
cpu frequency: 1300 MHz
bus frequency: 100 MHz
memory: 2048 MB

version: Geekbench Preview (build 10)
compiler: gcc 4.0.1 (Apple Computer, Inc. build 5247)

cpu (float) mandelbrot (sqrt) 1 thread 125.91 megaflops
cpu (float) mandelbrot (sqrt) 4 threads 248.72 megaflops
cpu (float) mandelbrot (nosqrt) 1 thread 433.62 megaflops
cpu (float) mandelbrot (nosqrt) 4 threads 852.23 megaflops
cpu (integer) blowfish (cache) 1 thread 279.38 megabytes/sec
cpu (integer) blowfish (cache) 4 threads 540.27 megabytes/sec
cpu (integer) blowfish (memory) 1 thread 44.77 megabytes/sec
cpu (integer) blowfish (memory) 4 threads 76.59 megabytes/sec
cpu (integer) emulate 6502 1 thread 130.92 megahertz
memory (stdlib) fill 1 thread 482.77 megabytes/sec
memory (stdlib) sequential access 1 thread 481.69 megabytes/sec
memory (stdlib) random access 1 thread 526.38 megabytes/sec
memory (stdlib) copy 1 thread 223.84 megabytes/sec
memory (stream) copy 1 thread 205.22 megabytes/sec
memory (stream) scale 1 thread 214.83 megabytes/sec
memory (stream) add 1 thread 239.65 megabytes/sec
memory (stream) triad 1 thread 240.44 megabytes/sec
logout
[Process completed]


----------



## Macaholic (Jan 7, 2003)

HEY! You guys got listed on Macsurfer!


----------



## ArtistSeries (Nov 8, 2004)

Macaholic said:


> HEY! You guys got listed on Macsurfer!


Nice to see Geekbench still being developed.
Macaholic maybe you could supply and "all done" sound when the test have ended running?


----------



## Macaholic (Jan 7, 2003)

Actually, I'd be happy to!  Once they get a GUI on this little beastie, of course.


----------



## Macaholic (Jan 7, 2003)

Guys, you should make Rob aware of this thing at barefeats.com. Some of you may recall me alerting him to Geekbench months ago. He may find it of interest, given its UB nature.


----------



## Macaholic (Jan 7, 2003)

Actually, guys, are you planning on including tests for the GPU and drive? Xbench is LAME and needs to be put put of its misery. You guys could be onto something BIG if you flesh out the test suite.


----------



## ArtistSeries (Nov 8, 2004)

Are you going for a Dr. G record? 3 post in a row....
ooops just broke that...


----------



## jfpoole (Sep 26, 2002)

I've been working on a hard drive test, and while there are some issues to iron out, it looks good. I've thought about doing a GPU test, but that's ... tricky. With modern graphics cards testing the GPU (and doing it in a cross-platform manner to boot) is hard. 

Oh, and the GUI is under construction, it's just nowhere near ready for public consumption yet. Since we're still hammering out benchmark details, I find it's far easier to work on the CLI version (plus I can do automated performance testing on all my Macs with the CLI version).


----------



## Macaholic (Jan 7, 2003)

Hopefully, you'll be able to utilize a drive's cache in the tests -- unlike Xbench 

And -- just to confirm -- Geekbench is dual, CPU aware. Right?

If you want some sounds for aural feedback, PM me and we'll talk.


----------



## jfpoole (Sep 26, 2002)

Geekbench is SMP aware; right now it can take advantage of up to four cpus (so it could keep one of the quad PowerMacs rather busy). 

Thanks for the offer for aural feedback. I hadn't thought of having that, but it's a really good idea!


----------



## Macaholic (Jan 7, 2003)

Yeah, when I tested it again, I checked out my Menumeters showed both CPUs _pinned_ at 100%.


----------

