I have two Alphas, an AlphaPC 164 and an AlphaServer 800. Both are
21164A @ 500MHz machines with a 2117x core chipset.
I fired up the AS800 for the gcc4 stuff, and now that I have both
machines running in parallel I notice that the PC164 is slower than
A simple "md5 -ttt" shows:
PC164: 302 s
AS800: 210 s
In other words, the PC164 is running at 70% the speed of the AS800.
That is weird.
My first thought was, maybe the PC164 isn't really running at 500
MHz. But it uses kern.timecounter.hardware=rpcc, and the RPCC
directly reflects the clock rate. If that was wrong, the system
clock would diverge wildly, which it doesn't (ntpd.drift: 2.984988e-05).
I checked rpcc_timecounter.tc_frequency: 499989720. 500 MHz. That
is calibrated against a time-of-year clock chip, I think, which has
a separate crystal.
So the CPU clock speed is okay. What else is there? md5 -t is a
very stupid test. It runs a 10000-byte block of data through a
small loop; that shouldn't involve main memory or even the lower
cache levels. Besides, I checked the board, and the CPU clock
divisor, Bcache size, and memory bus width jumpers are all in the
> I fired up the AS800 for the gcc4 stuff, and now that I have both
> machines running in parallel I notice that the PC164 is slower than
> the AS800.
> A simple "md5 -ttt" shows:
> PC164: 302 s
> AS800: 210 s
And we have a winner: gcc4.
I stupidly forgot to consider that I had already rebuilt /bin/md5
with gcc4 on the AS800. The machines really are the same speed
when you use the same executable.
But gcc4 doesn't just speed up a silly md5 -t test. In fact, gcc4
produces so much better code that gcc4-built gcc4 itself is faster
than gcc3-built gcc3:
kernel "make depend && make":
(PC164) gcc3: 91 min
(AS800) gcc4: 80 min