[m-dev.] preliminary MLDS performance comparisons

Fergus Henderson fjh at cs.mu.OZ.AU
Tue May 23 15:54:59 AEST 2000


Here's a comparison of the MLDS back-end with the asm_fast.gc
back-end on the micro-benchmarks in tests/benchmarks.
I tested with the following options:

GRADE=asm_fast.gc MCFLAGS=-O6 MLFLAGS=--static
GRADE=hlc.gc      MCFLAGS=-O6 MLFLAGS=--static CFLAGS=-O3

Note that with `-O6', for several of the benchmarks the compiler uses
deforestation, so the results may be a bit misleading.
For the nondeterministic benchmarks, I ran them in `cc' modes.

In summary:
	MLDS wins slightly:	cqueens
	within 10% either way:	deriv, poly, queens, qsort
	MLDS loses slightly:	primes, tak
	MLDS loses badly:	crypt, query

For crypt and query, I think the main problem is poor code generation
for switches.  For tak, gcc just doesn't do quite as good a job of
optimization stack frame allocation as the LLDS back-end does;
I think this is not likely to matter much for real applications.

Here's the raw data (repetition counts and times).

--- dir.asm_fast.gc/allqueens.time	Tue May 23 15:44:52 2000
+++ dir.hlc.gc.sgt.gccO3/allqueens.time	Tue May 23 15:49:41 2000
@@ -1,4 +1,4 @@
 30	
-   4.870u 4.880u 0.050s 0:04.93 100.0%	0+0k 0+0io 71pf+0w
-   4.919u 4.920u 0.040s 0:04.97 99.7%	0+0k 0+0io 71pf+0w
-   4.819u 4.820u 0.110s 0:04.94 99.7%	0+0k 0+0io 71pf+0w
+   5.089u 5.090u 0.060s 0:05.16 99.8%	0+0k 0+0io 148pf+0w
+   5.009u 5.010u 0.070s 0:05.51 92.1%	0+0k 0+0io 70pf+0w
+   4.930u 4.940u 0.040s 0:04.98 100.0%	0+0k 0+0io 70pf+0w
--- dir.asm_fast.gc/cqueens.time	Tue May 23 13:04:28 2000
+++ dir.hlc.gc.sgt.gccO3/cqueens.time	Tue May 23 15:00:21 2000
@@ -1,4 +1,4 @@
 35000	
-   4.799u 4.800u 0.040s 0:04.83 100.2%	0+0k 0+0io 71pf+0w
-   4.850u 4.860u 0.040s 0:04.91 99.7%	0+0k 0+0io 71pf+0w
-   4.770u 4.780u 0.060s 0:04.83 100.2%	0+0k 0+0io 71pf+0w
+   4.370u 4.380u 0.060s 0:04.57 97.1%	0+0k 0+0io 146pf+0w
+   4.220u 4.230u 0.070s 0:04.29 100.2%	0+0k 0+0io 71pf+0w
+   4.279u 4.280u 0.050s 0:04.33 100.0%	0+0k 0+0io 71pf+0w
--- dir.asm_fast.gc/crypt.time	Tue May 23 13:04:49 2000
+++ dir.hlc.gc.sgt.gccO3/crypt.time	Tue May 23 15:01:07 2000
@@ -1,4 +1,4 @@
 20000	
-   7.020u 7.040u 0.070s 0:07.10 100.1%	0+0k 0+0io 73pf+0w
-   7.050u 7.060u 0.030s 0:07.08 100.1%	0+0k 0+0io 73pf+0w
-   7.029u 7.030u 0.050s 0:07.08 100.0%	0+0k 0+0io 73pf+0w
+  13.590u 13.610u 0.020s 0:13.79 98.8%	0+0k 0+0io 145pf+0w
+  13.420u 13.430u 0.060s 0:13.49 100.0%	0+0k 0+0io 73pf+0w
+  13.459u 13.460u 0.040s 0:13.50 100.0%	0+0k 0+0io 73pf+0w
--- dir.asm_fast.gc/deriv.time	Tue May 23 13:05:01 2000
+++ dir.hlc.gc.sgt.gccO3/deriv.time	Tue May 23 15:01:25 2000
@@ -1,4 +1,4 @@
 70000	
