I work on a Cray HPC. The login nodes are Intel Sandybridge and the compute nodes are Intel Haswell. We need our software system to be optimized for both Intel architectures. I am compiling our libraries and executables with -axCORE-AVX2,AVX as instructed here:
However, when I run an executable on the login node (i.e. Sandybridge), I get the following runtime error:
Please verify that both the operating system and the processor support Intel(R) MOVBE, FMA, BMI, LZCNT and AVX2 instructions.
Any help is greatly appreciated.
I think that if you want AVX2 optimization with fall-back to AVX on the Sandy Bridge, the architecture option would be -axCORE-AVX2 -mavx. I agree that it's not clear in the page you referred to, nor is it clear why the option you chose would require AVX2 (it might also generate SSE2 code support).
As to whether supporting both AVX2 and AVX is worth while, it would depend on the application. I never saw more than 4% gain over AVX, and the multiple path build may be slower on the Sandy Bridge, as well as potentially producing slight differences in results.