Bug 893946

Summary: Incorrect build flags on ARM
Product: [Fedora] Fedora Reporter: Peter Robinson <pbrobinson>
Component: fftwAssignee: Conrad Meyer <konrad>
Status: CLOSED NOTABUG QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: dan, konrad, susi.lehtola
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-01-10 06:47:08 EST Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
Bug Depends On:    
Bug Blocks: 245418    

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 <jussilehtola@fedoraproject.org> - 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 <athena@fftw.org>
To: Jussi Lehtola <jussi.lehtola@helsinki.fi>
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.