Project

General

Profile

Bug #1809

Updated by Szilárd Páll over 4 years ago

When the FFTW detection was changed to suggest the use of SSE2+AVX (commit:d33720e6), the SIMD AVX feature check was changed to @*_have_simd_avx_128@ from @*_have_simd_avx@ which is incorrect.

<pre>
$ nm /opt/tcbsys/fftw/3.3.4-sse2-avx
/lib/libfftw3f.so | grep _have_simd00000000000f8a90 T fftwf_have_simd_avx
00000000000f8a80 T fftwf_have_simd_sse2

$ cmake
[...]
-- Looking for fftwf_plan_r2r_1d in /opt/tcbsys/fftw/3.3.4-sse2-avx/lib/libfftw3f.so
-- Looking for fftwf_plan_r2r_1d in /opt/tcbsys/fftw/3.3.4-sse2-avx/lib/libfftw3f.so - found
-- Looking for fftwf_have_simd_sse in /opt/tcbsys/fftw/3.3.4-sse2-avx/lib/libfftw3f.so
-- Looking for fftwf_have_simd_sse in /opt/tcbsys/fftw/3.3.4-sse2-avx/lib/libfftw3f.so - not found
-- Looking for fftwf_have_simd_sse2 in /opt/tcbsys/fftw/3.3.4-sse2-avx/lib/libfftw3f.so
-- Looking for fftwf_have_simd_sse2 in /opt/tcbsys/fftw/3.3.4-sse2-avx/lib/libfftw3f.so - found
-- Looking for fftwf_have_simd_avx_128 in /opt/tcbsys/fftw/3.3.4-sse2-avx/lib/libfftw3f.so
-- Looking for fftwf_have_simd_avx_128 in /opt/tcbsys/fftw/3.3.4-sse2-avx/lib/libfftw3f.so - not found
-- Looking for fftwf_have_simd_avx2_128 in /opt/tcbsys/fftw/3.3.4-sse2-avx/lib/libfftw3f.so
-- Looking for fftwf_have_simd_avx2_128 in /opt/tcbsys/fftw/3.3.4-sse2-avx/lib/libfftw3f.so - not found
-- Looking for fftwf_have_simd_sse2 in /opt/tcbsys/fftw/3.3.4-sse2-avx/lib/libfftw3f.so
-- Looking for fftwf_have_simd_sse2 in /opt/tcbsys/fftw/3.3.4-sse2-avx/lib/libfftw3f.so - found
-- Using external FFT library - FFTW3
</pre>

The detection is looking for @fftwf_have_simd_avx_128@ which is not present i nFFTW 3.3.4 nor in the current git which will be FFTW 3.3.5, see below.

I assume that we should be looking for @fftwf_have_simd_avx@ and using whatever AVX support there is in all 3.3.x, regardless of whether that's 128-bit or 256-bit (and AFAIK 128-bit has never existed and will not be added to future releases either). Hence, we should not be warning the user about an nonexistent feature.

Back