www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Benchmark: SciMark2

reply Thomas Kuehne <thomas-dloop kuehne.cn> writes:
Hi everybody,

I'm currently adding various benchmarks to DStress.
SciMark2 has some interesting results:

(best of 10, Mflops)

= = = dmd 0.105 (D) = = =
Composite:      100.07
FFT:            39.50
SOR:            223.03
M.Carlo:        30.37
matmult:        85.56 
LU:             121.90

= = = gdc 0.8 (D) = = =
Composite:      132.54
FFT:            138.87
SOR:            225.11
M.Carlo:        31.66
matmult:        131.07
LU:             135.99

= = = gcc 3.4.2 (C) = = =
Composite:      134.63
FFT:            144.39 
SOR:            227.24
M.Carlo:        39.48
matmult:        133.75
LU:             128.32

dmd's FFT results are constantly that slow. I haven't investigated if
gdc/gcc does some hyper optimization, uses a lower number of significant
bits or if the D-port is botched.

SciMark2 (C & Java)
http://math.nist.gov/scimark

SciMark2 (dirty D port)
svn://svn.kuehne.cn/dstress/benchmark/scimark/

Thomas
Nov 03 2004
next sibling parent reply Dave <Dave_member pathlink.com> writes:
What were the build flags for each?

Thanks,
- Dave

In article <cmbbtt$7t8$1 digitaldaemon.com>, Thomas Kuehne says...
Hi everybody,

I'm currently adding various benchmarks to DStress.
SciMark2 has some interesting results:

(best of 10, Mflops)

= = = dmd 0.105 (D) = = =
Composite:      100.07
FFT:            39.50
SOR:            223.03
M.Carlo:        30.37
matmult:        85.56 
LU:             121.90

= = = gdc 0.8 (D) = = =
Composite:      132.54
FFT:            138.87
SOR:            225.11
M.Carlo:        31.66
matmult:        131.07
LU:             135.99

= = = gcc 3.4.2 (C) = = =
Composite:      134.63
FFT:            144.39 
SOR:            227.24
M.Carlo:        39.48
matmult:        133.75
LU:             128.32

dmd's FFT results are constantly that slow. I haven't investigated if
gdc/gcc does some hyper optimization, uses a lower number of significant
bits or if the D-port is botched.

SciMark2 (C & Java)
http://math.nist.gov/scimark

SciMark2 (dirty D port)
svn://svn.kuehne.cn/dstress/benchmark/scimark/

Thomas

Nov 03 2004
parent reply Thomas Kuehne <thomas-dloop kuehne.cn> writes:
Dave schrieb am Mittwoch, 3. November 2004 21:38:
 
 What were the build flags for each?
 

dmd: -O gdc: -O2 -frename-registers -fomit-frame-pointer -fweb gcc: -O3
I'm currently adding various benchmarks to DStress.
SciMark2 has some interesting results:

(best of 10, Mflops)

= = = dmd 0.105 (D) = = =
Composite:      100.07
FFT:            39.50
SOR:            223.03
M.Carlo:        30.37
matmult:        85.56
LU:             121.90

= = = gdc 0.8 (D) = = =
Composite:      132.54
FFT:            138.87
SOR:            225.11
M.Carlo:        31.66
matmult:        131.07
LU:             135.99

= = = gcc 3.4.2 (C) = = =
Composite:      134.63
FFT:            144.39
SOR:            227.24
M.Carlo:        39.48
matmult:        133.75
LU:             128.32

dmd's FFT results are constantly that slow. I haven't investigated if
gdc/gcc does some hyper optimization, uses a lower number of significant
bits or if the D-port is botched.

SciMark2 (C & Java)
http://math.nist.gov/scimark

SciMark2 (dirty D port)
svn://svn.kuehne.cn/dstress/benchmark/scimark/

Thomas


Nov 03 2004
parent Dave <Dave_member pathlink.com> writes:
In article <cmbgq5$ka5$1 digitaldaemon.com>, Thomas Kuehne says...
Dave schrieb am Mittwoch, 3. November 2004 21:38:
 
 What were the build flags for each?
 

