I did some more investigating on this and found a very useful intel document: https://secure-software.intel.com/sites/default/files/article/326703/fp-control-2012-08.pdf

Basically, intel turns on several unsafe floating point optimizations by default with -O2, where gcc does not. In gcc you must specify -ffast-math to get the same optimizations that are the default with icc.

Compiling GSL with gcc -O2 -ffast-math produces many of the same errors we are seeing with the default icc behavior.

To turn off the unsafe intel optimizations, use:

make CFLAGS="-fp-model precise -g -O2"

These flags pass all tests for me with icc 13.0.1. Could you check this with your 12.1 and 13.1? If it works I think we can close this bug. I suppose its another (rather complicated) question whether we want to get GSL to pass all the tests with gcc -ffast-math.

Patrick

On 06/03/2013 06:02 AM, Rhys Ulerich wrote:
I have uploaded a test release for gsl 1.16 here:

http://alpha.gnu.org/gnu/gsl/gsl-1.15.90.tar.gz

All reports are welcome
An an x86-64 Ubuntu box I see a good 'make check' for GCC 4.4, 4.6,
4.7, and 4.8.

On the same system, Intel 12.1 and 13.1 have multiple tolerance and
convergence issues within linalg/ on the default -O2 optimization.
Backing off using CFLAGS="-g -O1" still does not pass.  Using
CFLAGS="-g -O0" succeeds in getting a clean 'make check'.

Want me to file a ticket on these post-release?  It would be nice to
have sorted out for 1.16, but I doubt that I can investigate and
resolve within the next two weeks.

- Rhys



Reply via email to