HINT: Compiler target flags insufficiently exploiting the extensions of this CPU model.
When running CP2K you may get the following
HINT in the output:
HINT in environment.F:804 The compiler target flags used to build this binary are insufficiently exploiting the extensions which are available for this CPU model.
This means that the CPU running this CP2K executables has additional instructions (like
AVX, etc.) which could be exploited to make small areas of the code run faster, but the compiler did not build the necessary code to do so when this CP2K executable was compiled from source.
If you are building CP2K from source already, here is a checklist:
- All compilers: you are already using something like
-xHostto have the compiler auto-detect the CPU and enable flags automatically but you still see this
HINT, then this likely means that the CPU in the system you are building CP2K on has a smaller instruction set than the one running CP2K. To remedy the issue you have to use specific architecture flags for your compiler (consult your compiler documentation) instead of the auto-detection. This could mean that the final executable might not run on the build system anymore, but only on the target system.
- GNU Compiler: Also the GNU compilers emit by default (independently of the optimization level) only SSE2 instructions at most. Use either an appropriate
-march=nativeif your build and target hosts are the same (see first point).
- Libraries: the same points apply to third-party libraries used by CP2K.