[Fwd: Re: Off topic - G5 question]
Toon Moene
toon at moene.indiv.nluug.nl
Sat Jun 28 06:13:03 EDT 2003
I wrote:
> Well, I could make -O2 -ffast-math -funroll-loops the default (but then,
> I don't think I'll get this past the IEEE754 police @ gcc.gnu.org :-)
and Mark Hahn asked me (offline) whether -ffast-math is important.
Well, as always: it depends. However, without -ffast-math, gcc and g77
zealously will follow IEEE 754 restrictions on floating point operations.
Perhaps it's illustrative to see what that means by giving an example
(culled from a bug report by one of Apple's compiler engineers).
Consider this loop:
DO IZ = 1, NZ
DO IY = 1, NY
DO IX = 1, NX
CMAP(IX,IY,IZ) = DCONJG(CMAP(IX,IY,IZ)) / DFLOAT(NX*NY*NZ)
END DO
END DO
END DO
with I[XYZ], N[XYZ] integers and CMAP a double precision complex rank-3
array.
DCONJG is expanded inline no matter what, so that's a rather basic
operation. However, without -ffast-math, g77 is required to convert the
double precision real DFLOAT(NX*NY*NZ) - a loop invariant - to double
complex and than _perform a double complex division_ inside the loop.
With -ffast-math, all that remains is two multiplications with the
inverse of DFLOAT(NX*NY*NZ) for the real and imaginary parts of
CMAP(IX,IY,IZ).
--
Toon Moene - mailto:toon at moene.indiv.nluug.nl - phoneto: +31 346 214290
Saturnushof 14, 3738 XG Maartensdijk, The Netherlands
Maintainer, GNU Fortran 77: http://gcc.gnu.org/onlinedocs/g77_news.html
GNU Fortran 95: http://gcc-g95.sourceforge.net/ (under construction)
_______________________________________________
Beowulf mailing list, Beowulf at beowulf.org
To change your subscription (digest mode or unsubscribe) visit http://www.beowulf.org/mailman/listinfo/beowulf
More information about the Beowulf
mailing list