-   3.739u 3.740u 0.050s 0:03.78 100.2%	0+0k 0+0io 70pf+0w
-   3.739u 3.740u 0.050s 0:03.79 100.0%	0+0k 0+0io 70pf+0w
-   3.780u 3.790u 0.030s 0:03.82 100.0%	0+0k 0+0io 70pf+0w
+   3.939u 3.940u 0.070s 0:04.01 100.0%	0+0k 0+0io 143pf+0w
+   3.829u 3.830u 0.050s 0:03.87 100.2%	0+0k 0+0io 73pf+0w
+   3.910u 3.920u 0.040s 0:04.09 96.8%	0+0k 0+0io 73pf+0w
diff: dir.asm_fast.gc/deriv2.time: No such file or directory
--- dir.asm_fast.gc/nrev.time	Tue May 23 12:57:38 2000
+++ dir.hlc.gc.sgt.gccO3/nrev.time	Tue May 23 15:01:57 2000
@@ -1,4 +1,4 @@
 20000	
-   2.879u 2.880u 0.060s 0:02.94 100.0%	0+0k 0+0io 70pf+0w
-   2.880u 2.900u 0.060s 0:02.98 99.3%	0+0k 0+0io 70pf+0w
-   2.889u 2.890u 0.050s 0:02.94 100.0%	0+0k 0+0io 70pf+0w
+   3.099u 3.100u 0.060s 0:03.16 100.0%	0+0k 0+0io 141pf+0w
+   3.319u 3.320u 0.080s 0:03.43 99.1%	0+0k 0+0io 69pf+0w
+   3.100u 3.130u 0.030s 0:03.16 100.0%	0+0k 0+0io 69pf+0w
--- dir.asm_fast.gc/poly.time	Tue May 23 12:58:49 2000
+++ dir.hlc.gc.sgt.gccO3/poly.time	Tue May 23 15:02:28 2000
@@ -1,4 +1,4 @@
 1200	
-   8.629u 8.630u 0.060s 0:08.70 99.8%	0+0k 0+0io 69pf+0w
-   8.559u 8.560u 0.040s 0:08.58 100.2%	0+0k 0+0io 69pf+0w
-   8.559u 8.560u 0.050s 0:08.60 100.1%	0+0k 0+0io 69pf+0w
+   8.829u 8.830u 0.080s 0:09.06 98.3%	0+0k 0+0io 144pf+0w
+   8.679u 8.680u 0.060s 0:08.74 100.0%	0+0k 0+0io 71pf+0w
+   8.679u 8.680u 0.060s 0:08.74 100.0%	0+0k 0+0io 71pf+0w
--- dir.asm_fast.gc/primes.time	Tue May 23 12:59:31 2000
+++ dir.hlc.gc.sgt.gccO3/primes.time	Tue May 23 15:02:54 2000
@@ -1,4 +1,4 @@
 30000	
-   6.119u 6.120u 0.050s 0:06.17 100.0%	0+0k 0+0io 71pf+0w
-   6.050u 6.060u 0.030s 0:06.09 100.0%	0+0k 0+0io 71pf+0w
-   6.039u 6.040u 0.060s 0:06.09 100.1%	0+0k 0+0io 71pf+0w
+   7.319u 7.320u 0.050s 0:07.52 98.0%	0+0k 0+0io 145pf+0w
+   7.180u 7.190u 0.050s 0:07.23 100.1%	0+0k 0+0io 72pf+0w
+   7.179u 7.180u 0.060s 0:07.24 100.0%	0+0k 0+0io 72pf+0w
--- dir.asm_fast.gc/qsort.time	Tue May 23 13:00:32 2000
+++ dir.hlc.gc.sgt.gccO3/qsort.time	Tue May 23 15:03:29 2000
@@ -1,4 +1,4 @@
 100000	
