[Fortran] Another array reference dependency improvement
Janne Blomqvist
jblomqvi@cc.hut.fi
Mon Mar 6 20:45:00 GMT 2006
On Sun, Mar 05, 2006 at 02:32:25PM +0100, Paul Thomas wrote:
> Roger,
>
> Following the submission of your two dependency checking patches, I have
> run the Polyhedron -2005 testsuite on an Athlon1700 running FC3.
I have done some testing as well, with an 1.8 GHz Athlon64 running
i686-pc-linux-gnu.
> The compilers and compiler options are:
> _______________________________________
>
> GNU Fortran 95 (GCC) 4.2.0 20060303 (experimental)
> gfc %n.f90 -O3 -ffast-math -malign-double -static -o %n
I did some tedious testing with the usual suspects and found out that
at least for me
-O3 -funroll-loops -ffast-math -march=k8
produces pretty good results. -mfpmath=sse is a wash.
> NB: gfc#1 is the pre-patch gfortran, gfc#2 has the first patch and gfc#3
> has both patches.
>
> ifort (IFORT) 9.0 20050430
> ifort %n.f90 -O3 -ipo -o %n
I used -O3 -ipo -xW
For gfortran 2006-03-02 I get
Benchmark Compile Executable Ave Run Number Estim
Name (secs) (bytes) (secs) Repeats Err %
--------- ------- ---------- ------- ------- ------
ac 3.42 36305 25.85 1100.0000
air 8.70 62528 22.40 1100.0000
aermod 164.79 1006059 86.08 1100.0000
doduc 14.77 143332 60.74 1100.0000
linpk 1.04 30248 30.17 1100.0000
mdbx 3.45 61092 39.09 1100.0000
tfft 0.88 25202 10.80 1100.0000
capacita 3.03 57427 112.09 1100.0000
channel 2.00 31273 16.91 1100.0000
fatigue 10.06 68419 20.16 1100.0000
gas_dyn 5.50 73609 35.89 1100.0000
induct 17.89 147913 61.47 1100.0000
nf 2.50 42823 56.72 1100.0000
protein 8.27 90042 83.81 1100.0000
rnflow 8.24 109888 62.48 1100.0000
test_fpu 5.69 88836 27.50 1100.0000
Geometric Mean Execution Time = 38.82 seconds
and for ifort
Benchmark Compile Executable Ave Run Number Estim
Name (secs) (bytes) (secs) Repeats Err %
--------- ------- ---------- ------- ------- ------
ac 1.42 398632 21.32 1100.0000
air 7.72 482090 19.62 1100.0000
aermod 68.02 2003492 73.70 1100.0000
doduc 3.63 570884 63.78 1100.0000
linpk 0.29 400948 30.17 1100.0000
mdbx 1.23 453463 28.33 1100.0000
tfft 0.37 409087 11.15 1100.0000
capacita 1.30 434881 127.19 1100.0000
channel 1.14 424275 15.50 1100.0000
fatigue 9.73 552131 21.76 1100.0000
gas_dyn 3.31 492046 16.25 1100.0000
induct 12.69 658897 108.73 1100.0000
nf 1.21 439442 34.38 1100.0000
protein 7.21 522280 80.51 1100.0000
rnflow 5.37 526581 54.26 1100.0000
test_fpu 2.07 474537 22.82 1100.0000
Geometric Mean Execution Time = 34.91 seconds
> It can be seen that gfortran is doing quite well;
Yes, I agree.
> ac, fatigue and nf all
> warrant looking at.
From my results above, it seems that gas_dyn is the biggest issue. nf
is not doing that well either. Funny how different the conclusions are
with slighly different options and cpu:s.
> Disappointingly, it seems that none of the codes in the suite can take
> advantage of the first patches. I have no idea what happened with
> channel in gfc#2 - I suspect that a rerun would show the same result as
> gfc#1 and gfc#3.
No, it seems to be a real regression, I'm seeing it on trunk too, now
that Roger backed out the second patch. My time for channel went up
from 16.91 to 24.86.
--
Janne Blomqvist
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 185 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/fortran/attachments/20060306/d9f83d03/attachment.sig>
More information about the Fortran
mailing list