[MLton-devel] nucleic benchmark times

Matthew Fluet fluet@CS.Cornell.EDU
Thu, 14 Nov 2002 17:43:56 -0500 (EST)


> > One thing to be cautious about in Matthew's numbers (which are great) is which
> > version of gcc was used.  We should to the run with at least gcc 3.2, and
> > possibly with gcc 3.3 just to make sure that things haven't changed there.
>
> Matthew, can you rerun MLton{4,5,6} with gcc 2.96 vs gcc 3.2
> -mcpu=i686 (and 3.3 if you really want)?

Here's some, but not all the results.  The last set should finish sometime
overnight.  I've cut all the standard -ccopt's from the name lines.

MLton0 -- mlton.cvs.HEAD -native true
MLton1 -- mlton.cvs.HEAD -native false -cc /home/fluet/gcc/install/bin/gcc
-ccopt -mcpu=i686 -detect-overflow true
MLton2 -- mlton.cvs.HEAD -native false -cc /home/fluet/gcc/install/bin/gcc
-ccopt -mcpu=i686 -detect-overflow true -DFAST_INT
MLton3 -- mlton.cvs.HEAD -native false -cc /home/fluet/gcc/install/bin/gcc
-ccopt -mcpu=i686 -detect-overflow false

run time ratio
benchmark         MLton1 MLton2 MLton3
barnes-hut          1.35   1.18   0.81
boyer               1.09   1.09   1.19
checksum            8.44   0.86   0.62
count-graphs        1.85   1.46   1.42
DLXSimulator        1.09   1.08   1.03
fft                 1.22   1.03   1.04
fib                 3.58   1.47   1.39
hamlet              1.73   1.50   1.49
imp-for            12.55   1.19   0.86
knuth-bendix        1.33   1.28   1.35
lexgen              1.91   1.32   1.28
life                1.31   1.27   1.27
logic               1.28   1.15   1.15
mandelbrot          3.75   1.16   1.08
matrix-multiply     2.20   0.99   0.88
md5                 3.90   2.04   1.95
merge               1.07   1.07   1.07
mlyacc              1.56   1.23   1.19
model-elimination   1.47   1.27   1.19
mpuz                4.61   1.26   1.19
nucleic             1.09   1.09   1.05
peek               19.00   1.25   1.00
psdes-random        3.10   1.00   1.03
ratio-regions       2.08   1.05   1.11
ray                 1.53   1.31   1.24
raytrace            1.31   1.29   1.28
simple              2.49   1.56   1.52
smith-normal-form   0.99   0.99   0.99
tailfib            15.31   1.36   0.98
tak                 2.27   1.23   1.23
tensor             24.36   1.40   0.85
tsp                 1.07   1.05   1.05
tyan                1.25   1.14   1.15
vector-concat       6.60   1.05   0.93
vector-rev          3.61   1.03   0.94
vliw                1.82   1.26   1.35
wc-input1           5.90   1.88   1.63
wc-scanStream       3.71   1.54   1.33
zebra               1.37   1.21   1.19
zern                3.54   1.13   1.20

So, gcc-3.2 in general still doesn't beat the native codegen.  With
-DFAST_INT, then checksum is more than noise faster.  It's not obvious
from the numbers above, but if you compare them to the numbers I sent out
earlier, then you'll see that gcc is closing the gap.

Here's gcc-2.96 vs gcc-3.2 on -detect-overflow true -DFAST_INT and
-detect-overflow false.  Fairly impressive speedups, over 2X in a few
cases.  Only two violations where gcc-2.96 is faster than gcc-3.2.  If gcc
keeps up that kind of improvement, it would quite quickly overtake the
native backend.  And we still haven't looked at -O2.  (I can queue those
up to run overnight.)

MLton0 -- mlton.cvs.HEAD -native false -cc /usr/bin/gcc -ccopt
-mcpu=pentiumpro -detect-overflow true -DFAST_INT
MLton1 -- mlton.cvs.HEAD -native false -cc /home/fluet/gcc/install/bin/gcc
-ccopt -mcpu=i686 -detect-overflow true -DFAST_INT
run time ratio
benchmark         MLton1
barnes-hut          0.93
boyer               0.89
checksum            0.52
count-graphs        0.60
DLXSimulator        1.00
fft                 0.98
fib                 0.91
hamlet              0.81
imp-for             1.03
knuth-bendix        0.79
lexgen              0.54
life                0.46
logic               0.94
mandelbrot          0.54
matrix-multiply     0.42
md5                 1.12
merge               0.78
mlyacc              0.81
model-elimination   0.79
mpuz                0.55
nucleic             0.89
peek                0.33
psdes-random        0.53
ratio-regions       0.52
ray                 0.82
raytrace            0.75
simple              0.85
smith-normal-form   1.00
tailfib             0.98
tak                 0.65
tensor              0.81
tsp                 0.93
tyan                0.84
vector-concat       0.50
vector-rev          0.67
vliw                0.87
wc-input1           0.41
wc-scanStream       0.49
zebra               0.56
zern                0.54

MLton0 -- mlton.cvs.HEAD -native false -cc /usr/bin/gcc -ccopt
-mcpu=pentiumpro -detect-overflow false
MLton1 -- mlton.cvs.HEAD -native false -cc /home/fluet/gcc/install/bin/gcc
-ccopt -mcpu=i686 -detect-overflow false

run time ratio
benchmark         MLton1
barnes-hut          0.87
boyer               0.87
checksum            0.44
count-graphs        0.61
DLXSimulator        0.96
fft                 1.00
fib                 0.88
hamlet              0.78
imp-for             0.41
knuth-bendix        0.80
lexgen              0.48
life                0.47
logic               0.94
mandelbrot          0.51
matrix-multiply     0.29
md5                 1.08
merge               0.77
mlyacc              0.79
model-elimination   0.71
mpuz                0.57
nucleic             0.91
peek                0.22
psdes-random        0.53
ratio-regions       0.55
ray                 0.84
raytrace            0.81
simple              0.81
smith-normal-form   1.00
tailfib             1.17
tak                 0.65
tensor              0.95
tsp                 0.93
tyan                0.88
vector-concat       0.44
vector-rev          0.61
vliw                0.87
wc-input1           0.37
wc-scanStream       0.47
zebra               0.56
zern                0.61



-------------------------------------------------------
This sf.net email is sponsored by: To learn the basics of securing 
your web site with SSL, click here to get a FREE TRIAL of a Thawte 
Server Certificate: http://www.gothawte.com/rd524.html
_______________________________________________
MLton-devel mailing list
MLton-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mlton-devel