Subject: Benchmarks, and Compaq C
To: None <>
From: Scott Telford <>
List: port-alpha
Date: 04/29/2001 18:32:18
I've recently installed NetBSD 1.5 on a DEC 3000 Model 300L and, while
building a custom kernel, noticed that things were running a bit slower
than I expected. I then compiled up a couple of integer benchmarks I had
to hand (Dhrystone 2.1 and the "speedfcrypt" benchmark from Crack 4.0a)
which confirmed that my DEC 3000's integer performance was somewhere in
the ballpark of a mid-range 486, rather than the low-end Pentium I was
expecting (from the SPEC92 numbers).

To investigate further, I ran the same benchmarks on a selection of the
Compaq Test Drive Alpha boxes. The systems I chose were 466MHz EV6 DS10s
or DS10-Ls running Tru64 Unix 5.1A, Red Hat Linux 7.0 and NetBSD 1.5,
plus a 667MHz XP1000 running FreeBSD 4.2 (no DS10 running FreeBSD was
available). The results are summarized below (apologies if the tabbing
is wonky):

OS and compiler				Dhrystone	speedfcrypt

Tru64, Compaq C 6.4-007			~1558k/s	~26k/s

RHL 7.0, gcc "2.96"			~497k/s		~10.5k/s
RHL 7.0, gcc 2.91.66 ("kgcc")		~485k/s		-
RHL 7.0, Compaq C 6.2-506 for Linux	~1660k/s	~23k/s

FreeBSD, gcc 2.95.2 (667MHz)		~488k/s		-

NetBSD, gcc 2.91.66			~340k/s		~11.5k/s

Dhrystone was compiled without any optimisations, speedfcrypt was
compiled as per its makefile.

From the results it seems obvious that NetBSD/alpha's lack of
performance is (as previously conjectured) largely due to gcc producing
deeply sub-optimal Alpha code compared to the Digital/Compaq compiler,
although RedHat's gcc "2.96" snapshot seems to have improved on it a
little. If the FreeBSD result is scaled by processor clock speed, then
it's pretty much exactly the same as the NetBSD number, which is
probably to be expected.

Whilst browsing the freebsd-alpha mailing list archives, I noticed that
the FreeBSD/alpha folks have made a port/package of Compaq C for Linux,
integrating it with the FreeBSD libraries etc. to produce native
FreeBSD/alpha binaries.  This seems like a cool idea - has anybody
looked at doing the same for NetBSD/alpha? If not, I'll try to look into
this sometime soon.

Scott Telford,                            
Edinburgh, UK.