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

Reply via email to