[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