Q1. Will ARM support be included in future releases of FFTW from MIT?
A1. Perhaps. The developers of FFTW are evaluating whether to include ARM support; because MIT distributes FFTW under a commercial license as well as the GPL, it would be less complicated for them to write their own support for NEON than to take our patches. You can encourage them to support ARM by letting them know that you need it; they have told us that they've seen almost no demand to date.
Q2. What if I have a Cortex A9 processor without NEON, like the Tegra 2?
A2. You won't see any benefit from NEON, which is the only difference between FFTW-ARM and the standard FFTW 3.2.2. You can still use FFTW-ARM, of course, since it should do exactly what FFTW 3.2.2 does on any platform that doesn't have NEON. The performance you'll see on an A9 without NEON is shown by the "scalar" lines on the A9 benchmark page.
Q3. My build failed. What should I check first?
A3. Rerun configure and look at the output, particularly the sections dealing with arm_neon.h. If configure says "checking for arm_neon.h... no", the most common cause is that some builds of gcc refuse to compile the NEON intrinsics unless the floating point ABI is explicitly specified. You can do this by adding "ARM_FLOAT_ABI=softfp" to the arguments you pass to configure. You may also see warning that says arm_neon.h was rejected by the preprocessor, but accepted by the compiler; this is not a problem as long as configure then says proceeding with compiler's result and "checking arm_neon.h usability... yes" also appears.
Q4. How do I build a shared library?
A4. FFTW's configure system doesn't handle this as easily as it should, but you can do it by manually specifying all the needed
compiler options in CFLAGS. For example:
./configure --enable-single --enable-neon --enable-shared CFLAGS='-fPIC -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp -O2'
Copyright © 2011 Vesperix Corporation