The simplest way is probably to create a FFTW module with explicit avx2, i.e., fftw-3.3.5-avx2 or similar.
On 10/03/2016 12:01 PM, Joachim Hein wrote: > Hi, > > I am trying to a version push on a package that needs FFTW. I noticed that > FFTW 3.3.5 is out now and there are FFTW 3.3.5 packages in EB 2.9.0 (for e.g > foss/2016.09). > > Looking into the release node for FFTW 3.3.5, avx2 seems a big addition. > Looking into the EB 2.9.0 configurations, it seems sse2 is hard coded. To my > understanding that is a factor of 4 in theoretical performance (2x for > register length and 2x for FMA). The current SSE2 should be a lowest common > denominator for current hardware. I am pretty sure an AVX2 version will do a > nice illegal instruction error on oldish hardware (e.g. Interlagos). > > We now have a bit of a can of worms. I am not supporting any pre avx2 > hardware any longer, but I am sure some people here do. > > For FFTW we could make that explicit, e.g. adding an avx2 to the name of the > FFTW. But then I am not building FFTW for the sake of building FFTW, I want > to build NAMD with it. If I now supply a NAMD using the avx2 FFTW into the > git repository, it will fail on any system deploying pre-avx2 hardware. For > the compiler we are dealing with these kind of things via -xHost and > -march=native options. Is there an EB mechanism to deal with this kind of > thing? > > Best wishes > Joachim > -- Ake Sandgren, HPC2N, Umea University, S-90187 Umea, Sweden Internet: [email protected] Phone: +46 90 7866134 Fax: +46 90-580 14 Mobile: +46 70 7716134 WWW: http://www.hpc2n.umu.se