dmd: -O gdc: -O2 -frename-registers -fomit-frame-pointer -fweb gcc: -O3

Thanks - and below is what I got. --- DMD v0.105 --- # dmd -O -inline -release -ofscimark2_dmd *.d # scimark2_dmd Composite Score: 234.70 FFT Mflops: 61.59 (N=1024) SOR Mflops: 316.93 (100 x 100) MonteCarlo: Mflops: 51.03 Sparse matmult Mflops: 111.84 (N=1000, nz=5000) LU Mflops: 632.10 (M=100, N=100) --- GDC 1g (dmd 0.102 / GCC v3.4.1) --- # dmd -O -inline -release *.d -ofscimark2_gdc # scimark2_gdc Composite Score: 409.91 FFT Mflops: 231.33 (N=1024) SOR Mflops: 315.89 (100 x 100) MonteCarlo: Mflops: 57.60 Sparse matmult Mflops: 627.14 (N=1000, nz=5000) LU Mflops: 817.56 (M=100, N=100) --- GCC v3.4.1 --- # gcc -O3 -lm *.c -o scimark2 # scimark2 Composite Score: 394.51 FFT Mflops: 222.48 (N=1024) SOR Mflops: 316.93 (100 x 100) MonteCarlo: Mflops: 57.85 Sparse matmult Mflops: 567.41 (N=1000, nz=5000) LU Mflops: 807.89 (M=100, N=100) --- Intel C/C++ v8.0 --- # /opt/intel_cc_80/bin/icc -O3 -static *.c -o scimark2 # scimark2 Composite Score: 442.65 FFT Mflops: 231.33 (N=1024) SOR Mflops: 456.62 (100 x 100) MonteCarlo: Mflops: 58.36 Sparse matmult Mflops: 534.99 (N=1000, nz=5000) LU Mflops: 931.97 (M=100, N=100) GDC 1g does better than GCC with the same 'backend' and runtime and also quite well compared to Intel. Way to go Walter and David Friedman!! To balance things out a little, I've seen DMD do very well with other benchmarks using character and integral primatives (rather than floating point) but it appears maybe it could use some fp tuning. - Dave
Nov 03 2004
prev sibling parent reply =?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= <afb algonet.se> writes:
Thomas Kuehne wrote:

 I'm currently adding various benchmarks to DStress.
 SciMark2 has some interesting results:

Here are the results from the SciMark2, on Mac OS X 10.3: gcc (3.4.2): CFLAGS=-O3
 Composite Score:          124.06
 FFT             Mflops:   119.14    (N=1024)
 SOR             Mflops:   177.11    (100 x 100)
 MonteCarlo:     Mflops:    16.21
 Sparse matmult  Mflops:   147.60    (N=1000, nz=5000)
 LU              Mflops:   160.25    (M=100, N=100)

 ./scimark2  25.29s user 0.27s system 87% cpu 29.277 total

gdc (0.8): DFLAGS=-O2 -frename-registers -fomit-frame-pointer -fweb
 Composite Score:          121.13
 FFT             Mflops:   119.80    (N=1024)
 SOR             Mflops:   172.67    (100 x 100)
 MonteCarlo:     Mflops:    15.39
 Sparse matmult  Mflops:   128.00    (N=1000, nz=5000)
 LU              Mflops:   169.82    (M=100, N=100)

 ./scimark2  26.05s user 0.30s system 83% cpu 31.552 total

The flags used seemed a little unequal, but I used the same. --anders PS. It had a bug in CLOCKS_PER_SEC_, similar to the other one. For the record: "not Windows" is not the same as "linux"! :)
Nov 05 2004
parent "Thomas Kuehne" <thomas-dloop kuehne.cn> writes:
Anders F Bjrklund schrieb:
 PS. It had a bug in CLOCKS_PER_SEC_, similar to the other one.
      For the record: "not Windows" is not the same as "linux"! :)

Thanks, fixed. Thomas
Nov 05 2004