Include single precision libfftw3f for next FFTW3 UPS product build
The default build of FFTW3 does not include libfftw3f which provides single-precision floating point FFT functions. By default only the double-precision libfftw3 is built.
The x2 inflation of holding full LArTPC plane or APA readouts in memory as doubles substantially increases the RAM footprint and brings no benefit.
Holding readouts as float and then upcasting to double for the FFT adds a 15% CPU overhead.
So, I request that libfftw3f be built next time FFTW3 and the things it depends on can be rebuilt.
For now this is blocking the "wirecell" v0_5_0 UPS product build. This release brings speed increases (directly due to using FFTW), better signal protection during coherent noise subtraction, and configurable knobs for some of the algorithms.
#1 Updated by Lynn Garren almost 3 years ago
- Status changed from New to Assigned
- % Done changed from 0 to 10
- Estimated time set to 10.00 h
fftw v3_3_6_pl1a has been tagged and is ready for inclusion in a product stack. Both the regular (double precision) and single precision libaries are included. Note that this is only a small part of the work required.
#5 Updated by Brett Viren almost 3 years ago
I made a release with the GCC 6.3 patch from Lynn and an option to use double-precision FFTW.
This ticket is related to