-  10.169u 10.170u 0.050s 0:10.23 99.9%	0+0k 0+0io 74pf+0w
-  10.079u 10.080u 0.070s 0:10.14 100.0%	0+0k 0+0io 73pf+0w
-  10.100u 10.120u 0.030s 0:10.14 100.0%	0+0k 0+0io 73pf+0w
+  10.349u 10.350u 0.050s 0:10.55 98.5%	0+0k 0+0io 143pf+0w
+  10.199u 10.200u 0.050s 0:10.25 100.0%	0+0k 0+0io 69pf+0w
+  10.209u 10.210u 0.040s 0:10.25 100.0%	0+0k 0+0io 69pf+0w
--- dir.asm_fast.gc/queens.time	Tue May 23 13:02:53 2000
+++ dir.hlc.gc.sgt.gccO3/queens.time	Tue May 23 15:03:51 2000
@@ -1,4 +1,4 @@
 500	
-   5.719u 5.720u 0.040s 0:05.76 100.0%	0+0k 0+0io 71pf+0w
-   5.759u 5.760u 0.090s 0:05.84 100.1%	0+0k 0+0io 71pf+0w
-   5.699u 5.700u 0.060s 0:05.76 100.0%	0+0k 0+0io 71pf+0w
+   5.870u 5.880u 0.050s 0:06.09 97.3%	0+0k 0+0io 146pf+0w
+   5.710u 5.720u 0.070s 0:05.78 100.1%	0+0k 0+0io 71pf+0w
+   5.759u 5.760u 0.030s 0:05.79 100.0%	0+0k 0+0io 71pf+0w
--- dir.asm_fast.gc/query.time	Tue May 23 13:03:16 2000
+++ dir.hlc.gc.sgt.gccO3/query.time	Tue May 23 15:06:06 2000
@@ -1,4 +1,4 @@
 600000	
-   7.649u 7.650u 0.030s 0:07.66 100.2%	0+0k 0+0io 73pf+0w
-   7.589u 7.590u 0.050s 0:07.64 100.0%	0+0k 0+0io 73pf+0w
-   7.559u 7.560u 0.090s 0:07.64 100.1%	0+0k 0+0io 73pf+0w
+  44.069u 44.070u 0.070s 0:44.25 99.7%	0+0k 0+0io 145pf+0w
+  43.859u 43.860u 0.050s 0:43.91 100.0%	0+0k 0+0io 70pf+0w
+  43.939u 43.940u 0.050s 0:43.98 100.0%	0+0k 0+0io 70pf+0w
--- dir.asm_fast.gc/tak.time	Tue May 23 13:02:15 2000
+++ dir.hlc.gc.sgt.gccO3/tak.time	Tue May 23 15:06:20 2000
@@ -1,4 +1,4 @@
 900	
-   2.400u 2.410u 0.020s 0:02.42 100.4%	0+0k 0+0io 83pf+0w
-   2.379u 2.380u 0.030s 0:02.41 100.0%	0+0k 0+0io 72pf+0w
-   2.470u 2.490u 0.010s 0:02.49 100.4%	0+0k 0+0io 72pf+0w
+   2.820u 2.830u 0.030s 0:02.86 100.0%	0+0k 0+0io 146pf+0w
+   2.799u 2.800u 0.040s 0:02.83 100.3%	0+0k 0+0io 72pf+0w
+   2.900u 2.910u 0.020s 0:03.09 94.8%	0+0k 0+0io 72pf+0w
-- 
Fergus Henderson <fjh at cs.mu.oz.au>  |  "I have always known that the pursuit
WWW: <http://www.cs.mu.oz.au/~fjh>  |  of excellence is a lethal habit"
PGP: finger fjh at 128.250.37.3        |     -- the last words of T. S. Garp.
--------------------------------------------------------------------------
mercury-developers mailing list
Post messages to:       mercury-developers at cs.mu.oz.au
Administrative Queries: owner-mercury-developers at cs.mu.oz.au
Subscriptions:          mercury-developers-request at cs.mu.oz.au
--------------------------------------------------------------------------



More information about the developers mailing list