Red Hat Bugzilla – Full Text Bug Listing
|Summary:||Incorrect build flags on ARM|
|Product:||[Fedora] Fedora||Reporter:||Peter Robinson <pbrobinson>|
|Component:||fftw||Assignee:||Conrad Meyer <konrad>|
|Status:||CLOSED NOTABUG||QA Contact:||Fedora Extras Quality Assurance <extras-qa>|
|Version:||rawhide||CC:||dan, konrad, susi.lehtola|
|Fixed In Version:||Doc Type:||Bug Fix|
|Doc Text:||Story Points:||---|
|Last Closed:||2013-01-10 06:47:08 EST||Type:||Bug|
|oVirt Team:||---||RHEL 7.3 requirements from Atomic Host:|
|Bug Depends On:|
Description Peter Robinson 2013-01-10 05:39:19 EST
The changelog for 3.3.3-3 has the following: * Tue Dec 18 2012 Susi Lehtola <email@example.com> - 3.3.3-3 - After consultation with upstream, enable SSE2 also on x86, altivec on ppc and ppc64 and NEON on arm. Fedora ARM doesn't compile with NEON because there are platforms where NEON isn't supported. I'm not aware of any consultation with the Fedora ARM team on what would be best here. Also I'm fairly certain that for x86 there are platforms for which SSE2 isn't supported either so it should use the rpm default to ensure it runs on all intended platforms. Please resolve the ARM issue and check to ensure what the right setting for x86 is.
Comment 1 Susi Lehtola 2013-01-10 06:47:08 EST
fftw has dynamic CPU detection. Closing as NOTABUG.
Comment 2 Peter Robinson 2013-01-10 06:48:30 EST
Please provide a link to the details.
Comment 3 Dan Horák 2013-01-10 07:10:59 EST
After looking into the sources I think Susi is right. simd-support subdir contains the detection (via executing SIMD instruction and SIGILL handler) and SIMD compiler flags are passed to CC only in selected subdirs.
Comment 4 Susi Lehtola 2013-01-10 09:31:40 EST
Date: Tue, 18 Dec 2012 14:10:39 +0100 From: Matteo Frigo <firstname.lastname@example.org> To: Jussi Lehtola <email@example.com> Subject: Re: Recommended compilation flags for distributions FFTW does have runtime CPU detection, so it is safe to enable all features that your compiler supports. Not too long ago a fully-configured FFTW was running fine on an 80386 as well as a modern CPU, and I expect this to be true today as well. The reason why sse/avx are not enabled by default is that the core of FFTW is written in C89 and we want to keep it like that. Things like SSE are not supported, e.g., by the plan 9 compiler. OpenBSD still uses gcc-2.95. AVX was not supported by most compilers until last year, and avx support in gcc-4.6 was quite buggy. The IBM compiler did not quite work for altivec for a long time. NEON support in llvm is still quite experimental. So we don't feel comfortable enabling these extensions by default. The other consideration is the size of the binary. A full SSE/AVX binary is maybe 3x the size of the scalar FPU binary. I assume this does not matter much for Fedora. In summary, you can safely enable all the SIMD extensions.
Comment 5 Susi Lehtola 2013-01-10 09:32:24 EST
For the reference, I have not enabled AVX support on x86/x86_64 because at least Gromacs runs faster with plain SSE2.