[MLton-devel] benchmarks -align {4,8}

Stephen Weeks MLton@mlton.org
Fri, 25 Apr 2003 11:35:36 -0700


I ran all the benchmarks -align {4,8} on an x86 and SPARC machine.
Below are the runtime ratios.  

On x86, there is only a noticeable improvement on matrix-multiply,
nucleic, peek, and raytrace, with the best ratio being 0.93.  Peek is
probably an anomaly, and the other three are floating point, so that
makes some sense.  Unfortunately, the improvement on nucleic comes
nowhere close to making up the difference between MLton and SML/NJ, so
we can rule out double alignment as the problem there.  On the
slowdown side, quite a few of the benchmarks take a 10-25% hit.
 
On SPARC, there are very significant improvments on lots of the FP
benchmarks: barnes-hut, fft, matrix-multiply, nucleic, ray, raytrace,
simple, tsp, zern.  This makes sense, since with -align 4 MLton is
forced to use very slow multiple-instruction sequences to load/store
possibly mis-aligned doubles.  There is a hit on some benchmarks, but
it's not as bad as on x86.  There's still the bug with -align 4 and
vliw.  I've also included the SML/NJ to MLton SPARC ratios from a
previous email I sent.  These numbers show that the -align 8 pretty
much fixes the double benchmarks MLton was slower (barnes-hut, fft,
ray, raytrace, zern), leaving only a couple of remaining problems
(life, tailfib).

I'm inclined to make -align 4 the default on x86 and -align 8 the
default on SPARC.  The only thing I'm wavering on is whether to make
-align a normal or expert option.  I guess it makes sense to make it a
normal option, since it can have so much impact on performance.

MLton0 -- /usr/local/bin/mlton -align 4
MLton1 -- /usr/local/bin/mlton -align 8

run time ratio
		    x86	       SPARC
benchmark         MLton1      MLton1  SML/NJ
barnes-hut          1.06	0.71	0.71
boyer               1.27	1.08	2.93
checksum            0.99	1.00	3.60
count-graphs        1.03	1.08	2.46
DLXSimulator        1.32	1.25
fft                 0.96	0.85	0.94
fib                 0.99	0.99	0.80
hamlet              1.10	1.16	2.25
imp-for             1.00	1.00   13.11
knuth-bendix        1.12	1.11	4.05
lexgen              1.11	1.08	1.80
life                1.10	1.09	0.76
logic               1.09	1.06	1.38
mandelbrot          1.00	1.00	1.16
matrix-multiply     0.93	0.72	5.03
md5                 1.00	0.99	8.65
merge               1.00	1.00	3.09
mlyacc              1.23	1.16	1.69
model-elimination   1.11	1.06	2.21
mpuz                1.00	0.99	3.18
nucleic             0.94	0.63
peek                0.95	1.00   11.01
psdes-random        1.00	1.00	5.32
ratio-regions       1.03	1.02	7.66
ray                 1.00	0.77	0.71
raytrace            0.94	0.62	1.64
simple              1.02	0.85	1.19
smith-normal-form   0.99	1.00
tailfib             1.00	1.00	0.80
tak                 1.00	1.00	2.04
tensor              1.02	1.00
tsp                 1.00	0.79	2.39
tyan                1.21	1.11	1.01
vector-concat       1.01	0.99   13.47
vector-rev          0.98	0.96   51.29
vliw                1.17
wc-input1           1.01	1.00   25.75
wc-scanStream       1.00	0.96   10.52
zebra               0.98	1.01	9.43
zern                0.98	0.76	0.64


-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
MLton-devel mailing list
MLton-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mlton-devel