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

Reply via email to