Re: Performance of 604e processors

From: Timothy A. Seufert (bwanga@cats.ucsc.edu)
Date: Sat Nov 23 1996 - 03:24:52 CST


>Yes, definitely. I only have results for the Performa 6300 (mine) and the
>PowerMac 7100/66 so far. Both are underwhelming -- I hope that the 604's
>manage better, but the 601's are of interest as well.

Here are the results for my 7500 (100 MHz 601, 1MB L2 cache). They're
somewhat better than the 7100/66, but not nearly as much as I'd have
expected. The 7100 has a 33 MHz 64-bit bus, while the 7500 has a 50 MHz
128-bit bus. (The CPU has only a 64-bit wide datapath. However, the early
availability of an extra 64 bits allows the memory controller to reduce the
number of stall cycles during cache line fills.)

-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 2000000, Offset = 0
Total memory required = 45.8 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 16666 microseconds.
Each test below will take on the order of 399999 microseconds.
   (= 24 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function Rate (MB/s) RMS time Min time Max time
Copy: 56.4706 0.5684 0.5667 0.5833
Scale: 56.4706 0.5717 0.5667 0.5833
Add: 66.9767 0.7167 0.7167 0.7167
Triad: 66.9767 0.7317 0.7167 0.7333

This is my rewrite of second_cpu.c for the Mac. It uses the 60 Hz system
clock. There are better timing methods available under MacOS, but they are
not as easy to use as this. I do have some assembly source for using the
604's performance monitoring features, which can give execution times in
cycle counts; I may try to use that method when I get the 604e card.

#include <Events.h>

double second(void);

double second(void)
{
  return ( (double)(TickCount()) / 60.0 );
}

+-----------------------------------------------------------+
|Tim Seufert, bwanga@cats.ucsc.edu | UselessWastedSpace(tm) |
| "I never give them hell. I just tell the truth, and they |
| think it is hell." -Harry S Truman |
+-----------------------------------------------------------+



This archive was generated by hypermail 2b29 : Tue Apr 18 2000 - 05:23:06 CDT