November 09, 2004
Here the results of the Ackermann benchmark. It is a synthetic benchmark used to evaluate recursion optimization.

gdc-0.8 -O2 -frename-registers -fomit-frame-pointer -fweb -frelease
-finline-functions3: [dmd -O -release -inline]
        ack(3,11): 16381 (8.640000e+00 seconds)

icc-8.0 -O3:
        ack(3,11): 16381 (8.980000e+00 seconds)

gcc-3.4.2 -O3:
        ack(3,11): 16381 (1.141000e+01 seconds)

gdc-0.8 -O3 -frelease:
        ack(3,11): 16381 (1.468000e+01 seconds)

dmd-0.106 -O -release -inline:
        ack(3,11): 16381 (2.406000e+01 seconds)

Now this is something. GDC - arguably with lots of flags - beats ICC!

What are the best flags to speed up ICC's results?

http://svn.kuehne.cn/dstress/benchmark/ackermann

Thomas
November 09, 2004
In article <cmql9e$sqe$1@digitaldaemon.com>, Thomas =?UTF-8?B?S8O8aG5l?= says...
>
>Here the results of the Ackermann benchmark. It is a synthetic benchmark used to evaluate recursion optimization.
>
>gdc-0.8 -O2 -frename-registers -fomit-frame-pointer -fweb -frelease -finline-functions3: [dmd -O -release -inline]
>        ack(3,11): 16381 (8.640000e+00 seconds)
>
>icc-8.0 -O3:
>        ack(3,11): 16381 (8.980000e+00 seconds)
>
>gcc-3.4.2 -O3:
>        ack(3,11): 16381 (1.141000e+01 seconds)
>
>gdc-0.8 -O3 -frelease:
>        ack(3,11): 16381 (1.468000e+01 seconds)
>
>dmd-0.106 -O -release -inline:
>        ack(3,11): 16381 (2.406000e+01 seconds)
>
>Now this is something. GDC - arguably with lots of flags - beats ICC!
>
>What are the best flags to speed up ICC's results?
>
>http://svn.kuehne.cn/dstress/benchmark/ackermann
>
>Thomas

For ICC on a P4 machine, the '-fast' switch (alone) seems to hit most/all of the 'best' optimizations.

(For those not aware of this, [configure --prefix]/bin/dmd is a perl script that adds the 'best' GCC optimization switches to the gdc command-line with the standard DMD '-O -inline -release' switches, and is installed by default by GDC v0.8. So that is kind-of equivalent to 'fast' for ICC.)

- Dave